Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
EntryPoint Class Reference

Public Member Functions

 __init__ (self, name, module_name, attrs=(), extras=(), dist=None)
 
 __str__ (self)
 
 __repr__ (self)
 
 load (self, require=True, *args, **kwargs)
 
 resolve (self)
 
 require (self, env=None, installer=None)
 
 parse (cls, src, dist=None)
 
 parse_group (cls, group, lines, dist=None)
 
 parse_map (cls, data, dist=None)
 

Data Fields

 name
 
 module_name
 
 attrs
 
 extras
 
 dist
 

Static Public Attributes

 pattern
 

Protected Member Functions

 _parse_extras (cls, extras_spec)
 

Detailed Description

Object representing an advertised importable object

Definition at line 2482 of file __init__.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
  name,
  module_name,
  attrs = (),
  extras = (),
  dist = None 
)

Definition at line 2485 of file __init__.py.

2485 def __init__(self, name, module_name, attrs=(), extras=(), dist=None):
2486 if not MODULE(module_name):
2487 raise ValueError("Invalid module name", module_name)
2488 self.name = name
2489 self.module_name = module_name
2490 self.attrs = tuple(attrs)
2491 self.extras = tuple(extras)
2492 self.dist = dist
2493

Referenced by Protocol.__init_subclass__().

Here is the caller graph for this function:

Member Function Documentation

◆ __repr__()

__repr__ (   self)

Definition at line 2502 of file __init__.py.

2502 def __repr__(self):
2503 return "EntryPoint.parse(%r)" % str(self)
2504

◆ __str__()

__str__ (   self)

Definition at line 2494 of file __init__.py.

2494 def __str__(self):
2495 s = "%s = %s" % (self.name, self.module_name)
2496 if self.attrs:
2497 s += ':' + '.'.join(self.attrs)
2498 if self.extras:
2499 s += ' [%s]' % ','.join(self.extras)
2500 return s
2501

◆ _parse_extras()

_parse_extras (   cls,
  extras_spec 
)
protected

Definition at line 2573 of file __init__.py.

2573 def _parse_extras(cls, extras_spec):
2574 if not extras_spec:
2575 return ()
2576 req = Requirement.parse('x' + extras_spec)
2577 if req.specs:
2578 raise ValueError()
2579 return req.extras
2580
for i

◆ load()

load (   self,
  require = True,
args,
**  kwargs 
)
Require packages for this EntryPoint, then resolve it.

Definition at line 2505 of file __init__.py.

2505 def load(self, require=True, *args, **kwargs):
2506 """
2507 Require packages for this EntryPoint, then resolve it.
2508 """
2509 if not require or args or kwargs:
2511 "Parameters to load are deprecated. Call .resolve and "
2512 ".require separately.",
2513 PkgResourcesDeprecationWarning,
2514 stacklevel=2,
2515 )
2516 if require:
2517 self.require(*args, **kwargs)
2518 return self.resolve()
2519

◆ parse()

parse (   cls,
  src,
  dist = None 
)
Parse a single entry point from string `src`

Entry point syntax follows the form::

    name = some.module:some.attr [extra1, extra2]

The entry name and module name are required, but the ``:attrs`` and
``[extras]`` parts are optional

Definition at line 2553 of file __init__.py.

2553 def parse(cls, src, dist=None):
2554 """Parse a single entry point from string `src`
2555
2556 Entry point syntax follows the form::
2557
2558 name = some.module:some.attr [extra1, extra2]
2559
2560 The entry name and module name are required, but the ``:attrs`` and
2561 ``[extras]`` parts are optional
2562 """
2563 m = cls.pattern.match(src)
2564 if not m:
2565 msg = "EntryPoint must be in 'name=module:attrs [extras]' format"
2566 raise ValueError(msg, src)
2567 res = m.groupdict()
2568 extras = cls._parse_extras(res['extras'])
2569 attrs = res['attr'].split('.') if res['attr'] else ()
2570 return cls(res['name'], res['module'], attrs, extras, dist)
2571

Referenced by Style.normalize().

Here is the caller graph for this function:

◆ parse_group()

parse_group (   cls,
  group,
  lines,
  dist = None 
)
Parse an entry point group

Definition at line 2582 of file __init__.py.

2582 def parse_group(cls, group, lines, dist=None):
2583 """Parse an entry point group"""
2584 if not MODULE(group):
2585 raise ValueError("Invalid group name", group)
2586 this = {}
2587 for line in yield_lines(lines):
2588 ep = cls.parse(line, dist)
2589 if ep.name in this:
2590 raise ValueError("Duplicate entry point", group, ep.name)
2591 this[ep.name] = ep
2592 return this
2593

