Python tool to find and list requirements of a Python project
requirements-detector is a simple Python tool which attempts to find and list the requirements of a Python project.
When run from the root of a Python project, it will try to ascertain which libraries and the versions of those libraries that the project depends on.
It uses the following methods in order, in the root of the project:
setup.py (if this is successful, the remaining steps are skipped)pyproject.yoml (if a tool.poetry.dependencies section is found, the remaining steps are skipped)requirements.txt or requirements.pip*.txt and *.pip files inside a folder called requirements*requirements*.txt or reqs.txt (so for example, pip_requirements.txt would match, as would requirements_common.txt)detect-requirements [path]
If path is not specified, the current working directory will be used.
The output will be plaintext, and match that of a pip requirements file, for example:
Django==1.5.2
South>=0.8
anyjson
celery>=2.2,<3
>>> import os
>>> from requirements_detector import find_requirements
>>> find_requirements(os.getcwd())
[DetectedRequirement:Django==1.5.2, DetectedRequirement:South>=0.8, ...]
If you know the relevant file or directory, you can use from_requirements_txt, from_setup_py or from_requirements_dir directly.
>>> from requirements_detector import from_requirements_txt
>>> from_requirements_txt("/path/to/requirements.txt")
[DetectedRequirement:Django==1.5.2, DetectedRequirement:South>=0.8, ...]