Metadata-Version: 2.4
Name: reqtracker
Version: 1.0.2
Summary: Intelligent Python dependency tracking and requirements.txt generation
Author-email: Oleksii Shcherbak <oleksii_shcherbak@icloud.com>
License: MIT
Project-URL: Homepage, https://github.com/oleksii-shcherbak/reqtracker
Project-URL: Repository, https://github.com/oleksii-shcherbak/reqtracker
Project-URL: Issues, https://github.com/oleksii-shcherbak/reqtracker/issues
Project-URL: Documentation, https://github.com/oleksii-shcherbak/reqtracker#readme
Project-URL: Changelog, https://github.com/oleksii-shcherbak/reqtracker/releases
Keywords: dependencies,requirements,tracking,automation,development,pip,packaging,dependency-management,static-analysis,ast
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
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: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tomli>=2.0.0; python_version < "3.11"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.0; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: pre-commit>=3.0; extra == "dev"
Dynamic: license-file

# reqtracker

**Intelligent Python dependency tracking and requirements.txt generation**

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

reqtracker automatically detects and manages Python dependencies in your projects using static analysis, dynamic tracking, or hybrid approaches. Unlike traditional tools like `pip freeze`, reqtracker focuses on generating accurate `requirements.txt` files based on *actual project usage*.

---

## ✨ Features

- **🔍 Smart Dependency Detection**: Analyzes your code to find actually used packages
- **⚡ Multiple Analysis Modes**: Static (AST), Dynamic (runtime), or Hybrid (both)
- **🎯 Accurate Package Mapping**: Maps imports like `cv2` to `opencv-python`
- **📦 Flexible Output**: Multiple version strategies and output formats
- **🛠️ Zero Configuration**: Works out of the box with sensible defaults
- **⚙️ Highly Configurable**: Customize analysis via config files or API
- **🚀 CLI & Library**: Use as command-line tool or Python library
- **🧪 Well-Tested**: 204 comprehensive tests with >95% coverage

---

## 📦 Installation

Install reqtracker using pip:

```bash
pip install reqtracker
```

---

## 🚀 Quick Start

### Command Line Usage

```bash
# Analyze current directory and generate requirements.txt
reqtracker analyze

# Track dependencies in specific paths
reqtracker track ./src ./app

# Generate with exact versions
reqtracker generate --version-strategy exact

# Use static analysis only
reqtracker analyze --mode static --output deps.txt
```

### Python Library Usage

```python
import reqtracker

# Simple usage - analyze current directory
packages = reqtracker.track()
print(packages)  # {"requests", "numpy", "pandas"}

# Generate requirements.txt
reqtracker.generate()

# Complete workflow
reqtracker.analyze()  # Track dependencies and generate requirements.txt
```

---

## 🧪 Testing

The project includes comprehensive testing with 204 tests:

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=src/reqtracker --cov-report=html

# Run integration tests only
pytest tests/integration -v
```

### Test Categories
- **Unit Tests**: Core functionality testing
- **Integration Tests**: Real project scenarios
- **Performance Tests**: Benchmarking different project sizes
- **Cross-Platform Tests**: Compatibility across operating systems

---

## 📚 Documentation

- **[Getting Started](docs/README.md)** - Overview and quick start guide
- **[API Documentation](docs/api/README.md)** - Complete API reference for all modules

- **[Configuration Guide](docs/guides/configuration.md)** - All configuration options
- **[Examples](examples/README.md)** - Real-world usage examples and tutorials

---

## 🤝 Contributing

I welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

---

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
