Skip to main content

Upgrade only direct dependencies in requirements.txt or pyproject.toml

Project description

upgrade-py-direct-reqs

Upgrade only direct dependencies listed in requirements.txt safely.

A Python CLI tool that lets you review and upgrade only direct dependencies in a project’s requirements.txt or pyproject.toml, while keeping your pinned versions up to date.

Developed by Miteshkumar N Raval with guidance and scripting assistance from coding agents.

Features

  • Lists outdated direct dependencies.
  • Prompts for confirmation before upgrading.
  • Supports both requirements.txt and pyproject.toml (with [project.dependencies]).
  • Updates requirements.txt with new pinned versions.
  • Cross-platform: works on Linux, macOS, and Windows.
  • CLI installable via pip in a virtual environment or globally.

Installation

# Recommended: install inside your existing project virtual environment
source myenv/bin/activate  # or myenv\Scripts\activate on Windows
pip install upgrade-py-direct-reqs

Usage

# Explicitly specify your requirements file
upgrade-py-direct-reqs requirements.txt

# Or specify your pyproject.toml
upgrade-py-direct-reqs pyproject.toml
  • The CLI lists outdated direct dependencies.
  • Review versions and confirm before upgrading.
  • After upgrade, the requirements.txt file is updated with pinned versions.

Example

Before

requirements.txt:

requests==2.30.0
flask==2.2.5

Command

upgrade-py-direct-reqs requirements.txt

Output (sample)

📦 Outdated direct dependencies:

  requests: 2.30.0 → 2.32.3
  flask: 2.2.5 → 3.0.3

⚠️  Please review package revisions listed above before upgrading.
   Check release notes on pypi.org for BREAKING changes or necessary code updates.

Proceed with upgrade? (y/n): y
⬆️  Upgrading 2 packages...
✅ Requirements updated: requirements.txt

After

requirements.txt:

requests==2.32.3
flask==3.0.3

Test instructions

To run CLI tests with pytest:

 1. pip install .  (to install dependencies listed in pyproject.toml)
 2. Ensure pytest is installed in your environment: pip install pytest
 3. Run tests from the project root:
       pytest tests/test_cli.py
 4. Tests cover:
       - requirements.txt only
       - pyproject.toml only
       - conflicting dependencies in both files
       - empty requirements.txt
       - invalid toml file name (refer PEP 621 for more details)

License

This project is licensed under the MIT License — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

upgrade_py_direct_reqs-0.2.3.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

upgrade_py_direct_reqs-0.2.3-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file upgrade_py_direct_reqs-0.2.3.tar.gz.

File metadata

  • Download URL: upgrade_py_direct_reqs-0.2.3.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for upgrade_py_direct_reqs-0.2.3.tar.gz
Algorithm Hash digest
SHA256 f2c073e7cb1bf3b0e84bbc74a8404d708d2b03a5092d871b542c2f53cc0567f2
MD5 e1725db8704cc6d467cc902010f7a5f0
BLAKE2b-256 354c39bb2ee01830990a424e41d1da80f6042f84c1303789823537e1f93be317

See more details on using hashes here.

File details

Details for the file upgrade_py_direct_reqs-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for upgrade_py_direct_reqs-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 90e8da8a99d59c84f3c81cb268d57f4037f5efc2751101f1285d30d23707b015
MD5 0d7062ef33ab63fb699305692ddbc0ad
BLAKE2b-256 4928f024f2bc7887a6c69413416d02ed7a21c719826a66e01bc442cafd4e5685

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page