requirementslib.models.dependencies module

class requirementslib.models.dependencies.AbstractDependency(name, specifiers, markers, candidates, requirement, parent, finder, dep_dict=NOTHING)[source]

Bases: object

compatible_abstract_dep(other)[source]

Merge this abstract dependency with another one.

Return the result of the merge as a new abstract dependency.

Parameters:other (AbstractDependency) – An abstract dependency to merge with
Returns:A new, combined abstract dependency
Return type:AbstractDependency
compatible_versions(other)[source]

Find compatible version numbers between this abstract dependency and another one.

Parameters:other (AbstractDependency) – An abstract dependency to compare with.
Returns:A set of compatible version strings
Return type:set(str)
classmethod from_requirement(requirement, parent=None)[source]

Creates a new AbstractDependency from a Requirement object.

This class is used to find all candidates matching a given set of specifiers and a given requirement.

Parameters:requirement (Requirement object.) – A requirement for resolution
classmethod from_string(line, parent=None)[source]
get_deps(candidate)[source]

Get the dependencies of the supplied candidate.

Parameters:candidate (InstallRequirement) – An installrequirement
Returns:A list of abstract dependencies
Return type:list[AbstractDependency]
version_set

Return the set of versions for the candidates in this abstract dependency.

Returns:A set of matching versions
Return type:set(str)
requirementslib.models.dependencies.find_all_matches(finder, ireq, pre=False)[source]

Find all matching dependencies using the supplied finder and the given ireq.

Parameters:
  • finder (PackageFinder) – A package finder for discovering matching candidates.
  • ireq (InstallRequirement) – An install requirement.
Returns:

A list of matching candidates.

Return type:

list[InstallationCandidate]

requirementslib.models.dependencies.get_abstract_dependencies(reqs, sources=None, parent=None)[source]

Get all abstract dependencies for a given list of requirements.

Given a set of requirements, convert each requirement to an Abstract Dependency.

Parameters:
  • reqs (list[Requirement]) – A list of Requirements
  • sources – Pipfile-formatted sources, defaults to None
  • sources – list[dict], optional
  • parent – The parent of this list of dependencies, defaults to None
  • parentRequirement, optional
Returns:

A list of Abstract Dependencies

Return type:

list[AbstractDependency]

requirementslib.models.dependencies.get_dependencies(ireq, sources=None, parent=None)[source]

Get all dependencies for a given install requirement.

Parameters:
  • ireq (InstallRequirement) – A single InstallRequirement
  • sources (list[dict], optional) – Pipfile-formatted sources, defaults to None
  • parent (InstallRequirement) – The parent of this list of dependencies, defaults to None
Returns:

A set of dependency lines for generating new InstallRequirements.

Return type:

set(str)

requirementslib.models.dependencies.get_dependencies_from_cache(ireq)[source]

Retrieves dependencies for the given install requirement from the dependency cache.

Parameters:ireq (InstallRequirement) – A single InstallRequirement
Returns:A set of dependency lines for generating new InstallRequirements.
Return type:set(str) or None
requirementslib.models.dependencies.get_dependencies_from_index(dep, sources=None, pip_options=None, wheel_cache=None)[source]

Retrieves dependencies for the given install requirement from the pip resolver.

Parameters:
  • dep (InstallRequirement) – A single InstallRequirement
  • sources (list[dict], optional) – Pipfile-formatted sources, defaults to None
Returns:

A set of dependency lines for generating new InstallRequirements.

Return type:

set(str) or None

requirementslib.models.dependencies.get_dependencies_from_json(ireq)[source]

Retrieves dependencies for the given install requirement from the json api.

Parameters:ireq (InstallRequirement) – A single InstallRequirement
Returns:A set of dependency lines for generating new InstallRequirements.
Return type:set(str) or None
requirementslib.models.dependencies.get_dependencies_from_wheel_cache(ireq)[source]

Retrieves dependencies for the given install requirement from the wheel cache.

Parameters:ireq (InstallRequirement) – A single InstallRequirement
Returns:A set of dependency lines for generating new InstallRequirements.
Return type:set(str) or None
requirementslib.models.dependencies.get_finder(sources=None, pip_command=None, pip_options=None)[source]

Get a package finder for looking up candidates to install

Parameters:
  • sources – A list of pipfile-formatted sources, defaults to None
  • sources – list[dict], optional
  • pip_command (Command) – A pip command instance, defaults to None
  • pip_options (cmdoptions) – A pip options, defaults to None
Returns:

A package finder

Return type:

PackageFinder

requirementslib.models.dependencies.get_grouped_dependencies(constraints)[source]
requirementslib.models.dependencies.get_pip_command()[source]
requirementslib.models.dependencies.get_pip_options(args=[], sources=None, pip_command=None)[source]

Build a pip command from a list of sources

Parameters:
  • args – positional arguments passed through to the pip parser
  • sources – A list of pipfile-formatted sources, defaults to None
  • sources – list[dict], optional
  • pip_command (Command) – A pre-built pip command instance
Returns:

An instance of pip_options using the supplied arguments plus sane defaults

Return type:

cmdoptions

requirementslib.models.dependencies.is_python(section)[source]
requirementslib.models.dependencies.start_resolver(finder=None, session=None, wheel_cache=None)[source]

Context manager to produce a resolver.

Parameters:finder (PackageFinder) – A package finder to use for searching the index

:param Session session: A session instance :param WheelCache wheel_cache: A pip WheelCache instance :return: A 3-tuple of finder, preparer, resolver :rtype: (RequirementPreparer, Resolver)