Passa: Toolset for Pipfile projects

Passa is a toolset for performing tasks in a Pipfile project. It contains several components:

  • A resolver designed for performing dependency resolution using a stateful look-forward algorithm to resolve dependencies (backed by ResolveLib).
  • Interface to interact with individual requirement specifications inside Pipfile and Pipfile.lock (backed by RequirementsLib).
  • A command line interface to invoke the above operations.

Quickstart

Passa distributions can be downloaded from Appveyor’s artifacts page, as a ZIP file.

Once downloaded, you can run passa.zip with the interpreter of the environment you want to manage:

python passa.zip --help

Use Passa to generate Pipfile.lock from the Pipfile in the current directory:

python passa.zip lock

Add packages to the project:

python passa.zip add pytz requests tqdm

Remove packages from the project:

python passa.zip remove pytz

Generate requirements.txt for the current project:

python passa.zip freeze --target requirements.txt

Distribution Notes

Passa is available on PyPI and installable with pip, but it is not recommended for you to do so. Passa is designed to be run inside the Python environment, and, if installed with pip, would contaminate the very environment it wants to manage.

The ZIP distribution is self-sufficient, and use only the interpreter (and the standard library) to run itself, avoiding the contamination.