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.
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.