pep621
lib.pep621.parseDependencies
Type: parseDependencies :: AttrSet -> AttrSet
Parse dependencies from pyproject.toml.
structured function argument
: pyproject
: Function argument
extrasAttrPaths
: Function argument
::: {.example #function-library-example-lib.pep621.parseDependencies}
lib.pep621.parseDependencies
usage example
# parseDependencies {
#
# pyproject = (lib.importTOML ./pyproject.toml);
# # Don't just look at `project.optional-dependencies` for groups, also look at these:
# extrasAttrPaths = [ "tool.pdm.dev-dependencies" ];
# }
{
dependencies = [ ]; # List of parsed PEP-508 strings (lib.pep508.parseString)
extras = {
dev = [ ]; # List of parsed PEP-508 strings (lib.pep508.parseString)
};
build-systems = [ ]; # PEP-518 build-systems (List of parsed PEP-508 strings)
}
:::
lib.pep621.parseRequiresPython
Type: parseRequiresPython :: AttrSet -> list
Parse project.python-requires from pyproject.toml
pyproject
: Function argument
::: {.example #function-library-example-lib.pep621.parseRequiresPython}
lib.pep621.parseRequiresPython
usage example
# parseRequiresPython (lib.importTOML ./pyproject.toml)
[ ] # List of conditions as returned by `lib.pep440.parseVersionCond`
:::
lib.pep621.getDependenciesNames
Type: getDependenciesNames :: AttrSet -> AttrSet
Takes a dependency structure as returned by lib.pep621.parseDependencies
and transforms it into
a structure with it's package names.
::: {.example #function-library-example-lib.pep621.getDependenciesNames}
lib.pep621.getDependenciesNames
usage example
# getDependenciesNames (pep621.parseDependencies { pyproject = (lib.importTOML ./pyproject.toml); })
{
dependencies = [ "requests" ];
extras = {
dev = [ "pytest" ];
};
build-systems = [ "poetry-core" ];
}
:::
lib.pep621.filterDependenciesByEnviron
Type: filterDependenciesByEnviron :: AttrSet -> AttrSet -> AttrSet
Filter dependencies not relevant for this environment.
environ
: Environ as created by lib.pep508.mkEnviron
.
extras
: Extras as a list of strings
dependencies
: Dependencies as parsed by lib.pep621.parseDependencies
.
::: {.example #function-library-example-lib.pep621.filterDependenciesByEnviron}
lib.pep621.filterDependenciesByEnviron
usage example
# filterDependenciesByEnviron (lib.pep508.mkEnviron pkgs.python3) (lib.pep621.parseDependencies (lib.importTOML ./pyproject.toml))
{ } # Structure omitted in docs
:::
lib.pep621.filterDependenciesByExtras
Type: filterDependenciesByExtras :: list[string] -> AttrSet -> AttrSet
Filter dependencies by their extras groups.
extras
: Extras groups as a list of strings.
dependencies
: Dependencies as parsed by lib.pep621.parseDependencies
.
::: {.example #function-library-example-lib.pep621.filterDependenciesByExtras}
lib.pep621.filterDependenciesByExtras
usage example
# filterDependenciesByExtras [ "dev" ] (lib.pep621.parseDependencies (lib.importTOML ./pyproject.toml))
{ } # Structure omitted in docs
:::
lib.pep621.filterDependencies
Type: filterDependencies :: AttrSet -> AttrSet
Aggregate of filterDependencies
& filterDependenciesByExtras
structured function argument
: dependencies
: Dependencies as parsed by lib.pep621.parseDependencies
environ
: Environ as created by lib.pep508.mkEnviron
extras
: Extras as a list of strings
::: {.example #function-library-example-lib.pep621.filterDependencies}
lib.pep621.filterDependencies
usage example
# filterDependencies {
# dependencies = lib.pep621.parseDependencies (lib.importTOML ./pyproject.toml);
# environ = lib.pep508.mkEnviron pkgs.python;
# extras = [ "dev" ];
# }
{ } # Structure omitted in docs
:::