[![Tests](https://img.shields.io/github/actions/workflow/status/alanhamlett/pip-update-requirements/tests.yml?branch=master)](https://github.com/alanhamlett/pip-update-requirements/actions)
[![Coverage](https://codecov.io/gh/alanhamlett/pip-update-requirements/branch/master/graph/badge.svg?token=Ob1I7eMhiS)](https://codecov.io/gh/alanhamlett/pip-update-requirements)
[![Version](https://img.shields.io/pypi/v/pur.svg)](https://pypi.python.org/pypi/pur)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pur.svg)](https://pypi.python.org/pypi/pur)
[![WakaTime](https://wakatime.com/badge/github/alanhamlett/pip-update-requirements.svg)](https://wakatime.com/)
# pip-update-requirements
Update the packages in a `requirements.txt` file.
![Purring Cat](https://raw.githubusercontent.com/alanhamlett/pip-update-requirements/master/pur.gif)
## Installation
pip install pur
## Usage
Give pur your `requirements.txt` file and it updates all your packages to
the latest versions.
For example, given a `requirements.txt` file:
flask==0.9
sqlalchemy==0.9.10
alembic==0.8.4
Running pur on that file updates the packages to current latest versions:
$ pur -r requirements.txt
Updated flask: 0.9 -> 1.0.2
Updated sqlalchemy: 0.9.10 -> 1.2.8
Updated alembic: 0.8.4 -> 0.9.9
All requirements up-to-date.
Pur never modifies your environment or installed packages, it only modifies
your `requirements.txt` file.
You can also use Pur directly from Python:
$ python
Python 3.6.1
>>> from pur import update_requirements
>>> print([x[0]['message'] for x in update_requirements(input_file='requirements.txt').values()])
['Updated flask: 0.9 -> 1.0.2', 'Updated sqlalchemy: 0.9.10 -> 1.2.8', 'Updated alembic: 0.8.4 -> 0.9.9']
>>> print(open('requirements.txt').read())
flask==1.0.2
sqlalchemy==1.2.8
alembic==0.9.9
## Options
-r, --requirement PATH The requirements.txt file to update; Defaults to
using requirements.txt from the current directory
if it exist.
-o, --output PATH Output updated packages to this file; Defaults to
overwriting the input requirements.txt file.
--interactive Interactively prompts before updating each package.
-f, --force Force updating packages even when a package has no
version specified in the input requirements.txt
file.
-d, --dry-run Output changes to STDOUT instead of overwriting the
requirements.txt file.
--dry-run-changed Enable dry run and only output packages with
updates, not packages that are already the latest.
-n, --no-recursive Prevents updating nested requirements files.
--skip TEXT Comma separated list of packages to skip updating.
--skip-gt Skip updating packages using > or >= spec, to allow
specifying minimum supported versions of packages.
--index-url TEXT Base URL of the Python Package Index. Can be
provided multiple times for extra index urls.
--cert PATH Path to PEM-encoded CA certificate bundle. If
provided, overrides the default.
--no-ssl-verify Disable verifying the server's TLS certificate.
--only TEXT Comma separated list of packages. Only these
packages will be updated.
--minor TEXT Comma separated list of packages to only update
minor versions, never major. Use "*" to limit every
package to minor version updates.
--patch TEXT Comma separated list of packages to only update
patch versions, never major or minor. Use "*" to
limit every package to patch version updates.
--pre TEXT Comma separated list of packages to allow updating
to pre-release versions. Use "*" to allow all
packages to be updated to pre-release versions. By
default packages are only updated to stable
versions.
-z, --nonzero-exit-code Exit with status 1 when some packages were updated,
0 when no packages updated, or a number greater
than 1 when there was an error. By default, exit
status 0 is used unless there was an error
irregardless of whether packages were or not
updated.
--version Show the version and exit.
--help Show this message and exit.
## Contributing
Before contributing a pull request, make sure tests pass:
virtualenv venv
. venv/bin/activate
pip install tox
tox
Many thanks to all [contributors](https://github.com/alanhamlett/pip-update-requirements/blob/master/AUTHORS)!
Raw data
{
"_id": null,
"home_page": "https://github.com/alanhamlett/pip-update-requirements",
"name": "pur",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Alan Hamlett",
"author_email": "alan.hamlett@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/15/cb/622a569ff2467e481be1295fc49f9dd5796416d9a1583312aae2074dfb86/pur-7.3.1.tar.gz",
"platform": "any",
"description": "[![Tests](https://img.shields.io/github/actions/workflow/status/alanhamlett/pip-update-requirements/tests.yml?branch=master)](https://github.com/alanhamlett/pip-update-requirements/actions)\n[![Coverage](https://codecov.io/gh/alanhamlett/pip-update-requirements/branch/master/graph/badge.svg?token=Ob1I7eMhiS)](https://codecov.io/gh/alanhamlett/pip-update-requirements)\n[![Version](https://img.shields.io/pypi/v/pur.svg)](https://pypi.python.org/pypi/pur)\n[![Supported Python Versions](https://img.shields.io/pypi/pyversions/pur.svg)](https://pypi.python.org/pypi/pur)\n[![WakaTime](https://wakatime.com/badge/github/alanhamlett/pip-update-requirements.svg)](https://wakatime.com/)\n\n# pip-update-requirements\n\nUpdate the packages in a `requirements.txt` file.\n\n![Purring Cat](https://raw.githubusercontent.com/alanhamlett/pip-update-requirements/master/pur.gif)\n\n## Installation\n\n pip install pur\n\n## Usage\n\nGive pur your `requirements.txt` file and it updates all your packages to\nthe latest versions.\n\nFor example, given a `requirements.txt` file:\n\n flask==0.9\n sqlalchemy==0.9.10\n alembic==0.8.4\n\nRunning pur on that file updates the packages to current latest versions:\n\n $ pur -r requirements.txt\n Updated flask: 0.9 -> 1.0.2\n Updated sqlalchemy: 0.9.10 -> 1.2.8\n Updated alembic: 0.8.4 -> 0.9.9\n All requirements up-to-date.\n\n\nPur never modifies your environment or installed packages, it only modifies\nyour `requirements.txt` file.\n\nYou can also use Pur directly from Python:\n\n $ python\n Python 3.6.1\n >>> from pur import update_requirements\n >>> print([x[0]['message'] for x in update_requirements(input_file='requirements.txt').values()])\n ['Updated flask: 0.9 -> 1.0.2', 'Updated sqlalchemy: 0.9.10 -> 1.2.8', 'Updated alembic: 0.8.4 -> 0.9.9']\n >>> print(open('requirements.txt').read())\n flask==1.0.2\n sqlalchemy==1.2.8\n alembic==0.9.9\n\n\n## Options\n\n -r, --requirement PATH The requirements.txt file to update; Defaults to\n using requirements.txt from the current directory\n if it exist.\n -o, --output PATH Output updated packages to this file; Defaults to\n overwriting the input requirements.txt file.\n --interactive Interactively prompts before updating each package.\n -f, --force Force updating packages even when a package has no\n version specified in the input requirements.txt\n file.\n -d, --dry-run Output changes to STDOUT instead of overwriting the\n requirements.txt file.\n --dry-run-changed Enable dry run and only output packages with\n updates, not packages that are already the latest.\n -n, --no-recursive Prevents updating nested requirements files.\n --skip TEXT Comma separated list of packages to skip updating.\n --skip-gt Skip updating packages using > or >= spec, to allow\n specifying minimum supported versions of packages.\n --index-url TEXT Base URL of the Python Package Index. Can be\n provided multiple times for extra index urls.\n --cert PATH Path to PEM-encoded CA certificate bundle. If\n provided, overrides the default.\n --no-ssl-verify Disable verifying the server's TLS certificate.\n --only TEXT Comma separated list of packages. Only these\n packages will be updated.\n --minor TEXT Comma separated list of packages to only update\n minor versions, never major. Use \"*\" to limit every\n package to minor version updates.\n --patch TEXT Comma separated list of packages to only update\n patch versions, never major or minor. Use \"*\" to\n limit every package to patch version updates.\n --pre TEXT Comma separated list of packages to allow updating\n to pre-release versions. Use \"*\" to allow all\n packages to be updated to pre-release versions. By\n default packages are only updated to stable\n versions.\n -z, --nonzero-exit-code Exit with status 1 when some packages were updated,\n 0 when no packages updated, or a number greater\n than 1 when there was an error. By default, exit\n status 0 is used unless there was an error\n irregardless of whether packages were or not\n updated.\n --version Show the version and exit.\n --help Show this message and exit.\n\n## Contributing\n\nBefore contributing a pull request, make sure tests pass:\n\n virtualenv venv\n . venv/bin/activate\n pip install tox\n tox\n\nMany thanks to all [contributors](https://github.com/alanhamlett/pip-update-requirements/blob/master/AUTHORS)!\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Update packages in a requirements.txt file to latest versions.",
"version": "7.3.1",
"project_urls": {
"Homepage": "https://github.com/alanhamlett/pip-update-requirements"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15cb622a569ff2467e481be1295fc49f9dd5796416d9a1583312aae2074dfb86",
"md5": "60bee1c52faf71ae32fd6876cf2df330",
"sha256": "ac693e4c1b7c8fa376b198ce797488befa65f0965ce13b4a8659fd44113a24ba"
},
"downloads": -1,
"filename": "pur-7.3.1.tar.gz",
"has_sig": false,
"md5_digest": "60bee1c52faf71ae32fd6876cf2df330",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1519331,
"upload_time": "2023-09-04T11:55:45",
"upload_time_iso_8601": "2023-09-04T11:55:45.704639Z",
"url": "https://files.pythonhosted.org/packages/15/cb/622a569ff2467e481be1295fc49f9dd5796416d9a1583312aae2074dfb86/pur-7.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-04 11:55:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "alanhamlett",
"github_project": "pip-update-requirements",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "pur"
}