repute
Are your python project dependencies of good repute? Now you can run repute to describe the health of your dependencies based on data sources from the web.
Quickstart guide
- Generate a
requirements.txtfile for your project. - Install repute:
uv add repute, ideally in its own virtual environment, so that it does not become part of the project that you want to analyze. - Run
repute path/to/requirements.txtto analyze the health of your dependencies:
$ repute demo/requirements.txt
/Users/me/Desktop/mycloud/repos/repute/repute/requirements.py:31: UserWarning: ignoring editable installation: '-e file:///my/repo/path'
warnings.warn(f"ignoring editable installation: '{line}'")
Fetching data from PyPI: 100%|███████████████████████████████████████████████████████████████████████████████████████| 112/112
Fetching download stats from PyPI: 100%|██████████████████████████████████████████████████████████████████████████████| 56/56
Fetching data from GitHub: 100%|███████████████████████████████████████████████████████████████████████████████████████| 54/54
Summarizing 56 dependencies:
Oldest dependencies:
pypi:version_age_days pypi:time_since_last_release_days
name version
jsonpatch 1.33 642 642
azure-datalake-store 0.0.53 679 679
mpmath 1.3.0 744 744
Dependencies that we could not locate on GitHub:
ruamel-yaml
ruamel-yaml-clib
Dependencies with fewest GitHub stars:
gh:stars
name
astropy-iers-data 3
jsonschema-specifications 11
propcache 17
Dependencies with fewest recent downloads:
pypi:recent_avg_downloads_per_day
name
astropy-iers-data 2274182
pyerfa 6626394
astropy 7289296
See repute.csv for detailed results.
Installation
Installation:
- We're on pypi, so
pip install repute. - Consider using the simplest-possible virtual environment if working directly on this repo.
Context and discussion
Assessing the quality of python dependencies is a complex problem that goes far beyond the scope of this package. Here's a brief overview of the types of factors that could be considered in a more comprehensive review:
-
Dependency health metrics:
- Total dependency count (direct and transitive)
- Dependency tree depth
- Presence of known problematic dependencies
- Supply chain integrity (signed packages, integrity verification)
-
Maintenance indicators:
- Time since last commit/release
- Release frequency and consistency
- Issue resolution time
- Pull request responsiveness
- Number of active maintainers
- Bus factor (concentration of commits among maintainers)
-
Code quality metrics:
- Test coverage percentage
- CI/CD pipeline robustness
- Static analysis scores
- Documentation completeness
- Adherence to PEP standards
- Type hint coverage
- Presence of deprecation warnings
-
Community health:
- GitHub stars/forks trend over time
- Download statistics from PyPI
- Stack Overflow question frequency and answer rates
- Corporate backing or foundation support
-
Operational considerations:
- Package size (both download and installed)
- Import time impact
- Memory footprint
- Performance benchmarks
- Compatibility with target Python versions
- Platform compatibility (Windows/Linux/macOS)
-
Security-specific indicators:
- OSSF Scorecard results
- Use of memory-unsafe dependencies (C extensions)
- History of CVEs and their severity
- Time to patch previous vulnerabilities
- Application of secure coding practices
- Two-factor authentication usage by maintainers
- Dependency pinning practices
-
Build process integrity:
- Reproducible builds support
- Build artifact signing
- Provenance information availability
- Software Bill of Materials (SBOM) availability
-
API stability:
- Breaking change frequency
- Deprecation policy adherence
- Semantic versioning compliance
Metadata
Release files for repute 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| repute-0.1.5.tar.gz | 145.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| repute-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.2 kB
Release files / repute-0.1.5.tar.gz
| Download URL | repute-0.1.5.tar.gz |
|---|---|
| Size | 145.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ec32ac0d307193713edff7dcb7179bae7718af73624d8f612b683e7a5405422
|
|
BLAKE2b-256 checksum How to use checksums |
4529e93aee67e7a382ccffdd90a511dbe55a248026dddc9fbfa6d856d4a59c0d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.3
|
Release files / repute-0.1.5-py3-none-any.whl
| Download URL | repute-0.1.5-py3-none-any.whl |
|---|---|
| Size | 18.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91a6d95247fd085e8e64dbb86d4701fa92b5e050f1a251801dfe2d96e9db6bf8
|
|
BLAKE2b-256 checksum How to use checksums |
15f3ad337ba0bd545822626aae94f86321083969e86ea57db13382075844e52c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.3
|