Skip to main content

A CLI tool to install packages and add them to requirements.txt

Project description

pip-add

A command-line tool that combines package installation and requirements.txt management. Install, update, or remove Python packages and their dependencies with automatic requirements.txt handling.

Features

  • Single command for package management and requirements.txt updates
  • Smart dependency handling for installation and removal
  • Dependency analysis to prevent breaking other packages
  • Flexible version specifications (>= by default)
  • Optional exact version pinning (==)
  • Clean, informative output with version information
  • Preserves requirements.txt comments and formatting
  • Creates requirements.txt if it doesn't exist

Installation

# Clone the repository
pip install pip-add

## Usage

### Installation

```bash
# Basic package installation
pip-add requests
# Output:
# Installing requests...
# ✓ Successfully installed requests (2.32.3)
# ✓ Updated requirements.txt

# Install with exact version
pip-add -e requests
# Adds: requests==2.32.3 to requirements.txt

# Install with dependencies
pip-add -d requests
# Output:
# Installing requests...
# ✓ Successfully installed:
#   - certifi (2024.8.30)
#   - charset-normalizer (3.4.0)
#   - idna (3.10)
#   - requests (2.32.3)
#   - urllib3 (2.2.3)
# ✓ Updated requirements.txt

Removal

# Remove single package
pip-add -r requests
# Output:
# Removing packages...
# ✓ Successfully uninstalled requests (2.32.3)
# ✓ Updated requirements.txt

# Remove package and its unused dependencies
pip-add -d -r requests
# Output:
# Removing packages...
# ✓ Successfully uninstalled:
#   - certifi (2024.8.30)
#   - charset-normalizer (3.4.0)
#   - requests (2.32.3)
#   - urllib3 (2.2.3)
#
# ℹ️  Dependencies kept (required by other packages):
#   - idna (needed by: email-validator, cryptography)
#
# ✓ Updated requirements.txt

Command Line Options

pip-add [-h] [-d] [-e] [-r] package

positional arguments:
  package               Package to install or remove

options:
  -h, --help           show this help message and exit
  -d, --dependencies   Include dependencies when installing or removing
  -e, --exact         Use == instead of >= for version specification
  -r, --remove        Remove package(s) and their entries from requirements.txt

How It Works

Installation Process

  1. Installs the specified package using pip
  2. Retrieves installed version information
  3. With -d: tracks and installs all dependencies
  4. Updates requirements.txt with new package(s)
  5. Uses >= by default or == with -e flag

Removal Process

  1. Analyzes package dependencies
  2. Identifies which dependencies are safe to remove
  3. Checks if any dependencies are needed by other packages
  4. Safely removes unused packages
  5. Updates requirements.txt
  6. Reports kept dependencies and their dependents

Safe Dependency Handling

The tool is designed to safely handle dependencies:

  • Installation: Records all dependencies when using -d
  • Removal: Only removes dependencies that aren't needed by other packages
  • Analysis: Shows which dependencies were kept and why
  • Protection: Prevents breaking other installed packages

File Structure

pip_add/
├── setup.py          # Package configuration
├── pip_add/
│   ├── __init__.py   # Package initialization
│   └── cli.py        # Main implementation

Requirements

  • Python 3.6+
  • pip
  • setuptools

Development Setup

# Create virtual environment
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows

# Install in development mode
pip install -e .

Common Scenarios

New Project

# First time setup
pip-add -d flask
# Creates requirements.txt and adds Flask with dependencies

Updating Dependencies

# Update with newer versions
pip-add requests
# Updates to newest version with >= specification

Clean Uninstall

# Remove package and unused dependencies
pip-add -d -r flask
# Removes Flask and dependencies not used by other packages

Troubleshooting

  1. Package not found in requirements.txt

    • The file will be created automatically
    • Existing comments are preserved
  2. Dependency conflicts

    • Uses >= by default to minimize conflicts
    • Use -e for exact versions when needed
  3. Dependencies not removing

    • Check the output for dependencies kept
    • Tool will show which packages need them

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

pip_add-0.1.0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

pip_add-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pip_add-0.1.0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for pip_add-0.1.0.tar.gz
Algorithm Hash digest
SHA256 06f35a78d7da567da6dff7b3edd137d21f8c79384b73116e7d3ab64f80bae911
MD5 ea3b3002535fdf09d88aac3cb4d565ba
BLAKE2b-256 bd22e8835a07736330133ae011193e60c796666925435a2ca5a537457c85b800

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pip_add-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for pip_add-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c850d73e02aa77e829eb7e03b9ba6cfceaa0ae6c8809f141bbde5a0faa3e47f
MD5 ff170b947fda47367f28e48be96dea65
BLAKE2b-256 58f3d1cfa9af322fdcf365eb6498f17a9edc46b8d56c434e306238f9478d9db0

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