Skip to main content

Tool to produce better formatted pip freeze.

Project description

Pip Freeze

Tool to produce better formatted pip freeze.

Instead of a flat list of requirements, this indents requirements which are dependencies and those that are primary installs. Dependencies shared by multiple packages are commented out.

This format can be re-read by the typical pip install -r requirements.txt and requires not adjustment to other code.

Installation

pip install pipfreeze

Basic Usage

pipfreeze > requirements.txt

Motivation

Typical pip freeze flattens all requirements, regardless of the dependency structure.

cycler==0.10.0
kiwisolver==1.3.1
matplotlib==3.3.4
numpy==1.20.1
pandas==1.2.2
Pillow==8.1.0
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2021.1
six==1.15.0

This pipfreeze command produces output that is valid requirements.txt but is nested

matplotlib==3.3.4
    cycler==0.10.0
        six==1.15.0
    kiwisolver==1.3.1
    numpy==1.20.1
    Pillow==8.1.0
    pyparsing==2.4.7
    python-dateutil==2.8.1
        # six==1.15.0
pandas==1.2.2
    # numpy==1.20.1
    # python-dateutil==2.8.1
        # six==1.15.0
    pytz==2021.1

Contributing

Local development is controlled through docker. docker-compose.yml contains different python environment containers to test this code out in.

make test will run the docker tests.

Makefile contains commands for development.

Project details


Download files

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

Source Distribution

pipfreeze-2.0.3.tar.gz (6.4 kB view hashes)

Uploaded Source

Built Distribution

pipfreeze-2.0.3-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

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