Explore dependencies of a Python package by parsing its imports.
Project description
Explore dependencies of a Python package by parsing its imports.
This might be useful for:
seeing how modules within a package depend on each other
seeing which built-in libraries are relied upon
analysis of 3rd-party dependencies
etc.
Examples
Explore dependencies of this project:
$ pkgdeps /path/to/pkgdeps pkgdeps - argparse.ArgumentParser - ast - collections.defaultdict - functools.reduce - os - os.path - sys
Limitations
Only tested with Python 3 against Python 3 packages.
Doesn’t handle conditional imports; all conditional branches are inspected.
Outputs imported module members: from os.path import join creates a dependency on os.path.join, but we probably only want os.path for e.g. tsort output. However, internal dependencies are coarsened to the module level.
Installation
$ pip install pkgdeps
Usage
Various options are available to filter and format the output:
$ pkgdeps -h usage: pkgdeps [-h] [-n <num>] [-m <num>] [-e <type> | -o <type>] [-f <format>] </path/to/package> Explore dependencies of a package by parsing its imports. positional arguments: </path/to/package> path to package root optional arguments: -h, --help show this help message and exit -n <num>, --package-module-name-segments <num> truncate module names of inspected package to given number of segments (and consolidate imports) -m <num>, --dependency-module-name-segments <num> truncate module names of dependencies to given number of segments (and deduplicate) -e <type>, --exclude <type> exclude various kinds of dependencies from output (builtin, 3rd-party, internal) -o <type>, --only <type> include only dependencies of the given type (builtin, 3rd-party, internal) -f <format>, --format <format> graph output format (tree, tsort)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pkgdeps-0.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b53b3d53f507deab40900ea308a18cb5fab05fff2660cc3de92e18fe5cce642 |
|
MD5 | 7b5ff1439078cc6d0cd00fdf7ec91f73 |
|
BLAKE2b-256 | 165ada1be10fc03f7581045586b10832ebc6f113163b49367e937aaf612d5d4b |