pipreqs


Namepipreqs JSON
Version 0.5.0 PyPI version JSON
download
home_pagehttps://github.com/bndr/pipreqs
SummaryPip requirements.txt generator based on imports in project
upload_time2024-02-18 17:49:36
maintainer
docs_urlNone
authorVadim Kravcenko
requires_python>=3.8.1,<3.13
licenseApache-2.0
keywords pip requirements imports
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            =============================================================================
``pipreqs`` - Generate requirements.txt file for any project based on imports
=============================================================================

.. image:: https://img.shields.io/travis/bndr/pipreqs.svg
        :target: https://travis-ci.org/bndr/pipreqs


.. image:: https://img.shields.io/pypi/v/pipreqs.svg
        :target: https://pypi.python.org/pypi/pipreqs


.. image:: https://codecov.io/gh/bndr/pipreqs/branch/master/graph/badge.svg?token=0rfPfUZEAX
        :target: https://codecov.io/gh/bndr/pipreqs

.. image:: https://img.shields.io/pypi/l/pipreqs.svg
        :target: https://pypi.python.org/pypi/pipreqs



Installation
------------

.. code-block:: sh

    pip install pipreqs

Obs.: if you don't want support for jupyter notebooks, you can install pipreqs without the dependencies that give support to it. 
To do so, run:

.. code-block:: sh

    pip install --no-deps pipreqs
    pip install yarg==0.1.9 docopt==0.6.2

Usage
-----

::

    Usage:
        pipreqs [options] [<path>]

    Arguments:
        <path>                The path to the directory containing the application files for which a requirements file
                              should be generated (defaults to the current working directory)

    Options:
        --use-local           Use ONLY local package info instead of querying PyPI
        --pypi-server <url>   Use custom PyPi server
        --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                              environments parameter in your terminal:
                              $ export HTTP_PROXY="http://10.10.1.10:3128"
                              $ export HTTPS_PROXY="https://10.10.1.10:1080"
        --debug               Print debug information
        --ignore <dirs>...    Ignore extra directories, each separated by a comma
        --no-follow-links     Do not follow symbolic links in the project
        --encoding <charset>  Use encoding parameter for file open
        --savepath <file>     Save the list of requirements in the given file
        --print               Output the list of requirements in the standard output
        --force               Overwrite existing requirements.txt
        --diff <file>         Compare modules in requirements.txt to project imports
        --clean <file>        Clean up requirements.txt by removing modules that are not imported in project
        --mode <scheme>       Enables dynamic versioning with <compat>, <gt> or <non-pin> schemes
                              <compat> | e.g. Flask~=1.1.2
                              <gt>     | e.g. Flask>=1.1.2
                              <no-pin> | e.g. Flask
        --scan-notebooks      Look for imports in jupyter notebook files.

Example
-------

::

    $ pipreqs /home/project/location
    Successfully saved requirements file in /home/project/location/requirements.txt

Contents of requirements.txt

::

    wheel==0.23.0
    Yarg==0.1.9
    docopt==0.6.2

Why not pip freeze?
-------------------

- ``pip freeze`` only saves the packages that are installed with ``pip install`` in your environment.
- ``pip freeze`` saves all packages in the environment including those that you don't use in your current project (if you don't have ``virtualenv``).
- and sometimes you just need to create ``requirements.txt`` for a new project without installing modules.

.. :changelog:

History
-------

0.4.11 (2020-03-29)
--------------------

* Implement '--mode' (Jake Teo, Jerome Chan)

0.4.8 (2017-06-30)
--------------------

* Implement '--clean' and '--diff' (kxrd)
* Exclude concurrent{,.futures} from stdlib if py2 (kxrd)

0.4.7 (2017-04-20)
--------------------

* BUG: remove package/version duplicates
* Style: pep8

0.4.5 (2016-12-13)
---------------------

* Fixed the --pypi-server option

0.4.4 (2016-07-14)
---------------------

* Remove Spaces in output
* Add package to output even without version

0.4.2 (2016-02-10)
---------------------

* Fix duplicated lines in requirements.txt (Dmitry Pribysh)

0.4.1 (2016-02-05)
---------------------

* Added ignore option (Nick Rhinehart)

0.4.0 (2016-01-28)
---------------------

