Skip to main content

Python package dependency analytics. Know what you depend on!

Project description

repute

Python package dependency analytics. Know what you depend on!

This is a pre-alpha release. The package is available on pypi only to reserve the name space.

repute takes your requirements.txt and scans data sources on the web to output a columnar report of metrics that help you understand the health of your dependencies.

Quickstart guide

The first step is to generate a requirements.txt file for your project. For illustration, follow demo/README.md directory in this repo.

Next, install repute like pip install repute, ideally in its own virtual environment, so that it does not become part of the project that you want to analyze.

Run repute requirements.txt to output a repute_report.csv file with a report on the health of your dependencies. Upload this to a spreadsheet application and sort it on the various metrics columns to get a sense of the health of your dependencies. We've uploaded our demo example to a public spreadsheet on Google Sheets here (coming soon ...).

Overview of repute metrics

First, hopefully it goes without saying none of these metrics in isolation are highly informative; defining and measuring repute is a complex problem, so each of these metrics should be considered only starting point.

version_age_days

If the version of a package you depend on is very old, this may increase the risk that your package includes bugs that have been fixed in newer versions or simply be less efficient or powerful than state-of-the-art packages.

time_since_latest_release_days

If a package has not been updated in a long time, this may indicate that the package is no longer maintained, which could be a problem if you encounter a bug or need a new feature.

download_count

Coming soon ...

star_count

Coming soon ...

Installation

Installation:

Background

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:

  1. Dependency health metrics:

    • Total dependency count (direct and transitive)
    • Dependency tree depth
    • Presence of known problematic dependencies
    • Supply chain integrity (signed packages, integrity verification)
  2. 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)
  3. 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
  4. Community health:

    • GitHub stars/forks trend over time
    • Download statistics from PyPI
    • Stack Overflow question frequency and answer rates
    • Corporate backing or foundation support
  5. 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)
  6. 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
  7. Build process integrity:

    • Reproducible builds support
    • Build artifact signing
    • Provenance information availability
    • Software Bill of Materials (SBOM) availability
  8. API stability:

    • Breaking change frequency
    • Deprecation policy adherence
    • Semantic versioning compliance

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

repute-0.0.3.tar.gz (75.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repute-0.0.3-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file repute-0.0.3.tar.gz.

File metadata

  • Download URL: repute-0.0.3.tar.gz
  • Upload date:
  • Size: 75.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for repute-0.0.3.tar.gz
Algorithm Hash digest
SHA256 b22fa8009a8cc8ce2b45120384cb28eb42229c360e977c1e67fda804da7d1153
MD5 69aece97f65a0ab8ace1021deacff859
BLAKE2b-256 5bf98eb29ab527a90776be7a7192acc28bf5d28b56e82c7adc170a000b8d91c7

See more details on using hashes here.

File details

Details for the file repute-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: repute-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for repute-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 78be7bf725f37f5a84288b47dcfa7e4da05ba66bea86f7b06e2f35b8862983c7
MD5 5d1929ab8d14f1cca30c539372f44115
BLAKE2b-256 c9b3aa076aaa3c90c6af2b2916fc0a69f66c38e36775b09b2084a0d3d62c1a5c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page