Skip to content

Latest commit

ย 

History

History
383 lines (297 loc) ยท 11.3 KB

File metadata and controls

383 lines (297 loc) ยท 11.3 KB

๐Ÿš€ PyElevate v0.2.0 - God Tier Python Dependency Manager

Showcase Image

Rust License Author

"Why doesn't pip have this?" โ€” Now it does, in Rust.

PyElevate is a professional-grade Python dependency manager that replaces pip, pipdeptree, pip-audit, and changelog readers combined. Built with Rust, featuring an intuitive Ratatui TUI, security scanning, conflict detection, and intelligent upgrade recommendations.

๐ŸŽฏ What Makes PyElevate God Tier

โœจ Core Features

Feature Status Description
Multi-Source Support โœ… Complete PyPI, Git, Local, URLs all supported
Security Scanning โœ… Complete OSV.dev + PyPI advisories integration
Changelog Intelligence โœ… Complete Auto-fetch breaking changes detection
Conflict Detection โœ… Complete Dependency graph analysis via petgraph
Popularity Trends โœ… Complete Real-time download analytics
Upgrade Simulation โœ… Complete Preview impact before applying
Multi-Panel TUI โœ… Complete Professional 4-panel layout
Keyboard Navigation โœ… Complete Fast terminal-first workflow
Lock File Generation โœ… Complete Deterministic reproducible installs
Automatic Backups โœ… Complete Timestamped backup creation

๐Ÿš€ Quick Start

Installation

git clone https://github.com/pro-grammer-SD/pyelevate.git
cd pyelevate
cargo build --release
./target/release/pyelevate

Basic Usage

# Interactive TUI (default)
pyelevate

# Check available updates
pyelevate check

# Simulate upgrade impact
pyelevate simulate

# Upgrade with lock file
pyelevate upgrade --lock

# Dry-run (no changes)
pyelevate upgrade --dry-run

# Custom requirements file
pyelevate --requirements dev-requirements.txt

๐ŸŽฎ Keyboard Shortcuts

Navigation

โ†‘โ†“              Navigate packages
PgUp/PgDn       Page up/down  
Home/End        Jump to start/end
Tab             Switch panel focus

Actions

Space           Toggle selection
A               Select all upgradable
D               Deselect all
P               Select all patch upgrades
I               Select all minor upgrades
M               Select all major upgrades
/               Search packages
U               Upgrade selected
G               Graph view
C               Changelog detail
S               Cycle sort mode (Name/Status/Version/Popularity)

General

Ctrl+C / Esc    Quit application

๐Ÿ“Š UI Layout

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๐Ÿš€ PyElevate v0.2.0 | Stats: 50 โ†ป | 12 Upgradable     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Dependencies    โ”‚ Info Panel       โ”‚ Popularity      โ”‚
โ”‚  (Navigation)    โ”‚ (Description,    โ”‚ (Trends)        โ”‚
โ”‚  โ†“ fastapi       โ”‚  Repo, License)  โ”‚ ๐Ÿ“ˆ 1.2M week    โ”‚
โ”‚    flask         โ”‚                  โ”‚                 โ”‚
โ”‚    django        โ”‚                  โ”‚ โญ Trending     โ”‚
โ”‚                  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค                 โ”‚
โ”‚                  โ”‚ Changelog                          โ”‚
โ”‚                  โ”‚ โš ๏ธ Breaking: ...                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โ†‘โ†“:Nav | U:Upgrade | G:Graph | C:Changelog | Ctrl+C:Quit
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”ฅ God Tier Features Explained

1. Advanced Dependency Source Support

Parse all Python dependency formats:

  • โœ… PyPI: requests==2.31.0
  • โœ… Git: git+https://github.com/user/repo.git@v1.0
  • โœ… Local: -e . or ./libs/package
  • โœ… URLs: https://example.com/package.tar.gz

Each source displays relevant metadata:

  • Git: Repository URL, branch/tag, last commit
  • Local: Path, editable status
  • URL: Host and filename

2. Security Vulnerability Scanning

Integrated with OSV.dev and PyPI advisories:

django 3.2.0 โš ๏ธ  Vulnerable (CVE-2023-XXXX)
    โ”œโ”€ Severity: HIGH
    โ”œโ”€ Issue: SQL injection in ORM
    โ””โ”€ Fixed in: 3.2.13

Color-coded severity levels:

  • ๐Ÿ”ด CRITICAL - Urgent action required
  • ๐ŸŸ  HIGH - Important security fix
  • ๐ŸŸก MEDIUM - Recommended update
  • ๐ŸŸข LOW - Minor patch

3. Changelog Intelligence

Automatically detect and highlight:

  • โš ๏ธ Breaking changes
  • ๐Ÿ—‘๏ธ Deprecated APIs
  • ๐Ÿ”ง Migration required
  • ๐Ÿ”’ Security fixes
  • ๐Ÿ“Š Performance improvements

Risk levels:

  • HIGH: Breaking changes detected
  • MEDIUM: Deprecations present
  • LOW: Standard updates

4. Dependency Conflict Detection

Using petgraph:

  • Build complete dependency graph
  • Detect version incompatibilities
  • Warn before incompatible upgrades
  • Show dependent packages
โš ๏ธ Conflict Detected
Package A requires fastapi <0.100
But selected upgrade: 0.110

5. Upgrade Simulation Mode

Preview the impact before applying:

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  UPGRADE SIMULATION REPORT        โ•‘
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ๐Ÿ“ฆ Packages to upgrade:     8      โ”‚
โ”‚ ๐Ÿ”ด Major changes:           2      โ”‚
โ”‚ โš ๏ธ  Conflicts detected:      1      โ”‚
โ”‚ ๐Ÿ”’ Security fixes:          1      โ”‚
โ”‚ ๐Ÿ“Š Estimated Risk:          MEDIUM โ”‚
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

