Welcome to nspektr documentation!#
- class nspektr.NullMarker#
Bases:
object
- evaluate(*args, **kwargs)#
- classmethod wrap(req: Requirement)#
- nspektr.check(ep)#
>>> ep, = metadata.entry_points(group='console_scripts', name='pytest') >>> check(ep) >>> dist = metadata.distribution('nspektr')
Since ‘docs’ extras are not installed, requesting them should fail.
>>> ep = metadata.EntryPoint( ... group=None, name=None, value='nspektr [docs]')._for(dist) >>> check(ep) Traceback (most recent call last): ... nspektr.Unresolved: [...]
- nspektr.find_dependencies(dist, extras=None)#
Find all reachable dependencies for dist.
dist is an importlib.metadata.Distribution (or similar). TODO: create a suitable protocol for type hint.
>>> deps = find_dependencies(resolve(Requirement('nspektr'))) >>> all(isinstance(dep, Requirement) for dep in deps) True >>> not any('pytest' in str(dep) for dep in deps) True >>> test_deps = find_dependencies(resolve(Requirement('nspektr[testing]'))) >>> any('pytest' in str(dep) for dep in test_deps) True
- nspektr.find_direct_dependencies(dist, extras=None)#
Find direct, declared dependencies for dist.
- nspektr.find_req_dependencies(req)#
- nspektr.is_satisfied(req: Requirement)#
- nspektr.missing(ep)#
Generate the unresolved dependencies (if any) of ep.
- nspektr.resolve(req: Requirement) Distribution #
Resolve the requirement to its distribution.
Ignore exception detail for Python 3.9 compatibility.
>>> resolve(Requirement('pytest<3')) Traceback (most recent call last): ... importlib.metadata.PackageNotFoundError: No package metadata was found for pytest<3
- nspektr.traverse(items, visit)#
Given an iterable of items, traverse the items.
For each item, visit is called to return any additional items to include in the traversal.