Skip to content

HypoMarkup/PipPal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

PipPal - Intelligent Python Package Management for VS Code

License: MIT Version VS Code

A comprehensive VS Code extension that transforms Python package management into an intuitive, visual interface. Manage pip packages, virtual environments, and dependencies without leaving your editor.

Overview

PipPal streamlines the Python development workflow by providing visual package management capabilities directly within VS Code. Instead of juggling terminal commands, navigate packages through an interactive sidebar, auto-detect missing imports across your codebase, and explore complex dependency graphs with physics-based visualization.

Core Capabilities

Package Management

  • Visual Package Browser: Interactive tree view of installed packages with version information
  • Install/Uninstall Operations: Direct installation from PyPI with version control; intelligent uninstall with automatic orphan dependency detection
  • PyPI Search Integration: Discover and install packages directly from the PyPI database

Import Automation

  • Auto-Install Missing Imports: Scan Python files and Jupyter notebooks to detect missing imports and install them in a single operation
  • Smart Library Detection: Automatically distinguishes standard library imports from third-party packages
  • Custom Mapping Support: Handles edge cases like PILPillow with configurable import-to-package mappings

Environment Management

  • Virtual Environment Lifecycle: Create, switch between, and safely delete virtual environments
  • Auto-Detection: Automatically discovers workspace venvs in common locations (.venv, venv, env, virtualenv)
  • Environment Isolation: Displays installed packages per environment for clear visibility

Dependency Tracking & Visualization

  • User Intent Tracking: Distinguishes between explicitly installed packages and transitive dependencies
  • Interactive Dependency Graphs: Explore package relationships through physics-based graph visualization with zoom/pan capabilities
  • Recursive Orphan Detection: Safely identify and remove unused dependencies
  • Requirements.txt Generation: Create requirements files in multiple formats (simple, user-only, with dependency comments)

Architecture

The extension is built with:

  • TypeScript for type-safe extension logic
  • VS Code API for deep editor integration
  • Python subprocess execution for pip operations
  • PyPI REST API integration for package discovery
  • Import scanning via AST analysis of Python/Jupyter files
  • Dependency graphing with force-directed layout algorithms

Commands

Command Purpose
Create Virtual Environment Bootstrap new venv in workspace
Install Package Add packages with optional version pinning
Uninstall Package Remove packages with orphan detection
Search PyPI Query and install from package registry
Install Missing Imports Batch install from detected imports
Install from requirements.txt Bulk dependency installation
Generate requirements.txt Export installed packages (multiple formats)
Switch Python Environment Toggle between installed Python versions
Show Dependencies View dependency tree for a package
Show Dependency Graph Interactive visualization of all dependencies
Refresh Package List Force cache refresh
Delete Virtual Environment Remove venv safely

Configuration

{
  "pippal.pythonPath": "python3",           // Python executable path
  "pippal.autoDetectVenv": true             // Auto-discovery of virtual environments
}

Technical Advantages

  • Orphan Detection: Recursive dependency analysis prevents broken environments
  • User-Intent Tracking: Maintains metadata on explicitly installed vs. transitive packages
  • Jupyter Support: Scans .ipynb files alongside Python scripts
  • Graph-Based Visualization: Physics simulation for intuitive dependency exploration
  • Multi-Environment Support: Per-environment package tracking with seamless switching

Troubleshooting

Failed to list packages: Verify Python installation and pippal.pythonPath configuration. Test: python -m pip list

No packages detected: Create a virtual environment first or ensure an active venv is selected

Imports not detected: Verify files are saved (scanner triggers on file save); check imports are module-level, not in strings

License

MIT


Built for ICHack 2026 | GitHub Repository

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors