Agent skill
python-full-deps
Resolve the full install-time dependency tree for a Python package. Use when the user needs all transitive dependencies, full dependency list, or install requirements resolved for a specific Python version with environment markers.
Install this agent skill to your Project
npx add-skill https://github.com/opendatahub-io/ai-helpers/tree/main/helpers/skills/python-full-deps
SKILL.md
Python Full Dependency Tree
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.
When to use
- User asks for "full dependency tree", "all dependencies", "transitive dependencies", or "install requirements" of a Python package.
- User needs the full picture of install-time dependencies (not just direct deps from metadata).
- User wants to understand the total footprint of a package in a container image or environment.
- Complement to
python-packaging-complexitywhen the full resolved tree is needed beyond direct metadata.
When NOT to use
- User only needs direct (first-level) dependencies -- use
python-packaging-complexityinstead, which reads PyPI metadata without resolution. - User is asking about build-time dependencies (e.g. setuptools, CMake, Cython) -- those are not included in install-time resolution.
- User is asking about dev/test dependencies (e.g. pytest, mypy) -- those are extras, not default install deps.
- User is asking about license, source, or build complexity analysis -- use the corresponding
python-packaging-*skills.
Inputs
| 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 |
Instructions
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:
bashpython3 scripts/resolve_full_deps.py <package> [version] [python_version]The script automatically tries
uv pip compilefirst (fast, supports cross-version resolution). Ifuvis not installed, it falls back topip install --dry-run --reportin a temporary venv. -
Present the output to the user:
- Output is sorted alphabetically and deduplicated.
- Each line is
name==versionwith PEP 503 normalized names. - Warnings/errors go to stderr and should be relayed to the user.
-
Provide context based on the results:
- Total number of transitive dependencies.
- Notable packages in the tree (e.g.
torch,numpy,cudarelated packages). - If the user is assessing container image size or supply-chain risk, highlight the dependency count and any heavy packages.
Output format
Return a sorted, unique set of normalized dependencies. Include version unless the user asked for names only.
- One dependency per line:
name==version - Or as a list:
["package-a==1.0.0", "package-b==2.1.0"]
Example
$ 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).
Error handling
uvnot found: The script automatically falls back to pip. If the user sees a stderr warning about this, suggest installing uv for faster resolution.- Package not found on PyPI: The script exits with a non-zero code and an error on stderr. Verify the package name spelling and whether a specific version exists.
- Network errors / timeouts: Both
uvandpipneed network access to PyPI. If resolution times out (150s), suggest retrying or checking network connectivity. - pip version too old: The
--reportflag requires pip >= 22.2. If the fallback fails with an unrecognized argument error, advise upgrading pip.
Integration with other skills
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.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
python-packaging-env-finder
Investigate environment variables that can be set when building Python wheels for a given project. Analyzes setup.py, CMake files, and other build configuration files to discover customizable build environment variables.
torchtalk-analyzer
Analyze PyTorch internals across Python, C++, and CUDA layers using the TorchTalk MCP server. Use when asked about how PyTorch operators work internally, where functions are implemented, what would break if code is modified, or finding tests for PyTorch operators.
ai-bug-fix-triage
Triage JIRA bugs against repository code to classify AI fixability. Use when reviewing a backlog of bugs to determine which ones an AI agent can fix.
python-packaging-complexity
Analyze Python package build complexity by inspecting PyPI metadata. Evaluates compilation requirements, dependencies, distribution types, and provides recommendations for wheel building strategies.
coderabbit-review
Evaluate CodeRabbit PR comments and fix or reply
git-shallow-clone
Perform a shallow clone of a Git repository to a temporary location.
Didn't find tool you were looking for?