A small and definitely faulty tool that tries to form a list of packages that you depend on. This is useful in mono-repo's where all dependencies are split into dozens of requirements.txt
and setup.py
files.
One particular use-case that fueled the development of this tool was to create a flat list of dependencies to pre-install in a Docker base image.
Although there is a number of tools that parse and resolve requirement files, I did not find any that parse setup.py
files and extract install_requires
.
usage: pip-package-list [-h] [--recurse-recursive] [--recurse-editable] [--recurse-path]
[--inline-constraints] [--dedupe] [--remove-editable] [--remove-path]
[--remove-recursive] [--remove-constraints] [--remove-vcs] [--remove-wheel]
[--remove-unversioned] [--remove-index-urls]
file_paths [file_paths ...]
positional arguments:
file_paths list of requirements.txt or setup.py files
optional arguments:
-h, --help show this help message and exit
--recurse-recursive recurse into -r entries
--recurse-editable recurse into -e entries
--recurse-path recurse into local path entries
--inline-constraints recurse into -c entries and inline them
--dedupe de-duplicate the resulting list
--remove-editable remove editable requirements from the final list
--remove-path remove path requirements from the final list
--remove-recursive remove recursive requirements (-r) from the final list
--remove-constraints remove constaints (-c) from the final list
--remove-vcs remove vcs requirements from the final list
--remove-wheel remove wheel requirements from the final list
--remove-unversioned remove requirements without a version number from the final list
--remove-index-urls remove -i entries (index urls) from the final list