* Walk Abstract Syntax Tree to find imports (Kay Sackey)

0.3.9 (2016-01-20)
---------------------

* Fix regex for docstring comments (#35)

0.3.8 (2016-01-12)
---------------------

* Add more package mapping
* fix(pipreqs/mapping): remove pylab reference to matplotlib
* Remove comments """ before going through imports
* Update proxy documentation

0.3.1 (2015-10-20)
---------------------

* fixed lint warnings (EJ Lee)
* add --encoding parameter for open() (EJ Lee)
* support windows directory separator (EJ Lee)

0.3.0 (2015-09-29)
---------------------

* Add --proxy option
* Add --pypi-server option

0.2.9 (2015-09-24)
---------------------

* Ignore irreverent directory when generating requirement.txt (Lee Wei)
* Modify logging level of "Requirement.txt already exists" to warning (Lee Wei)

0.2.8 (2015-05-11)
---------------------

* Add --force option as a protection for overwrites

0.2.6 (2015-05-11)
---------------------

* Fix exception when 'import' is used inside package name #17
* Add more tests

0.2.5 (2015-05-11)
---------------------

* Fix exception when 'import' is used in comments #17
* Fix duplicate entries in requirements.txt

0.2.4 (2015-05-10)
---------------------

* Refactoring
* fix "import as"

0.2.3 (2015-05-09)
---------------------

* Fix multiple alias imports on the same line (Tiago Costa)
* More package mappings

0.2.2 (2015-05-08)
---------------------

* Add ImportName -> PackageName mapping
* More tests

0.2.1 (2015-05-08)
---------------------

* Fix for TypeError for implicit conversion

0.2.0 (2015-05-06)
---------------------

* Add --use-local option
* Exclude relative imports. (Dongwon Shin)
* Use "latest_release_id" instead of "release_ids[-1]" (Dongwon Shin)

0.1.9 (2015-05-01)
---------------------

* Output tuning (Harri Berglund)
* Use str.partition() to simplify the logic (cclaus)

0.1.8 (2015-04-26)
---------------------

* Fixed problems with local imports (Dongwon Shin)
* Fixed problems with imports with 'as' (Dongwon Shin)
* Fix indentation, pep8 Styling. (Michael Borisov)
* Optimize imports and adding missing import for sys module. (Michael Borisov)

0.1.7 (2015-04-24)
---------------------

* Add more assertions in tests
* Add more verbose output
* Add recursive delete to Makefile clean
* Update Readme

0.1.6 (2015-04-22)
---------------------

* py3 print function

0.1.5 (2015-04-22)
---------------------

* Add Readme, Add Examples
* Add Stdlib into package

0.1.1 (2015-04-22)
---------------------

* Fix regex matching for imports
* Release on Pypi

0.1.0 (2015-04-22)
---------------------

* First release on Github.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bndr/pipreqs",
    "name": "pipreqs",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8.1,<3.13",
    "maintainer_email": "",
    "keywords": "pip,requirements,imports",
    "author": "Vadim Kravcenko",
    "author_email": "vadim.kravcenko@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/12/4c/0a335b1b70c7e1821140ac6f884b51d47f049bcb600fa19bb374922f73aa/pipreqs-0.5.0.tar.gz",
    "platform": null,
    "description": "=============================================================================\n``pipreqs`` - Generate requirements.txt file for any project based on imports\n=============================================================================\n\n.. image:: https://img.shields.io/travis/bndr/pipreqs.svg\n        :target: https://travis-ci.org/bndr/pipreqs\n\n\n.. image:: https://img.shields.io/pypi/v/pipreqs.svg\n        :target: https://pypi.python.org/pypi/pipreqs\n\n\n.. image:: https://codecov.io/gh/bndr/pipreqs/branch/master/graph/badge.svg?token=0rfPfUZEAX\n        :target: https://codecov.io/gh/bndr/pipreqs\n\n.. image:: https://img.shields.io/pypi/l/pipreqs.svg\n        :target: https://pypi.python.org/pypi/pipreqs\n\n\n\nInstallation\n------------\n\n.. code-block:: sh\n\n    pip install pipreqs\n\nObs.: if you don't want support for jupyter notebooks, you can install pipreqs without the dependencies that give support to it. \nTo do so, run:\n\n.. code-block:: sh\n\n    pip install --no-deps pipreqs\n    pip install yarg==0.1.9 docopt==0.6.2\n\nUsage\n-----\n\n::\n\n    Usage:\n        pipreqs [options] [<path>]\n\n    Arguments:\n        <path>                The path to the directory containing the application files for which a requirements file\n                              should be generated (defaults to the current working directory)\n\n    Options:\n        --use-local           Use ONLY local package info instead of querying PyPI\n        --pypi-server <url>   Use custom PyPi server\n        --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the\n                              environments parameter in your terminal:\n                              $ export HTTP_PROXY=\"http://10.10.1.10:3128\"\n                              $ export HTTPS_PROXY=\"https://10.10.1.10:1080\"\n        --debug               Print debug information\n        --ignore <dirs>...    Ignore extra directories, each separated by a comma\n        --no-follow-links     Do not follow symbolic links in the project\n        --encoding <charset>  Use encoding parameter for file open\n        --savepath <file>     Save the list of requirements in the given file\n        --print               Output the list of requirements in the standard output\n        --force               Overwrite existing requirements.txt\n        --diff <file>         Compare modules in requirements.txt to project imports\n        --clean <file>        Clean up requirements.txt by removing modules that are not imported in project\n        --mode <scheme>       Enables dynamic versioning with <compat>, <gt> or <non-pin> schemes\n                              <compat> | e.g. Flask~=1.1.2\n                              <gt>     | e.g. Flask>=1.1.2\n                              <no-pin> | e.g. Flask\n        --scan-notebooks      Look for imports in jupyter notebook files.\n\nExample\n-------\n\n::\n\n    $ pipreqs /home/project/location\n    Successfully saved requirements file in /home/project/location/requirements.txt\n\nContents of requirements.txt\n\n::\n\n    wheel==0.23.0\n    Yarg==0.1.9\n    docopt==0.6.2\n\nWhy not pip freeze?\n-------------------\n\n- ``pip freeze`` only saves the packages that are installed with ``pip install`` in your environment.\n- ``pip freeze`` saves all packages in the environment including those that you don't use in your current project (if you don't have ``virtualenv``).\n- and sometimes you just need to create ``requirements.txt`` for a new project without installing modules.\n\n.. :changelog:\n\nHistory\n-------\n\n0.4.11 (2020-03-29)\n--------------------\n\n* Implement '--mode' (Jake Teo, Jerome Chan)\n\n0.4.8 (2017-06-30)\n--------------------\n\n* Implement '--clean' and '--diff' (kxrd)\n* Exclude concurrent{,.futures} from stdlib if py2 (kxrd)\n\n0.4.7 (2017-04-20)\n--------------------\n\n* BUG: remove package/version duplicates\n* Style: pep8\n\n0.4.5 (2016-12-13)\n---------------------\n\n* Fixed the --pypi-server option\n\n0.4.4 (2016-07-14)\n---------------------\n\n* Remove Spaces in output\n* Add package to output even without version\n\n0.4.2 (2016-02-10)\n---------------------\n\n* Fix duplicated lines in requirements.txt (Dmitry Pribysh)\n\n0.4.1 (2016-02-05)\n---------------------\n\n* Added ignore option (Nick Rhinehart)\n\n0.4.0 (2016-01-28)\n---------------------\n\n* Walk Abstract Syntax Tree to find imports (Kay Sackey)\n\n0.3.9 (2016-01-20)\n---------------------\n\n* Fix regex for docstring comments (#35)\n\n0.3.8 (2016-01-12)\n---------------------\n\n* Add more package mapping\n* fix(pipreqs/mapping): remove pylab reference to matplotlib\n* Remove comments \"\"\" before going through imports\n* Update proxy documentation\n\n0.3.1 (2015-10-20)\n---------------------\n\n* fixed lint warnings (EJ Lee)\n* add --encoding parameter for open() (EJ Lee)\n* support windows directory separator (EJ Lee)\n\n0.3.0 (2015-09-29)\n---------------------\n\n* Add --proxy option\n* Add --pypi-server option\n\n0.2.9 (2015-09-24)\n---------------------\n\n* Ignore irreverent directory when generating requirement.txt (Lee Wei)\n* Modify logging level of \"Requirement.txt already exists\" to warning (Lee Wei)\n\n0.2.8 (2015-05-11)\n---------------------\n\n* Add --force option as a protection for overwrites\n\n0.2.6 (2015-05-11)\n---------------------\n\n* Fix exception when 'import' is used inside package name #17\n* Add more tests\n\n0.2.5 (2015-05-11)\n---------------------\n\n* Fix exception when 'import' is used in comments #17\n* Fix duplicate entries in requirements.txt\n\n0.2.4 (2015-05-10)\n---------------------\n\n* Refactoring\n* fix \"import as\"\n\n0.2.3 (2015-05-09)\n---------------------\n\n* Fix multiple alias imports on the same line (Tiago Costa)\n* More package mappings\n\n0.2.2 (2015-05-08)\n---------------------\n\n* Add ImportName -> PackageName mapping\n* More tests\n\n0.2.1 (2015-05-08)\n---------------------\n\n* Fix for TypeError for implicit conversion\n\n0.2.0 (2015-05-06)\n---------------------\n\n* Add --use-local option\n* Exclude relative imports. (Dongwon Shin)\n* Use \"latest_release_id\" instead of \"release_ids[-1]\" (Dongwon Shin)\n\n0.1.9 (2015-05-01)\n---------------------\n\n* Output tuning (Harri Berglund)\n* Use str.partition() to simplify the logic (cclaus)\n\n0.1.8 (2015-04-26)\n---------------------\n\n* Fixed problems with local imports (Dongwon Shin)\n* Fixed problems with imports with 'as' (Dongwon Shin)\n* Fix indentation, pep8 Styling. (Michael Borisov)\n* Optimize imports and adding missing import for sys module. (Michael Borisov)\n\n0.1.7 (2015-04-24)\n---------------------\n\n* Add more assertions in tests\n* Add more verbose output\n* Add recursive delete to Makefile clean\n* Update Readme\n\n0.1.6 (2015-04-22)\n---------------------\n\n* py3 print function\n\n0.1.5 (2015-04-22)\n---------------------\n\n* Add Readme, Add Examples\n* Add Stdlib into package\n\n0.1.1 (2015-04-22)\n---------------------\n\n* Fix regex matching for imports\n* Release on Pypi\n\n0.1.0 (2015-04-22)\n---------------------\n\n* First release on Github.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Pip requirements.txt generator based on imports in project",
    "version": "0.5.0",
    "project_urls": {
        "Homepage": "https://github.com/bndr/pipreqs",
        "Repository": "https://github.com/bndr/pipreqs"
    },
    "split_keywords": [
        "pip",
        "requirements",
        "imports"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3638cc1343c3a63655e18328e51e00c6e6851be648f1b8babffc5131f1b9f226",
                "md5": "f2fea85d7f0a06ef51c42cd99e7052d2",
                "sha256": "0809f6217028e35785f80e90217e18043e58c99ba28175e28320f9074dd03874"
            },
            "downloads": -1,
            "filename": "pipreqs-0.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f2fea85d7f0a06ef51c42cd99e7052d2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.1,<3.13",
            "size": 33496,
            "upload_time": "2024-02-18T17:49:34",
            "upload_time_iso_8601": "2024-02-18T17:49:34.148703Z",
            "url": "https://files.pythonhosted.org/packages/36/38/cc1343c3a63655e18328e51e00c6e6851be648f1b8babffc5131f1b9f226/pipreqs-0.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "124c0a335b1b70c7e1821140ac6f884b51d47f049bcb600fa19bb374922f73aa",
                "md5": "0af8cb2f51962f1909226277a68959ab",
                "sha256": "f33298d235ff76def369cb9a3594d084d9badc70cebba1e8cb271fcd4fdc0183"
            },
            "downloads": -1,
            "filename": "pipreqs-0.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0af8cb2f51962f1909226277a68959ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.1,<3.13",
            "size": 35240,
            "upload_time": "2024-02-18T17:49:36",
            "upload_time_iso_8601": "2024-02-18T17:49:36.607958Z",
            "url": "https://files.pythonhosted.org/packages/12/4c/0a335b1b70c7e1821140ac6f884b51d47f049bcb600fa19bb374922f73aa/pipreqs-0.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-18 17:49:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bndr",
    "github_project": "pipreqs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "pipreqs"
}
        
Elapsed time: 0.18601s