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.2 (2022.12.04)
- Ignore absolute path in distributions' installed files.
- Ignore vcs exception when parsing information for EggInfoDistribution.
- Sort searched results, print unknown if version not found.
- Fix dirty records in the index database.
Version 2.0.1 (2022.12.03)
Make absolute import more reliable by searching parent directory as well.
Version 2.0.0 (2022.12.02)
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 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.2.tar.gz
(18.1 MB
view details)
Built Distribution
pigar-2.0.2-py3-none-any.whl
(18.2 MB
view details)
File details
Details for the file pigar-2.0.2.tar.gz
.
File metadata
- Download URL: pigar-2.0.2.tar.gz
- Upload date:
- Size: 18.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56e9b3abb3f124a8efbd8e0fb35bb2be9bd18f2f499e64ef8e1e9108b7041ea9 |
|
MD5 | 5c2bda69599dfc777712bfa8be8b36b9 |
|
BLAKE2b-256 | b8f855c2e0821d6761ffc55e65c9e1f075da94318b4e8498c35ee0e0b4c57a52 |
File details
Details for the file pigar-2.0.2-py3-none-any.whl
.
File metadata
- Download URL: pigar-2.0.2-py3-none-any.whl
- Upload date:
- Size: 18.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9bba96eb95c9f23170ad211976d175ec4974b7e74add154749a3f1048f330ee |
|
MD5 | f4008475f022a20db86bc573439299d2 |
|
BLAKE2b-256 | a1b08d6b2331c9385a9da741b1f105930ef38a276d55387c38b5223d49d069a1 |