Skip to content

wimglenn/johnnydep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

191 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status PyPI

Johnnydep

Pretty-print a dependency tree for a Python distribution. A simple example:

$ johnnydep requests
 name                           summary
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 requests                       Python HTTP for Humans.
 ├── certifi>=2023.5.7          Python package for providing Mozilla's CA Bundle.
 ├── charset_normalizer<4,>=2   The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
 ├── idna<4,>=2.5               Internationalized Domain Names in Applications (IDNA)
 └── urllib3<3,>=1.26           HTTP library with thread-safe connection pooling, file post, and more.

A more complex tree:

$ johnnydep boto3
 name                                      summary
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 boto3                                     The AWS SDK for Python
 ├── botocore<1.44.0,>=1.43.12             Low-level, data-driven core of boto 3.
 │   ├── jmespath<2.0.0,>=0.7.1            JSON Matching Expressions
 │   ├── python-dateutil<3.0.0,>=2.1       Extensions to the standard Python datetime module
 │   │   └── six>=1.5                      Python 2 and 3 compatibility utilities
 │   └── urllib3!=2.2.0,<3,>=1.25.4        HTTP library with thread-safe connection pooling, file post, and more.
 ├── jmespath<2.0.0,>=0.7.1                JSON Matching Expressions
 └── s3transfer<0.18.0,>=0.17.0            An Amazon S3 Transfer Manager
     └── botocore<2.0a.0,>=1.37.4          Low-level, data-driven core of boto 3.
         ├── jmespath<2.0.0,>=0.7.1        JSON Matching Expressions
         ├── python-dateutil<3.0.0,>=2.1   Extensions to the standard Python datetime module
         │   └── six>=1.5                  Python 2 and 3 compatibility utilities
         └── urllib3!=2.2.0,<3,>=1.25.4    HTTP library with thread-safe connection pooling, file post, and more.

Johnnydep can also attempt to resolve the dependency tree:

$ johnnydep ipython --output-format pinned
ipython==9.13.0
decorator==5.3.1
ipython_pygments_lexers==1.1.1
jedi==0.20.0
matplotlib-inline==0.2.2
pexpect==4.9.0
prompt_toolkit==3.0.52
psutil==7.2.2
Pygments==2.20.0
stack-data==0.6.3
traitlets==5.15.0
parso==0.8.7
ptyprocess==0.7.0
wcwidth==0.7.0
asttokens==3.0.1
executing==2.2.1
pure_eval==0.2.3

Note that pip install lacked a working solver for many years, but pip v20.3 has a new solver (December 2020) which has really improved matters!

Check johnnydep --help for other features and options.

Helpful links

About

Display dependency tree of Python distribution

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages