Metadata-Version: 2.1
Name: depkeeper
Version: 0.1.0
Summary: Modern Python dependency management for requirements.txt files
Author: Rahul Kaushal
License: Apache-2.0
Project-URL: Homepage, https://github.com/rahulkaushal04/depkeeper
Project-URL: Documentation, https://rahulkaushal04.github.io/depkeeper/
Project-URL: Repository, https://github.com/rahulkaushal04/depkeeper
Project-URL: Bug Tracker, https://github.com/rahulkaushal04/depkeeper/issues
Project-URL: Changelog, https://github.com/rahulkaushal04/depkeeper/blob/main/CHANGELOG.md
Keywords: dependencies,requirements,pip,package-management,security,updates
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Software Distribution
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1.8
Requires-Dist: packaging>=23.2
Requires-Dist: httpx[http2]>=0.24.1
Requires-Dist: rich>=13.9.4
Requires-Dist: tomli>=2.4.0
Provides-Extra: dev
Requires-Dist: pytest>=7.4.4; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.8; extra == "dev"
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
Requires-Dist: pytest-httpx>=0.22.0; extra == "dev"
Requires-Dist: mypy>=1.14.1; extra == "dev"
Requires-Dist: types-setuptools; extra == "dev"
Requires-Dist: pre-commit>=3.5.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.4.4; extra == "test"
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.23.8; extra == "test"
Requires-Dist: pytest-mock>=3.14.1; extra == "test"
Requires-Dist: pytest-httpx>=0.22.0; extra == "test"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
Requires-Dist: mkdocs-material>=9.7.1; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.26.1; extra == "docs"
Requires-Dist: pymdown-extensions>=10.15; extra == "docs"
Requires-Dist: mkdocs-minify-plugin>=0.8.0; extra == "docs"

# depkeeper

[![Tests](https://github.com/rahulkaushal04/depkeeper/workflows/Tests/badge.svg)](https://github.com/rahulkaushal04/depkeeper/actions)
[![Coverage](https://codecov.io/gh/rahulkaushal04/depkeeper/branch/main/graph/badge.svg)](https://codecov.io/gh/rahulkaushal04/depkeeper)
[![PyPI version](https://badge.fury.io/py/depkeeper.svg)](https://badge.fury.io/py/depkeeper)
[![Python versions](https://img.shields.io/pypi/pyversions/depkeeper.svg)](https://pypi.org/project/depkeeper/)
[![Downloads](https://static.pepy.tech/badge/depkeeper)](https://pepy.tech/project/depkeeper)
[![Downloads per month](https://static.pepy.tech/badge/depkeeper/month)](https://pepy.tech/project/depkeeper)
[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

Modern, intelligent Python dependency management for `requirements.txt` files.
Keep your dependencies up-to-date and conflict-free — without switching from pip.

---

## Features

- **Smart Version Checking** — discover available package updates with intelligent recommendations
- **Dependency Conflict Resolution** — detect and resolve version conflicts automatically
- **Safe Updates** — never cross major version boundaries to prevent breaking changes
- **Fast & Concurrent** — async PyPI queries for maximum performance
- **Beautiful CLI** — rich terminal UI with colors & status indicators
- **Multiple Output Formats** — table, simple text, or JSON for CI/CD integration
- **Full Requirements Parsing** — PEP 440/508 compliant with support for `-r`, `-c`, VCS URLs, and more
- **Flexible** — works alongside pip, not instead of it

### Coming Soon

- **Security Scanning** — detect known vulnerabilities
- **Lock File Generation** — create reproducible environments
- **Health Scoring** — measure package quality & maintainability
- **Format Conversion** — import/export between `requirements.txt`, `pyproject.toml`, Pipfile, and more

---

## Quick Start

### Installation

```bash
pip install depkeeper
```

### Basic Usage

```bash
# Check for available updates
depkeeper check

# Check and show only outdated packages
depkeeper check --outdated-only

# Output as JSON (for CI/CD pipelines)
depkeeper check --format json

# Update all packages to safe versions (within major version)
depkeeper update

# Preview updates without applying
depkeeper update --dry-run

# Update specific packages only
depkeeper update -p flask -p requests

# Create backup before updating and skip confirmation
depkeeper update --backup -y
```

---

## Commands

### `depkeeper check`

Analyze your `requirements.txt` file to identify packages with available updates.

```bash
depkeeper check [FILE] [OPTIONS]

Options:
  --outdated-only           Show only packages with available updates
  -f, --format [table|simple|json]
                            Output format (default: table)
  --strict-version-matching Only use exact version pins
  --check-conflicts         Check for dependency conflicts (default: enabled)
```

### `depkeeper update`

Update packages to their safe recommended versions (within major version boundaries).

```bash
depkeeper update [FILE] [OPTIONS]

Options:
  --dry-run                 Preview changes without applying
  -y, --yes                 Skip confirmation prompt
  --backup                  Create backup file before updating
  -p, --packages TEXT       Update only specific packages (repeatable)
  --strict-version-matching Only use exact version pins
  --check-conflicts         Check for conflicts (default: enabled)
```

---

## Documentation

Full documentation will be available soon at **[https://rahulkaushal04.github.io/depkeeper/](https://rahulkaushal04.github.io/depkeeper/)**

---

## Why depkeeper?

Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophistication:

| pip                         | poetry          | depkeeper                           |
| --------------------------- | --------------- | ----------------------------------- |
| simple                      | powerful        | simple + powerful                   |
| minimal tooling             | strict workflow | flexible workflow                   |
| limited dependency checking | strong resolver | strong resolver + update automation |
| no conflict detection       | automatic       | automatic with safe boundaries      |

**Focus on code — let depkeeper handle dependency hygiene.**

---

## Contributing

We welcome contributions of all kinds!
Please see our **[Contributing Guide](CONTRIBUTING.md)** for details.

### Development Setup

```bash
# Clone the repository
git clone https://github.com/rahulkaushal04/depkeeper.git
cd depkeeper

# Run setup script
bash scripts/setup_dev.sh

# Or manually:
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e ".[dev]"
pre-commit install
```

---

## License

This project is licensed under the **Apache-2.0 License** — see the [LICENSE](LICENSE) file for details.

---

## Acknowledgments

- Built with amazing libraries like **Click**, **Rich**, and **httpx**
- Inspired by tools such as **pip-tools**, **Poetry**, and **Dependabot**

---

## Support

- GitHub Discussions: [https://github.com/rahulkaushal04/depkeeper/discussions](https://github.com/rahulkaushal04/depkeeper/discussions)
- Issues: [https://github.com/rahulkaushal04/depkeeper/issues](https://github.com/rahulkaushal04/depkeeper/issues)

---
