requirements-resolver


Namerequirements-resolver JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryA tool to resolve requirements conflicts between n requirements files.
upload_time2025-07-20 20:26:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords requirements dependencies resolver conflicts pip packaging
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🔧 Requirements Resolver

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


<p align="left">
  <a href="https://pypi.org/project/requirements-resolver/">
    <img alt="PyPI Version" src="https://img.shields.io/pypi/v/requirements-resolver.svg">
  </a>
  <a href="https://www.python.org/downloads/release/python-380/">
    <img alt="Python 3.8+" src="https://img.shields.io/badge/python-3.8%2B-blue.svg">
  </a>
  <a href="https://github.com/ruslanmv/requirements-resolver/blob/master/LICENSE">
    <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg">
  </a>
  <a href="https://github.com/ruslanmv/requirements-resolver/actions/workflows/ci.yml">
    <img alt="Build Status" src="https://github.com/ruslanmv/requirements-resolver/actions/workflows/ci.yml/badge.svg">
  </a>
  <a href="https://coveralls.io/github/ruslanmv/requirements-resolver?branch=master">
    <img alt="Coverage Status" src="https://coveralls.io/repos/github/ruslanmv/requirements-resolver/badge.svg?branch=master">
  <a href="https://requirements-resolver.readthedocs.io/en/latest/">
    <img alt="Read the Docs" src="https://readthedocs.org/projects/requirements-resolver/badge/?version=latest">
  </a>
</p>

## 🔍 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:

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

Then install via `pip`:

```bash
pip install requirements-resolver
```

Or grab the latest source:

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

---

## 🎬 Quickstart

### GUI Mode

```bash
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

```bash
requirements-resolver -f reqs/prod.txt reqs/dev.txt
```

* **Specify output**:

  ```bash
  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

