From odh-ai-helpers
Resolves full transitive install-time dependency tree for Python packages using uv or pip, for specific Python versions with environment markers. Use for total deps, requirements, or container footprints.
npx claudepluginhub jeremyeder/ai-helpers-fixed --plugin odh-ai-helpersThis skill is limited to using the following tools:
Resolve and return the complete set of packages that would be installed for a given Python package (entire transitive dependency tree), resolved for a specific Python version so environment markers are respected.
Resolves full transitive install-time dependency tree for Python packages using uv or pip, for specific Python versions with environment markers. Use for total deps, requirements, or container footprints.
Guides uv for Python: init projects, add/sync deps, manage venvs/interpreters, resolve conflicts, generate lockfiles. Use for fast setups, pip/poetry migrations, CI/Docker optimization.
Guides Python dependency management by detecting tools like uv, Poetry, Pipenv, Conda, or defaulting to venv + pip, avoiding global pip installs.
Share bugs, ideas, or general feedback.
Resolve and return the complete set of packages that would be installed for a given Python package (entire transitive dependency tree), resolved for a specific Python version so environment markers are respected.
python-packaging-complexity when the full resolved tree is needed beyond direct metadata.python-packaging-complexity instead, which reads PyPI metadata without resolution.python-packaging-* skills.| Parameter | Required | Default | Description |
|---|---|---|---|
| package name | Yes | — | PyPI project name (e.g. vllm) |
| package version | No | latest | e.g. 0.4.0 |
| Python version | No | 3.12 | e.g. 3.11, 3.12 |
When a user asks about the full dependency tree, all transitive dependencies, or install requirements for a Python package:
Run the helper script with the package name and optional version/Python version:
python3 scripts/resolve_full_deps.py <package> [version] [python_version]
The script automatically tries uv pip compile first (fast, supports cross-version resolution). If uv is not installed, it falls back to pip install --dry-run --report in a temporary venv.
Present the output to the user:
name==version with PEP 503 normalized names.Provide context based on the results:
torch, numpy, cuda related packages).Return a sorted, unique set of normalized dependencies. Include version unless the user asked for names only.
name==version["package-a==1.0.0", "package-b==2.1.0"]$ python3 scripts/resolve_full_deps.py requests 2.32.3
certifi==2024.8.30
charset-normalizer==3.4.1
idna==3.10
requests==2.32.3
urllib3==2.3.0
Interpretation: requests 2.32.3 pulls in 4 transitive dependencies (5 total including itself).
uv not found: The script automatically falls back to pip. If the user sees a stderr warning about this, suggest installing uv for faster resolution.uv and pip need network access to PyPI. If resolution times out (150s), suggest retrying or checking network connectivity.--report flag requires pip >= 22.2. If the fallback fails with an unrecognized argument error, advise upgrading pip.python-packaging-complexity: Use that skill first to get direct dependencies and build complexity, then use this skill to get the full transitive tree. Together they give a complete picture.python-packaging-license-checker / python-packaging-license-finder: After getting the full dep list from this skill, feed individual packages into the license skills to audit the entire tree.