{"id":13501930,"url":"https://github.com/alanhamlett/pip-update-requirements","last_synced_at":"2025-05-14T10:12:40.736Z","repository":{"id":41124932,"uuid":"58374159","full_name":"alanhamlett/pip-update-requirements","owner":"alanhamlett","description":"Update the packages in a requirements.txt file.","archived":false,"fork":false,"pushed_at":"2024-12-12T06:36:48.000Z","size":4520,"stargazers_count":625,"open_issues_count":11,"forks_count":24,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-05T19:03:03.638Z","etag":null,"topics":["dependency-manager","pip","python"],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/pur","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alanhamlett.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-09T12:18:02.000Z","updated_at":"2025-03-28T16:45:05.000Z","dependencies_parsed_at":"2024-05-29T12:14:18.672Z","dependency_job_id":"d57776bd-e6eb-4c2b-b0d5-55007d6f24f3","html_url":"https://github.com/alanhamlett/pip-update-requirements","commit_stats":{"total_commits":202,"total_committers":7,"mean_commits":"28.857142857142858","dds":0.07425742574257421,"last_synced_commit":"5ccfa03a06c27f63e25762c24fcda8dbe1acf13e"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanhamlett%2Fpip-update-requirements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanhamlett%2Fpip-update-requirements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanhamlett%2Fpip-update-requirements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanhamlett%2Fpip-update-requirements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alanhamlett","download_url":"https://codeload.github.com/alanhamlett/pip-update-requirements/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631225,"owners_count":21136550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-manager","pip","python"],"created_at":"2024-07-31T22:01:55.671Z","updated_at":"2025-04-12T20:36:23.441Z","avatar_url":"https://github.com/alanhamlett.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"[![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 -\u003e 1.0.2\n    Updated sqlalchemy: 0.9.10 -\u003e 1.2.8\n    Updated alembic: 0.8.4 -\u003e 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    \u003e\u003e\u003e from pur import update_requirements\n    \u003e\u003e\u003e print([x[0]['message'] for x in update_requirements(input_file='requirements.txt').values()])\n    ['Updated flask: 0.9 -\u003e 1.0.2', 'Updated sqlalchemy: 0.9.10 -\u003e 1.2.8', 'Updated alembic: 0.8.4 -\u003e 0.9.9']\n    \u003e\u003e\u003e 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 \u003e or \u003e= 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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanhamlett%2Fpip-update-requirements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falanhamlett%2Fpip-update-requirements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanhamlett%2Fpip-update-requirements/lists"}