name: python-full-deps description: 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. allowed-tools: Bash Read compatibility: Requires network access to PyPI. Requires uv (preferred) or pip >= 22.2 (fallback).
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:
python3 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.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.