Skip to main content

A minimalist Python CLI tool for development workflow. Named after Taiwanese '歹命' (Pháiⁿ-miā), it turns common development pain points into simple solutions, providing package name validation, virtual environment management, and project information display with minimal configuration.

Project description

PyMin

pymin (0.0.5)

PyMin embodies Python's minimalist philosophy: a focused tool that does one thing exceptionally well. The name reflects our commitment to minimalism - minimal configuration, minimal complexity, but maximum effectiveness in Python development workflow.

Just as Python emphasizes readability and simplicity, PyMin provides a clean, intuitive interface for package management and development environment setup. No unnecessary features, no complex configurations - just straightforward, reliable development tools.

The name "PyMin" carries dual meanings:

In English: "Py" (Python) + "Min" (Minimal/Minimalist)

  • Represents our commitment to minimalist design and focused functionality
  • Follows Python's "Simple is better than complex" philosophy

In Taiwanese: "歹命" (Pháiⁿ-miā)

  • A humorous reference to the common challenges in Python development
  • Reflects developers' daily struggles with environment setup and package management
  • Turns development pain points into a playful and helpful tool

This duality in naming captures both our design philosophy and the real-world problems we're solving, while adding a touch of Taiwanese developer humor to the Python ecosystem.

A CLI tool for PyPI package management, providing package name validation, virtual environment management, and project information display with rich output formatting.

Demo

Demo

Environment Information

Environment Information

Features

Core Features

  1. Package Management

    • Smart dependency handling with tree visualization (pm list -t)
    • Intelligent package removal with unused dependency cleanup (pm rm)
    • Automatic requirements.txt synchronization (pm fix)
    • Version mismatch detection and resolution
    • Bulk package operations support
    • One-command package updates (pm update/pm up)
  2. Project Validation

    • Real-time PyPI name availability check (pm check)
    • PEP 503 naming convention validation
    • Similar package name detection
    • Project metadata verification
    • One-command PyPI publishing (pm release)
  3. Environment Management

    • Virtual environment creation and reset (pm venv)
    • One-command environment activation/deactivation (pm activate/pm deactivate)
    • Cross-platform compatibility
    • Automatic dependency installation
  4. Developer Experience

    • Beautiful tree-style dependency visualization
    • Color-coded status indicators
    • Progress tracking with real-time feedback
    • Minimal configuration required

Installation

Quick Start

Install via pipx:

$ pipx install pymin

System Requirements

Component Requirement
Python >=3.8
OS Platform independent

Usage

Command Interface

The CLI provides two command interfaces:

Command Description
pm Main command (recommended)
pymin Alternative full name

Available Commands

Command Description
check Check package name availability on PyPI
search Search for similar package names
venv (env) Create or reset virtual environment
activate Activate virtual environment
deactivate Deactivate virtual environment
info Show environment information
add Add packages to requirements.txt
remove (rm) Remove packages and unused dependencies
list List installed packages with dependencies
fix Fix package inconsistencies
update (up) Update packages to latest versions
release Build and publish package to PyPI

Command Examples

Package Management

# Add packages
$ pm add fastapi
$ pm add fastapi==0.100.0    # Specific version
$ pm add fastapi sqlalchemy  # Multiple packages

# Remove packages (with unused dependencies)
$ pm rm fastapi
$ pm rm -y fastapi  # Auto confirm

# List packages
$ pm list          # Show main packages
$ pm list -a       # Show all installed packages with their versions (same as `pip list` command)
$ pm list -t       # Show dependency tree with version status (✓ ≠ ✗ △)

# Fix inconsistencies
$ pm fix           # Check and fix requirements.txt

# Update packages
$ pm update        # Update all packages to latest versions
$ pm up -y         # Update with auto-confirm

Environment Management

# Create virtual environment
$ pm venv          # Create with default name 'env'
$ pm venv my_env   # Create with custom name
$ pm env           # Alias for venv

# Activate/Deactivate
$ pm activate
$ pm deactivate

# Show environment info
$ pm info

Project Validation

# Check package name
$ pm check my-package-name
┌─ PyPI Package Name Check Results ─┐
│ Package Name: my-package-name     │
│ Normalized Name: my-package-name  │
│ Valid Format:                    │
│ Available:                       │
│ Message: Package name available!  │
└───────────────────────────────────┘

# Search similar names
$ pm search fastapi           # Default similarity (80%)
$ pm search fastapi -t 0.85   # Custom threshold

Project Management

# Build and publish to PyPI
$ pm release        # Build and upload to PyPI

License

This project is licensed under the MIT License.

Project Structure

pymin/
├── src/
│   └── pymin/
│       ├── __main__.py    # Allow direct execution of the package
│       ├── check.py       # Package name validation service with PyPI availability checking and security analysis
│       ├── cli.py         # Command-line interface providing PyPI package name validation and search functionality
│       ├── package.py     # Package management functionality providing dependency handling and requirements.txt management
│       ├── search.py      # Package name similarity search service with PyPI integration
│       ├── security.py    # Security service for package name typosquatting detection and analysis
│       ├── similarity.py  # String similarity analysis service for package name comparison
│       ├── utils.py       # Utility functions for package name normalization and string manipulation
│       ├── validators.py  # Package name validation service implementing PyPI naming conventions
│       └── venv.py        # CLI environment management service
├── LICENSE
├── pyproject.toml
├── readgen.toml
└── README.md

This document was automatically generated by ReadGen.

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

pymin-0.0.5.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

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

pymin-0.0.5-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file pymin-0.0.5.tar.gz.

File metadata

  • Download URL: pymin-0.0.5.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pymin-0.0.5.tar.gz
Algorithm Hash digest
SHA256 30dbb63589931c6edb8562441471dcd57204e73fa4d13930fd01136c4a999061
MD5 6ea18818e58289da1b4547e4dd809c4e
BLAKE2b-256 edd53cb1be832b6ceafa52c7570aabd1aaeadcdb05c81092eb41df561e47e3fd

See more details on using hashes here.

File details

Details for the file pymin-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: pymin-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pymin-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6cb8e6e160a6a4269ab663d4c3a16cf6363f24357bbbf2c5e8111554e5717940
MD5 f4409f22dfc1789a46b8ee4ff02281f5
BLAKE2b-256 a6b8c29481179147d5ca8f305179746439a2bb19b854e042a4f8ed1ff7485736

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