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.2.tar.gz (39.3 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.2-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for depcheckr-0.1.2.tar.gz
Algorithm Hash digest
SHA256 724f8d272c60ba442645e2d18c8c672b3a9cadc73d879ae79511c0f5948af850
MD5 3b84b72e3d5c488f1c0514919abcd1f5
BLAKE2b-256 dab9bd7a67cbc3a68923d8c7a12d978eece9f4bfc42474a35a63f97eb328a298

See more details on using hashes here.

File details

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

File metadata

  • Download URL: depcheckr-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8ce719da73329cff73d91c14ddb624166910e5f7e8db803a6671e509426f740b
MD5 ee8df93a811f32a510da6c6fae3fd36d
BLAKE2b-256 59b353c0331bd243330bb29c47b6c55633e4792f28d87f5fe7e33519189c0afd

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