Python requirements tool -- pigar
Project description
What pigar can do?
Generate requirements for project, pigar can consider all kinds of complicated situations. In this project, py2_requirements.txt and py3_requirements.txt for different python versions
# Generate requirements.txt for current directory. $ pigar # Generate requirements for given directory in given file. $ pigar -p ../dev-requirements.txt -P ../
pigar will list all files which referenced the package, for example:
# project/foo.py: 2,3 # project/bar/baz.py: 2,7,8,9 foobar == 3.3.3
If you do not know the import name belong to which package (more generally, are you crazy for Import Error: xxx?), such as bs4 may come from beautifulsoup4, MySQLdb may come from MySQL_Python, search it:
$ pigar -s bs4 MySQLdb
Check requirements latest version, just do:
# Specific a requirements file. $ pigar -c ./requirements.txt # Or, you can leave pigar search *requirements.txt in current directory # level by itself, if not found, pigar will generate requirements.txt # for current project then check latest version. $ pigar -c
Installation
Available in Python: 2.7.+, 3.2+
[sudo] pip install pigar
Get newest code from GitHub
pip install git+https://github.com/Damnever/pigar.git@[master or other branch] --upgrade
Usage
usage: pigar [-h] [-v] [-u] [-s NAME [NAME ...]] [-c [PATH]] [-l LOG_LEVEL] [-i DIR [DIR ...]] [-p SAVE_PATH] [-P PROJECT_PATH] Python requirements tool -- pigar, it will do only one thing at each time. Default action is generate requirements.txt in current directory. optional arguments: -h, --help show this help message and exit -v, --version show pigar version information and exit -u, --update update database, use it when pigar failed you, exit when action done -s NAME [NAME ...] search package name by import name, use it if you do not know import name come from which package, exit when action done -c [PATH] check requirements latest version. If file path not given, search *requirements.txt in current directory, if not found, generate file requirements.txt, exit when action done -l LOG_LEVEL Show given level log messages, argument can be (ERROR, WARNING, INFO, DEBUG), case-insensitive -i DIR [DIR ...] Given a list of directory to ignore, relative directory, *used for* -c and default action -p SAVE_PATH save requirements in given file path, *used for* default action -P PROJECT_PATH project path, which is directory, *used for* default action
More
pigar do not use regular expression such a violence way, it use AST, that is a better method to extracting imported names from arguments of exec/eval, doctest of docstring, etc.
Also, pigar can consider difference between differen Python versions. For example, you can find concurrent.futures from Python 3.2 standart library, but you will need install futures before 3.2 version in Python to get concurrent.futures.
Finally, you already saw What pigar can do?. You can learn more from source code.
Hope pigar is useful to you.
LISENSE
Change Logs
Version 0.6.0 (2015.10.30)
Enhancement: issue #7, show imported module come from which files.
Consider package installed via Git.
Add command “-i”, used to ignore a list of directory.
Version 0.5.5 (2015.10.21)
Version 0.5.2-0.5.4 (2015.10.6)
Fixed issue #1.
Make version compare more effective.
Remove useless code.
Version 0.5.1 (2015.10.1)
Available in PYPI(https://pypi-hypernode.com/pypi/pigar).
Generate requirements for Python project.
Can consider different for different Python versions.
Search package names by imported names.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pigar-0.6.0-py2.py3-none-any.whl
.
File metadata
- Download URL: pigar-0.6.0-py2.py3-none-any.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e54168366266879fb9c0074a924b813c1f6d0869d19d22b7cfa5f7bcce5fbbbb |
|
MD5 | 226f542871f048edb8060120e290da1b |
|
BLAKE2b-256 | 64704e914524bdaf85dfd2bb66f7aec5e11aa0ec716b4fbb0fc2d0a211d93829 |