A fantastic tool to generate requirements for your Python project, and more than that.
Project description
- Generating requirements.txt for Python project.
- Handling the difference between different Python versions.
- Jupyter notebook (
*.ipynb
) support. - Including the import statements/magic from
exec
/eval
/importlib
, doctest of docstring, etc.
- Searching ditributions(packages) by the top level import/module names.
- Checking the latest versions of requirements.
You can find more information on GitHub.
Change Logs
Version 2.0.0b1 (2022.11.27)
This version has changed a lot of things, most of them are BREAKING CHANGEs!
- Dropped support for Python versions older than 3.7.
- Redesigned the command line interface.
pigar generate
to generate requirements.txt.pigar search
to search packages/distributions by the top level module names.pigar check
to check the latest versions of requirements.pigar -h
to explore more.pigar
accepts a prefix for a command, such aspigar gen
,pigar c
.
- Refactored/changed a lot of code and interfaces.
- Vendoring the pip to access more sophisticated utilities(
pip
named it's module as_internal
so vendoring technology is introduced). - Tweaked some default actions and introduced more options for better user experience.
pigar
will ask user to choose the right packages/distributions ifpigar
has found multiple packages/distributions for the same module names. With--auto-select
enabled,pigar
will guess the best matched one or choose all possible packages/distributions automatically.- Added an option
--dry-run
which allowspigar
to not write a requirements.txt file, just print it. - Added an option
--follow-symbolic-links/--dont-follow-symbolic-links
to let user decide whether to follow the symbolic links, fixed #89. - Added an option
-i/--index-url
to allow the custom URL of the Python Package Index, fixed #52. - Removed the spaces from requirements specifier, fixed #86.
- Added an option
--show-differences/--dont-show-differences
to enable or disable showing the differences when the requirements file is overwritten.
- Introduced
asyncio
to synchronize distributions' metadata with the PyPI, the process is much faster now. - Refactored the code to make the index database more reliable.
- Add unique contstraints to avoid duplicate records, fixed #119.
- Store versions in the database to do incremental index synchronization.
Version 1.0.2 (2022.11.12)
- Fix requirements list in setup.py #122.
Version 1.0.1 (2022.11.12)
- Support
*.ipynb
magics and shell command, fixed #87. See #102, #117, #118 for details. - Parse requirements file with the more sophisticated utility, fixed #48, #113. See #115 for details.
- Fixed #99, continue if a local package isn't exists. See #107 for details.
- Fixed too many values to unpack error when parsing git config. See #97 for details.
Version 1.0.0 (2022.06.22)
- BREAKING CHANGE: Disable the comments which contain filenames and line numbers by default, use
--with-referenced-comments
to enable this feature. - Skip if local package (edit-mode project) not found, fixed #99.
Version 0.10.0 (2020.03.14)
- Refactored the main logic, the interface has been changed, be careful if you are using
pigar
as a library. - Handle the HTTP error, fixed #61.
- Ignore local packages quietly, fixed #47, #58 and #65.
Thank @bganglia for the following contributions:
- Add Jupyter notebook(
.ipynb
) support, refer to #69. - Option to turn off filenames and line numbers in requirements.txt, refer to #65.
- Fix check path, refer to #64.
- And more.
Version 0.9.2 (2019.04.11)
- Make version comparison operator configurable, fixed #37
Version 0.9.1 (2019.02.17)
- Fixed potential security vulnerabilities by updating requests.
- Fixed #49
Version 0.9.0 (2018.08.12)
- Reuse connections.
- Update database.
- Fixed #44
Version 0.7.2 (2018.04.24)
- Use https://pypi-hypernode.com/
- Fixed #41
Version 0.7.1 (2017.11.07)
- Fixed #34
Version 0.7.0 (2017.07.03)
- Fixed the .egg suffix which caused by sudo pip install ... on Ubuntu.
- Workaround for special packages, such as #29
Version 0.6.10 (2016.06.17)
- Fixed #26
- Fixed relative import issue.
Version 0.6.9 (2016.05.08)
- Fixed ImportError.
Version 0.6.8 (2016.05.08)
- Supported flask extension.
- Sorted requirements.
- Use gevent if possible.
Version 0.6.7 (2015.12.13)
- If modules in the
try...except...
block, assume they are optional.
Version 0.6.6 (2015.11.22)
- Fixed IndexError.
Version 0.6.5 (2015.11.22)
- Fixed AttributeError.
- Fixed PEP8 warning.
Version 0.6.4 (2015.11.22)
- Removed useless code.
- Cache modules, to avoid duplication of inspection.
Thank @spacewander for the following contributions:
- Fixed error for Python 2.7.6.
- Fixed error when using './xxx' as relative path.
- Support
importlib.import_module
and__import__
.
Version 0.6.3 (2015.11.09)
- Sort files, make comments more clearer.
- Fixed grammar, to make the README clearer. Thank @roryokane and @flyingfisch.
- Make it work with
python -m pigar
. Thank @lilydjwg. - Fixed the pep8 warnings: #15.
- Make output more clearer: #12.
- Fixed UnicodeDecodeError for Python 3.
Version 0.6.2 (2015.11.05)
- If requirements file is overwritten over, show difference between old and new.
- Adjust the structure of the code.
Version 0.6.1 (2015.11.03)
- Fixed typo.
- Follow symlinks.
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.
- Removed useless code.
Version 0.5.1 (2015.10.01)
- 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 Distribution
pigar-2.0.0b2.tar.gz
(17.7 MB
view details)
Built Distribution
pigar-2.0.0b2-py3-none-any.whl
(17.9 MB
view details)
File details
Details for the file pigar-2.0.0b2.tar.gz
.
File metadata
- Download URL: pigar-2.0.0b2.tar.gz
- Upload date:
- Size: 17.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2edb220ca37a6beca88233f14b0d02a1e1f852275e84928ba20bfe8038c6b6f2 |
|
MD5 | 242671245a0714449abf3fa21a4d2f01 |
|
BLAKE2b-256 | 21adff6839fd1bf5f495ed715370907d0ab5e9efb3a7eaaa879b405772ad557b |
File details
Details for the file pigar-2.0.0b2-py3-none-any.whl
.
File metadata
- Download URL: pigar-2.0.0b2-py3-none-any.whl
- Upload date:
- Size: 17.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a511525fdc5b56e42616a93d15da5c7203a21643823c067425659769264fad0e |
|
MD5 | a53d874ac7617a8fb4e19574ef1a0bb4 |
|
BLAKE2b-256 | 0ff77aaedfa9cb6e7454b8c0b18e72bf18be169f919656b89677bebe28a8480d |