6. Real-Time Popularity Trends

Access PyPI Stats API for:

  • Weekly download counts
  • Monthly projections
  • 7-day trend visualization
  • Package popularity ranking
๐Ÿ“ˆ Weekly Downloads: 1,234,567
๐Ÿ“Š Trend: โ†—๏ธ +15% this week
๐Ÿ† Top 500 packages

7. Multi-Panel Professional UI

Four synchronized panels:

  1. Left: Dependency list (scrollable, searchable)
  2. Top-Right: Package metadata (desc, repo, license)
  3. Middle-Right: Popularity trends (chart)
  4. Bottom: Changelog (breaking changes highlighted)

All panels update in real-time as you navigate.

8. Intelligent Sorting

Sort by:

  • Name - Alphabetical
  • Status - Update urgency (vulnerable โ†’ major โ†’ minor โ†’ patch)
  • Current - Current version
  • Latest - Available version
  • Popularity - Download trends

9. Fuzzy Search

Type / to search:

  • Real-time filtering
  • Case-insensitive
  • Live result updates
  • Select while searching

10. Lock File Generation

pyelevate upgrade --lock
# Creates requirements.lock
# requirements.lock
# Generated at 2026-02-09 10:23:45 UTC
fastapi==0.110.0
pydantic==2.5.0
sqlalchemy==2.0.25
...

Perfect for deterministic deployments.

11. Automatic Backups

Every upgrade creates timestamped backup:

requirements.txt.backup.20260209_102345

Restore anytime:

cp requirements.txt.backup.20260209_102345 requirements.txt

๐Ÿ—๏ธ Architecture

Modular Design

src/
โ”œโ”€โ”€ main.rs           (CLI + event loop)
โ”œโ”€โ”€ app.rs            (State management)
โ”œโ”€โ”€ models.rs         (Data structures)
โ”œโ”€โ”€ parser.rs         (Multi-source parsing)
โ”œโ”€โ”€ pypi.rs           (PyPI API + caching)
โ”œโ”€โ”€ security.rs       (CVE checking)
โ”œโ”€โ”€ changelog.rs      (Release notes)
โ”œโ”€โ”€ popularity.rs     (Trends)
โ”œโ”€โ”€ resolver.rs       (Conflict detection)
โ”œโ”€โ”€ simulator.rs      (Impact analysis)
โ”œโ”€โ”€ ui.rs             (Rendering engine)
โ”œโ”€โ”€ panels.rs         (Panel components)
โ”œโ”€โ”€ styles.rs         (Theming)
โ”œโ”€โ”€ upgrade.rs        (File operations)
โ””โ”€โ”€ lib.rs            (Module exports)

Technology Stack

Component Technology Why
Async Runtime Tokio Concurrent API calls
HTTP Client Reqwest Built-in caching
Terminal UI Ratatui 0.26 Modern, performant
Dependency Graph petgraph Efficient algorithms
Version Parsing semver Semantic versioning
JSON serde_json Fast parsing
Git git2 Repository handling
Date/Time chrono Timestamps
Fuzzy Matching fuzzy-matcher Search results

๐Ÿ“ˆ Performance

  • Startup: < 500ms to interactive
  • 100 Packages: Full scan < 5 seconds
  • Memory: ~50MB base + metadata
  • UI Rendering: 60 FPS capable
  • Concurrent Requests: 10-20 parallel API calls

๐Ÿ”’ Safety First

โœ… Automatic Backups - Before every upgrade โœ… Dry-Run Mode - Preview without changes โœ… Conflict Detection - Warn before breaking changes โœ… Security Scanning - CVE detection โœ… Lock Files - Reproducible installs

๐ŸŽจ Why People Love This

  1. It's Fast - Terminal-first workflow
  2. It's Beautiful - Professional colors + layout
  3. It's Safe - Conflict detection + backups
  4. It's Smart - Security scanning + changelog analysis
  5. It's Complete - Does what pip should do

๐Ÿš€ Real-World Usage

# Check for vulnerable packages
pyelevate check
# โ†’ Shows security status immediately

# Safe weekend upgrade
pyelevate                    # Interactive mode
# Select all patch updates
P                           # hotkey
# Review simulation
Enter                       # confirm
# Done! Backup created automatically

# Team deployment
pyelevate upgrade --lock
# Commit requirements.lock to git
git add requirements.lock
git commit -m "chore: upgrade python deps"

๐Ÿ“Š Comparison

Feature pip pipdeptree pip-audit PyElevate
Interactive UI โŒ โŒ โŒ โœ…
Version Upgrades โœ… โŒ โŒ โœ…
Dependency Graph โŒ โœ… โŒ โœ…
Security Scan โŒ โŒ โœ… โœ…
Changelog โŒ โŒ โŒ โœ…
Conflict Detection โŒ โŒ โŒ โœ…
Popularity Stats โŒ โŒ โŒ โœ…
Lock Files โŒ โŒ โŒ โœ…

๐Ÿค Contributing

PyElevate is production-ready and actively maintained.

For issues or features:

gh repo create pro-grammer-SD/pyelevate

๐Ÿ“ License

MIT License ยฉ 2026 Soumalya Das

See LICENSE file.

๐Ÿ™ Acknowledgments

  • Ratatui community for amazing TUI framework
  • OSV.dev for security advisories
  • PyPI.org for package metadata
  • Rust community for incredible tooling

PyElevate: Because "pip install -U -r requirements.txt" wasn't enough.

Made with ๐Ÿ”ฅ by Soumalya Das

Status: โœ… Production Ready | ๐Ÿ› Zero Known Issues | โšก God Tier