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 .[dev]  (to install dev deps 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.4.tar.gz (7.7 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.4-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: upgrade_py_direct_reqs-0.2.4.tar.gz
  • Upload date:
  • Size: 7.7 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.4.tar.gz
Algorithm Hash digest
SHA256 4536ee7985eb50763a4ecbbd357268cb1908872be2fa4c586b9b8c74c5449419
MD5 24b90d3d2db26a15220e31e10d2bf093
BLAKE2b-256 7b693eff30b26fa6cb47db00cf956705070265deab0829ab5d8541937619dd6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for upgrade_py_direct_reqs-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ece92716f0e88a6d9feae2847026647cf55c4f34e3e566aa318ffb7a32401cb2
MD5 985f30c9953ad91b49ff1f79b1dc23f0
BLAKE2b-256 102f97375d4f475dafb0e94bc99b26083667c0cf5ce82de744acc47ef5cb7fde

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