MCPcopy
hub / github.com/tox-dev/tox / resolve_extras_static

Function resolve_extras_static

src/tox/tox_env/python/extras.py:19–42  ·  view source on GitHub ↗
(root: Path, extras: set[str])

Source from the content-addressed store, hash-verified

17
18
19def resolve_extras_static(root: Path, extras: set[str]) -> list[Requirement] | None:
20 pyproject_file = root / "pyproject.toml"
21 if not pyproject_file.exists():
22 return None
23 with pyproject_file.open("rb") as file_handler:
24 pyproject = tomllib.load(file_handler)
25 if "project" not in pyproject:
26 return None
27 project = pyproject["project"]
28 for dynamic in project.get("dynamic", []):
29 if dynamic == "dependencies" or (extras and dynamic == "optional-dependencies"):
30 return None
31 deps_with_markers: list[tuple[Requirement, set[str | None]]] = [
32 (Requirement(i), {None}) for i in project.get("dependencies", [])
33 ]
34 optional_deps = project.get("optional-dependencies", {})
35 for extra, reqs in optional_deps.items():
36 deps_with_markers.extend((Requirement(req), {extra}) for req in (reqs or []))
37 return dependencies_with_extras_from_markers(
38 deps_with_markers=deps_with_markers,
39 extras=extras,
40 package_name=project.get("name", "."),
41 available_extras=set(optional_deps.keys()),
42 )
43
44
45__all__ = [

Calls 4

getMethod · 0.80
keysMethod · 0.80
loadMethod · 0.45

Used in the wild real call sites across dependent graphs

searching dependent graphs…