• Stars
    star
    504
  • Rank 87,537 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Display dependency tree of Python distribution

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>=2017.4.17     Python package for providing Mozilla's CA Bundle.
├── chardet<3.1.0,>=3.0.2  Universal encoding detector for Python 2 and 3
├── idna<2.8,>=2.5         Internationalized Domain Names in Applications (IDNA)
└── urllib3<1.24,>=1.21.1  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.11.0,>=1.10.77            Low-level, data-driven core of boto 3.
│   ├── docutils>=0.10                   Docutils -- Python Documentation Utilities
│   ├── jmespath<1.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
├── jmespath<1.0.0,>=0.7.1               JSON Matching Expressions
└── s3transfer<0.2.0,>=0.1.10            An Amazon S3 Transfer Manager
    └── botocore<2.0.0,>=1.3.0           Low-level, data-driven core of boto 3.
        ├── docutils>=0.10               Docutils -- Python Documentation Utilities
        ├── jmespath<1.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

Johnnydep can also attempt to resolve the dependency tree:

$ johnnydep ipython --output-format pinned
ipython==6.5.0
appnope==0.1.0
backcall==0.1.0
decorator==4.3.0
jedi==0.12.1
pexpect==4.6.0
pickleshare==0.7.4
prompt-toolkit==1.0.15
pygments==2.2.0
setuptools==40.0.0
simplegeneric==0.8.1
traitlets==4.3.2
parso==0.3.1
ptyprocess==0.6.0
six==1.11.0
wcwidth==0.1.7
ipython-genutils==0.2.0

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

More Repositories

1

advent-of-code-data

Get your Advent of Code data with a single import statement
Python
514
star
2

djangorestframework-queryfields

Allows clients to control which fields will be sent in the API response
Python
215
star
3

oyaml

Ordered YAML: drop-in replacement for PyYAML which preserves dict ordering
Python
170
star
4

resources-example

An example project demonstrating how to access data files in Python package
Python
81
star
5

pytest-structlog

Structured logging assertions
Python
55
star
6

advent-of-code-wim

Wim's solutions for https://adventofcode.com/ puzzles
Python
35
star
7

pycharm-dvorak-keymap

A keymap for working around the bugged modifier shortcuts in jetbrains IDEs
Python
17
star
8

pytest-custom-report

Configure the symbols displayed for test outcomes
Python
12
star
9

copyingmock

A subclass of MagicMock that copies the arguments
Python
6
star
10

advent-of-code-sample

Example package structure with entry-points for using advent-of-code-data runner
Python
5
star
11

pytest-raisin

Plugin enabling the use of exception instances with pytest.raises context 🍇
Python
4
star
12

monkey-magic

Monkeypatch built-in types
Python
3
star
13

aocd-example-parser

Default implementation of an example parser plugin for advent-of-code-data
Python
3
star
14

wimpy

Anti-copy-pasta
Python
3
star
15

setuptools-reproducible

Extension of setuptools to support reproducible builds
Python
2
star
16

userscripts

wim's tampermonkey scripts
JavaScript
2
star
17

all-escapes

Codec for binary escapes
Python
2
star
18

setuptools-ext

Extension of setuptools to support all core metadata fields
Python
2
star
19

readabledelta

Human readable modification of timedelta
Python
1
star