Skip to main content

Effortlessly inspect and upgrade dependencies in your pyproject.toml

Project description

📦 depcheckr

PyPI version Python versions License Tests Release

The smart, modern way to manage your Python dependencies.

Inspect, compare, and upgrade dependencies in your pyproject.toml — with style and safety.


🚀 Features

  • 📖 Inspect your dependencies and check if they’re up to date
  • 📈 Get clear update types: major, minor, patch, or up-to-date
  • 🔁 Upgrade individual packages or all at once
  • 🧪 Dry-run support so nothing breaks accidentally
  • 💄 Beautiful CLI powered by Typer and Rich
  • 🦄 Python 3.11+ native — built with modern tooling and async speed

📥 Installation

pip install depcheckr

💡 Make sure your project is initialized as a Git repository:

git init

🛠 Usage

🔍 Inspect dependencies

depcheckr inspect show

Or inspect dev dependencies:

depcheckr inspect show --group dev

♻️ Upgrade dependencies

Upgrade one or more specific packages:

depcheckr upgrade apply --upgrade django httpx

Upgrade all outdated packages:

depcheckr upgrade apply --upgrade-all

Preview changes without writing to file:

depcheckr upgrade apply --upgrade-all --dry-run

✅ Git Commit Conventions

depcheckr follows the Conventional Commits standard. This is required for changelog automation and GitHub release notes.

Examples

  • feat: add support for --upgrade-all
  • fix: correct version parsing issue
  • chore: bump version to 0.2.0

Hooks and Automation

This repo uses pre-commit and commitlint to enforce commit standards.

Install pre-commit hooks:

pre-commit install

Your commits will now be linted automatically.

Optional: Use Commitizen (interactive prompt)

You can install Commitizen:

npm install -g commitizen cz-conventional-changelog

Then run:

cz

Or, if you're using Bun and already initialized the repo with Git:

bun x cz

If using Lazygit, add this to ~/.config/lazygit/config.yml:

customCommands:
  - key: "C"
    context: "files"
    command: "cz commit"
    description: "Commit using Commitizen"
    subprocess: true

🧪 Requirements

  • Python 3.11 or newer
  • Git (ensure repo is initialized with git init)

📦 Packaging and Development

To build locally with uv:

uv venv
uv pip install -e .
depcheckr inspect show

To publish:

uv build
uv pip install twine
python -m twine upload dist/*

🤝 Contributing

Contributions are welcome! To get started:

  1. Fork the repo and clone it locally
  2. Install dependencies with uv pip install -e .
  3. Set up the pre-commit hooks: pre-commit install
  4. Use conventional commits via cz or cz commit
  5. Run tests and lint before opening a PR

Please follow the Conventional Commits format and ensure all checks pass before submitting pull requests.


🪪 License

MIT License © 2025 Patrick Mazulo

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

depcheckr-0.1.1.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

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

depcheckr-0.1.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file depcheckr-0.1.1.tar.gz.

File metadata

  • Download URL: depcheckr-0.1.1.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.19

File hashes

Hashes for depcheckr-0.1.1.tar.gz
Algorithm Hash digest
SHA256 84a8c141c121ead3b6961ecf3b5bcf5642ea80390844f9d0938cee05543a56fb
MD5 c6f43273b0cd4e0956576d3cb84e9db4
BLAKE2b-256 07a96ff23e69f31d6f2fea63e0f430b9a17131643a8ff142b0f9af955458e24e

See more details on using hashes here.

File details

Details for the file depcheckr-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: depcheckr-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.19

File hashes

Hashes for depcheckr-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9dd9335422d48fa700331fa0c3719cdf1123dc21a196c293163e1b2da7d79395
MD5 e54e7a70be55acd505508e5e8c914a8f
BLAKE2b-256 0cfcd66c1b0415e6066e66e9366d2374e4febcf822f58a724d25a7bb08224808

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