Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pkgdeps-0.0.3-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pkgdeps-0.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pkgdeps-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e34e733bb5a2c174ab395f3884ec314ad6906c399c1f6950e78b8ac1a4cae822
MD5 6d907327c99b15bcbcfedfba822f786c
BLAKE2b-256 bfceaae41edbf78d7de24d551bdf94a5bc6cbc925a887d01c3da220aeab6d3eb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page