Intelligent Python dependency tracking and requirements.txt generation
Project description
reqtracker
Intelligent Python dependency tracking and requirements.txt generation
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
cv2toopencv-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:
pip install reqtracker
🚀 Quick Start
Command Line Usage
# 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
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:
# 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 - Overview and quick start guide
- API Documentation - Complete API reference for all modules
- Configuration Guide - All configuration options
- Examples - Real-world usage examples and tutorials
🤝 Contributing
I welcome contributions! Please see CONTRIBUTING.md for guidelines.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reqtracker-1.0.5.tar.gz.
File metadata
- Download URL: reqtracker-1.0.5.tar.gz
- Upload date:
- Size: 35.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
611ff8a15d7956febdef0022ec88cb2b52468226f0e325ab571c930f3bc62574
|
|
| MD5 |
2d74c611d163b39758294561f2fa1014
|
|
| BLAKE2b-256 |
b921a7ae61d3020bc62b991419f4ca805bafa16ce4fd848c5c2901ec0ffcb4a2
|
File details
Details for the file reqtracker-1.0.5-py3-none-any.whl.
File metadata
- Download URL: reqtracker-1.0.5-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20efcfe85c6d33ecbfa2ff31e65744b54799e8445d5a2acfe948dd582d095e31
|
|
| MD5 |
8ad263b60fb6b8a902ff73a5cbe3c540
|
|
| BLAKE2b-256 |
ebde00b37fe58ee8e68a06b77c0184241b786e57476cae5e60982bd68ae82e83
|