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 PyPI Downloads 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.0.tar.gz (12.2 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.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: requirements_resolver-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 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.0.tar.gz
Algorithm Hash digest
SHA256 3f1ee48ad37ea4923694bed8792d72782077fdcf3f55ef0ee253f6ea5677452e
MD5 d6adddc4d8db91c2571a82a10108116e
BLAKE2b-256 c8f4b0d5d1bd2f7e1c1faa50202b169ef65fa673cdb577403bfdf002ed9a4fa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for requirements_resolver-0.1.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for requirements_resolver-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f914839321eed13336969bededbbd9a354f3ad80ab19632f4d9afd63984494b0
MD5 ddb5a0b198a5e12a07d24bf2952c652f
BLAKE2b-256 04f9eae5c929c445504afdd1ec7525945ebdc7cb1e4baf86f7a4a7d47238dbc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for requirements_resolver-0.1.0-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