Skip to main content

A tool to resolve requirements conflicts between n requirements files.

Project description

🔧 Requirements Resolver

Effortlessly merge and resolve Python dependencies from two requirements.txt files via a sleek GUI or CLI tool.

PyPI Version Python 3.8+ License: MIT Build Status Coverage Status Read the Docs

🔍 Overview

Requirements Resolver is a production‑ready Python package that:

  • Parses two separate requirements.txt files
  • Fetches all available versions from PyPI
  • Computes the latest set of compatible versions satisfying both files
  • Caches results locally for lightning‑fast subsequent runs
  • Validates the merged set in an ephemeral virtual environment
  • Delivers both a polished GUI (Tkinter) and a powerful CLI

Ideal for open‑source projects, CI/CD pipelines, and large‑scale Python deployments.


🚀 Installation

Ensure you have Python 3.8+ installed. On Debian/Ubuntu, install Tkinter for GUI support:

sudo apt-get update
sudo apt-get install python3-tk

Then install via pip:

pip install requirements-resolver

Or grab the latest source:

git clone https://github.com/ruslanmv/requirements-resolver.git
cd requirements-resolver
pip install .

🎬 Quickstart

GUI Mode

requirements-resolver
  1. Browse… to select your two requirements.txt files.
  2. Click Resolve Dependencies.
  3. Watch progress logs and find your requirements.merged.txt upon success.

CLI Mode

requirements-resolver -f reqs/prod.txt reqs/dev.txt
  • Specify output:

    requirements-resolver -f reqs/prod.txt reqs/dev.txt -o requirements.final.txt
    

🛠 Features

  • Dual Interfaces: Tkinter‐based GUI + rich CLI
  • PyPI Integration: Real‑time version lookup
  • Local Caching: Minimizes API calls for repeat runs
  • Automated Testing: Leverages venv to verify installability
  • Configurable: Override cache directory, HTTP timeouts, log levels

🧑‍💻 Development

git clone https://github.com/ruslanmv.com/requirements-resolver.git
cd requirements-resolver
make setup      # Installs dev dependencies
make run        # Launches GUI in development mode
make lint       # Checks code style (flake8)
make test       # Runs unit tests

See CONTRIBUTING.md for guidelines.


📄 Documentation

Full user guide, API reference, and examples are on Read the Docs: https://requirements-resolver.readthedocs.io


❤️ Contributing & Support

Please ⭐ the repo, file issues, and submit PRs! For questions or feature requests, open an issue or join our Slack channel.


📜 License

Distributed under the MIT License. © 2025 ruslanmv.com

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

requirements_resolver-0.1.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

requirements_resolver-0.1.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: requirements_resolver-0.1.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for requirements_resolver-0.1.1.tar.gz
Algorithm Hash digest
SHA256 49f04008301bf9b37be572a813aa9ef1172d7e18a9aca4940f4dfa51be6169a1
MD5 55cd92052c7c44109ffb7e71971cad11
BLAKE2b-256 1f817cc4fd1ef62c271b24bde134d5bfc0d62fda3d4b8e3c13e567fd12a36479

See more details on using hashes here.

Provenance

The following attestation bundles were made for requirements_resolver-0.1.1.tar.gz:

Publisher: build-release.yml on ruslanmv/requirements-resolver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for requirements_resolver-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fda23c3716b39016cb00fc1d2dcc03c5a97e1f4c33f810d257575ef9a16c8e62
MD5 d4dcba00270b1b6c5d2e0debec8a913a
BLAKE2b-256 2f6549791b2b4fb277df599eba7886c1a57aab56b660e12b49eef28c7d1d4efc

See more details on using hashes here.

Provenance

The following attestation bundles were made for requirements_resolver-0.1.1-py3-none-any.whl:

Publisher: build-release.yml on ruslanmv/requirements-resolver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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