```bash
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](./CONTRIBUTING.md) for guidelines.

---

## 📄 Documentation

Full user guide, API reference, and examples are on Read the Docs:
[https://requirements-resolver.readthedocs.io](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](./LICENSE).
© 2025 ruslanmv.com


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "requirements-resolver",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "requirements, dependencies, resolver, conflicts, pip, packaging",
    "author": null,
    "author_email": "Ruslan Magana Vsevolodovna <contact@ruslanmv.com>",
    "download_url": "https://files.pythonhosted.org/packages/1f/81/7cc4fd1ef62c271b24bde134d5bfc0d62fda3d4b8e3c13e567fd12a36479/requirements_resolver-0.1.1.tar.gz",
    "platform": null,
    "description": "# \ud83d\udd27 Requirements Resolver\n\n> Effortlessly merge and resolve Python dependencies from two `requirements.txt` files via a sleek GUI or CLI tool.\n\n\n<p align=\"left\">\n  <a href=\"https://pypi.org/project/requirements-resolver/\">\n    <img alt=\"PyPI Version\" src=\"https://img.shields.io/pypi/v/requirements-resolver.svg\">\n  </a>\n  <a href=\"https://www.python.org/downloads/release/python-380/\">\n    <img alt=\"Python 3.8+\" src=\"https://img.shields.io/badge/python-3.8%2B-blue.svg\">\n  </a>\n  <a href=\"https://github.com/ruslanmv/requirements-resolver/blob/master/LICENSE\">\n    <img alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\">\n  </a>\n  <a href=\"https://github.com/ruslanmv/requirements-resolver/actions/workflows/ci.yml\">\n    <img alt=\"Build Status\" src=\"https://github.com/ruslanmv/requirements-resolver/actions/workflows/ci.yml/badge.svg\">\n  </a>\n  <a href=\"https://coveralls.io/github/ruslanmv/requirements-resolver?branch=master\">\n    <img alt=\"Coverage Status\" src=\"https://coveralls.io/repos/github/ruslanmv/requirements-resolver/badge.svg?branch=master\">\n  <a href=\"https://requirements-resolver.readthedocs.io/en/latest/\">\n    <img alt=\"Read the Docs\" src=\"https://readthedocs.org/projects/requirements-resolver/badge/?version=latest\">\n  </a>\n</p>\n\n## \ud83d\udd0d Overview\n\nRequirements Resolver is a production\u2011ready Python package that:\n\n- **Parses** two separate `requirements.txt` files  \n- **Fetches** all available versions from PyPI  \n- **Computes** the latest set of compatible versions satisfying both files  \n- **Caches** results locally for lightning\u2011fast subsequent runs  \n- **Validates** the merged set in an ephemeral virtual environment  \n- **Delivers** both a polished GUI (Tkinter) and a powerful CLI  \n\nIdeal for open\u2011source projects, CI/CD pipelines, and large\u2011scale Python deployments.\n\n---\n\n## \ud83d\ude80 Installation\n\nEnsure you have **Python\u00a03.8+** installed. On Debian/Ubuntu, install Tkinter for GUI support:\n\n```bash\nsudo apt-get update\nsudo apt-get install python3-tk\n````\n\nThen install via\u202f`pip`:\n\n```bash\npip install requirements-resolver\n```\n\nOr grab the latest source:\n\n```bash\ngit clone https://github.com/ruslanmv/requirements-resolver.git\ncd requirements-resolver\npip install .\n```\n\n---\n\n## \ud83c\udfac Quickstart\n\n### GUI Mode\n\n```bash\nrequirements-resolver\n```\n\n1. **Browse\u2026** to select your two `requirements.txt` files.\n2. Click **Resolve Dependencies**.\n3. Watch progress logs and find your `requirements.merged.txt` upon success.\n\n### CLI Mode\n\n```bash\nrequirements-resolver -f reqs/prod.txt reqs/dev.txt\n```\n\n* **Specify output**:\n\n  ```bash\n  requirements-resolver -f reqs/prod.txt reqs/dev.txt -o requirements.final.txt\n  ```\n\n---\n\n## \ud83d\udee0 Features\n\n* **Dual Interfaces**: Tkinter\u2010based GUI + rich CLI\n* **PyPI Integration**: Real\u2011time version lookup\n* **Local Caching**: Minimizes API calls for repeat runs\n* **Automated Testing**: Leverages `venv` to verify installability\n* **Configurable**: Override cache directory, HTTP timeouts, log levels\n\n---\n\n## \ud83e\uddd1\u200d\ud83d\udcbb Development\n\n```bash\ngit clone https://github.com/ruslanmv.com/requirements-resolver.git\ncd requirements-resolver\nmake setup      # Installs dev dependencies\nmake run        # Launches GUI in development mode\nmake lint       # Checks code style (flake8)\nmake test       # Runs unit tests\n```\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.\n\n---\n\n## \ud83d\udcc4 Documentation\n\nFull user guide, API reference, and examples are on Read\u202fthe\u202fDocs:\n[https://requirements-resolver.readthedocs.io](https://requirements-resolver.readthedocs.io)\n\n---\n\n## \u2764\ufe0f Contributing & Support\n\nPlease \u2b50 the repo, file issues, and submit PRs!\nFor questions or feature requests, open an issue or join our Slack channel.\n\n---\n\n## \ud83d\udcdc License\n\nDistributed under the [MIT License](./LICENSE).\n\u00a9 2025 ruslanmv.com\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A tool to resolve requirements conflicts between n requirements files.",
    "version": "0.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/ruslanmv/requirements-resolver/issues",
        "Homepage": "https://ruslanmv.com",
        "Repository": "https://github.com/ruslanmv/requirements-resolver"
    },
    "split_keywords": [
        "requirements",
        " dependencies",
        " resolver",
        " conflicts",
        " pip",
        " packaging"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f6549791b2b4fb277df599eba7886c1a57aab56b660e12b49eef28c7d1d4efc",
                "md5": "d4dcba00270b1b6c5d2e0debec8a913a",
                "sha256": "fda23c3716b39016cb00fc1d2dcc03c5a97e1f4c33f810d257575ef9a16c8e62"
            },
            "downloads": -1,
            "filename": "requirements_resolver-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d4dcba00270b1b6c5d2e0debec8a913a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12917,
            "upload_time": "2025-07-20T20:26:54",
            "upload_time_iso_8601": "2025-07-20T20:26:54.383352Z",
            "url": "https://files.pythonhosted.org/packages/2f/65/49791b2b4fb277df599eba7886c1a57aab56b660e12b49eef28c7d1d4efc/requirements_resolver-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1f817cc4fd1ef62c271b24bde134d5bfc0d62fda3d4b8e3c13e567fd12a36479",
                "md5": "55cd92052c7c44109ffb7e71971cad11",
                "sha256": "49f04008301bf9b37be572a813aa9ef1172d7e18a9aca4940f4dfa51be6169a1"
            },
            "downloads": -1,
            "filename": "requirements_resolver-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "55cd92052c7c44109ffb7e71971cad11",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 14124,
            "upload_time": "2025-07-20T20:26:55",
            "upload_time_iso_8601": "2025-07-20T20:26:55.539795Z",
            "url": "https://files.pythonhosted.org/packages/1f/81/7cc4fd1ef62c271b24bde134d5bfc0d62fda3d4b8e3c13e567fd12a36479/requirements_resolver-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 20:26:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ruslanmv",
    "github_project": "requirements-resolver",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "requirements-resolver"
}
        
Elapsed time: 1.11392s