Skip to main content

Python Dependency Health Analyzer

Project description

๐Ÿ” PiPulse

Python Dependency Health Analyzer โ€” scan your requirements.txt and get a full health report on every package: vulnerabilities, version status, GitHub activity, and an overall health score.

pipulse scan requirements.txt

Features

  • Vulnerability scanning via the OSV database
  • Version check โ€” see which packages are outdated, up-to-date, or ahead
  • GitHub activity โ€” ACTIVE / STALE / ABANDONED based on last commit
  • Health score โ€” 0โ€“100 score per package and an overall project score
  • Three output formats โ€” rich terminal table, HTML report, JSON report
  • Handles unpinned packages gracefully

Installation

pip install pipulse

Requires Python 3.9+


Usage

Terminal output

pipulse scan requirements.txt

Generate HTML report

pipulse scan requirements.txt --html
# saves to report.html

pipulse scan requirements.txt --html my_report.html
# saves to custom filename

Generate JSON report

pipulse scan requirements.txt --json
# saves to report.json

pipulse scan requirements.txt --json audit.json

Both at once

pipulse scan requirements.txt --html --json

Example Output

                           PiPulse Report
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Package  โ”‚ Current โ”‚ Latest โ”‚ Status     โ”‚ Vulns โ”‚ Stars โ”‚ Activity โ”‚ Health โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ requests โ”‚ 2.28.0  โ”‚ 2.31.0 โ”‚ Outdated   โ”‚ 2     โ”‚ 51k   โ”‚ ACTIVE   โ”‚ 70     โ”‚
โ”‚ flask    โ”‚ 3.0.0   โ”‚ 3.0.0  โ”‚ Up-to-Date โ”‚ 0     โ”‚ 67k   โ”‚ ACTIVE   โ”‚ 100    โ”‚
โ”‚ pyjwt    โ”‚ 1.7.1   โ”‚ 2.8.0  โ”‚ Outdated   โ”‚ 3     โ”‚ 5k    โ”‚ ACTIVE   โ”‚ 55     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Project PiPulse Score: 75/100

Health Score

Each package gets a score from 0 to 100 based on:

Factor Impact
Each vulnerability found โˆ’5
Package is outdated โˆ’15
Repository is stale (90โ€“365 days) โˆ’10
Repository is abandoned (365+ days) โˆ’30
10k+ GitHub stars +5
50k+ GitHub stars +10

The project score is the average across all scanned packages.


Requirements File Format

Standard requirements.txt format is supported:

requests==2.31.0
flask>=3.0.0
packaging

Unpinned packages (no version specified) are flagged and skipped for vulnerability checks.


Limitations

  • GitHub data uses the unauthenticated API (60 requests/hour). For large requirements.txt files, GitHub info may return N/A due to rate limiting.
  • Vulnerability data is sourced from OSV โ€” coverage varies by package.

License

MIT ยฉ Prabanjan R

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

pipulse-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

pipulse-0.1.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file pipulse-0.1.0.tar.gz.

File metadata

  • Download URL: pipulse-0.1.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pipulse-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d19e23475cd283d7bc2667209b4db8d7478337eef7ca6f5e127533bdd06c78b6
MD5 72709f4aed2ca77e01e3fa5dcf74152f
BLAKE2b-256 156df8e5e48d08677e0bee2b69d470bcb374fb0f0fda9d2f78805e827f4e9acb

See more details on using hashes here.

File details

Details for the file pipulse-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pipulse-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pipulse-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a97604bc40b93bbe68c4f13bfc198fb0a61314ba72bbdc0f9d05753a87da8ad8
MD5 ae66f08c96a4bb012139309e62b5c91d
BLAKE2b-256 102a541c468cf128e846985af2b99dedcc96f6ee568bfd9872dba9f4cc67296c

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