◆ parse_map()

parse_map (   cls,
  data,
  dist = None 
)
Parse a map of entry point groups

Definition at line 2595 of file __init__.py.

2595 def parse_map(cls, data, dist=None):
2596 """Parse a map of entry point groups"""
2597 if isinstance(data, dict):
2598 data = data.items()
2599 else:
2600 data = split_sections(data)
2601 maps = {}
2602 for group, lines in data:
2603 if group is None:
2604 if not lines:
2605 continue
2606 raise ValueError("Entry points must be listed in groups")
2607 group = group.strip()
2608 if group in maps:
2609 raise ValueError("Duplicate group name", group)
2610 maps[group] = cls.parse_group(group, lines, dist)
2611 return maps
2612
2613

◆ require()

require (   self,
  env = None,
  installer = None 
)

Definition at line 2530 of file __init__.py.

2530 def require(self, env=None, installer=None):
2531 if self.extras and not self.dist:
2532 raise UnknownExtra("Can't require() without a distribution", self)
2533
2534 # Get the requirements for this entry point with all its extras and
2535 # then resolve them. We have to pass `extras` along when resolving so
2536 # that the working set knows what extras we want. Otherwise, for
2537 # dist-info distributions, the working set will assume that the
2538 # requirements for that extra are purely optional and skip over them.
2539 reqs = self.dist.requires(self.extras)
2540 items = working_set.resolve(reqs, env, installer, extras=self.extras)
2541 list(map(working_set.add, items))
2542

◆ resolve()

resolve (   self)
Resolve the entry point from its module and attrs.

Definition at line 2520 of file __init__.py.

2520 def resolve(self):
2521 """
2522 Resolve the entry point from its module and attrs.
2523 """
2524 module = __import__(self.module_name, fromlist=['__name__'], level=0)
2525 try:
2526 return functools.reduce(getattr, self.attrs, module)
2527 except AttributeError as exc:
2528 raise ImportError(str(exc)) from exc
2529

Referenced by BaseConfigurator.configure_custom(), Configurator.configure_custom(), and BaseConfigurator.ext_convert().

Here is the caller graph for this function:

Field Documentation

◆ attrs

attrs

Definition at line 2490 of file __init__.py.

◆ dist

◆ extras

◆ module_name

module_name

Definition at line 2489 of file __init__.py.

◆ name

name

Definition at line 2488 of file __init__.py.

Referenced by AlreadyInstalledCandidate.__eq__(), Distribution.__eq__(), ExportEntry.__eq__(), _LazyDescr.__get__(), Distribution.__hash__(), ElementState.__init__(), Requirement.__init__(), LinkHash.__post_init__(), InstallationCandidate.__repr__(), Distribution.__repr__(), Metadata.__repr__(), ExportEntry.__repr__(), Encoding.__repr__(), Color.__rich_repr__(), Layout.__rich_repr__(), InstallationCandidate.__str__(), InstalledDistribution.__str__(), EggInfoDistribution.__str__(), Requirement.__str__(), ParserElement.__str__(), Tag.__str__(), _SixMetaPathImporter._add_module(), Matcher._check_compatible(), InstallRequirement._get_archive_name(), Wheel._get_extensions(), _SixMetaPathImporter._get_module(), ConfigOptionParser._get_ordered_configuration_items(), Distribution._get_requirements(), _Cache.add(), InstallRequirement.archive(), LinkHash.as_dict(), LinkHash.as_hashes(), Wheel.build(), _Cache.clear(), Wheel.filename(), Layout.get(), InstallRequirement.get_dist(), InstalledDistribution.get_distinfo_file(), RequirementCommand.get_requirements(), Wheel.get_wheel_metadata(), InstallRequirement.install(), Wheel.install(), SpecifierRequirement.is_satisfied_by(), LinuxDistribution.linux_distribution(), Wheel.metadata(), Distribution.name_and_version(), InstallRequirement.prepare_metadata(), Distribution.provides(), Metadata.provides(), VcsSupport.register(), VersionControl.run_command(), InstallRequirement.uninstall(), Wheel.update(), and Wheel.verify().

◆ pattern

pattern
static
Initial value:
r'\s*'
r'(?P<name>.+?)\s*'
r'=\s*'
r'(?P<module>[\w.]+)\s*'
r'(:\s*(?P<attr>[\w.]+))?\s*'
r'(?P<extras>\[.*\])?\s*$'
)

Definition at line 2543 of file __init__.py.

Referenced by Regex._generateDefaultName(), and Regex.re().


The documentation for this class was generated from the following file: