Parser¶
- class dependency_comb.parser.RequirementParser[source]¶
Bases:
objectParse a requirements file content to resolve each requirement line as a
PackageRequirementobject.Multiline directive is not supported.
- get_nested_content(line, basepath)[source]¶
Find the requirement file to include its content from an inclusion directive.
- Parameters:
line (string)
basepath (Path)
- Returns:
The file content to include.
- Return type:
string
- parse_recursive_lines(content, environment=None, basepath=None)[source]¶
Recursively parse requirement lines to store them as PackageRequirement objects.
Inclusion directive are resolved and replaced with their requirements if basepath is given. Commentaries and empty lines (starting with
#) are directly filtered out at this stage.Warning
There is no check about circular import in inclusions (like a
base.txtrequirement includingdev.txtrequirement which includebase.txt).- Parameters:
content (string or Path) – Content to load. Either a string for the content
parse. (to parse or a Path object to open and read as content to)
- Keyword Arguments:
environment (dict) – Environment variables as defined from PEP 508 <https://peps.python.org/pep-0508/> to use for marker evaluations on parsed requirement items.
basepath (Path) – A directory path where to search for requirement inclusions (directive
-r foo.txt) from requirements file. If not given inclusions will be ignored and PackageRequirement will assume it as an unsupported argument.
- Returns:
List of PackageRequirement objects for all involved requirements.
- Return type:
list
- parse_requirements(content, environment=None, basepath=None)[source]¶
Load content as requirements.
- Parameters:
content (string or Path) – Content to load. Either a string for the content
parse. (to parse or a Path object to open and read as content to)
- Keyword Arguments:
environment (dict) – Environment variables as defined from PEP 508 <https://peps.python.org/pep-0508/> to use for marker evaluations on parsed requirement items.
basepath (Path) – A directory path where to search for requirement inclusions (directive
-r foo.txt) from requirements file. If not given inclusions will be ignored and PackageRequirement will assume it as an unsupported argument.
- Returns:
List of PackageRequirement objects for all involved requirements.
- Return type:
list