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.7)

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.

Built on top of standard Python tools (pip, venv, requirements.txt), PyMin enhances rather than replaces your familiar workflow. It seamlessly integrates with existing Python development practices, ensuring 100% compatibility with standard tools while providing enhanced functionality and better user experience.

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. Environment Management

    • Virtual environment creation and management (pm venv/pm env)
    • One-command environment switching (pm activate/pm deactivate)
    • Comprehensive environment information display (pm info)
    • Automatic dependency installation from requirements.txt
    • Cross-platform compatibility
  2. Package Management

    • Smart dependency visualization with tree structure (pm list -t)
    • Efficient package installation with version control (pm add)
    • Intelligent package removal with dependency cleanup (pm rm)
    • Automatic requirements.txt synchronization (pm fix)
    • Bulk package operations support
    • One-command package updates (pm update/pm up)
    • Version conflict detection and resolution
  3. PyPI Integration

    • Package name availability check (pm check)
    • Similar package name search with threshold control (pm search -t)
    • One-command package publishing (pm release)
    • Test PyPI support for pre-release testing (pm release --test)
    • Secure credential management

Installation

Quick Start

Install via pipx:

$ pipx install pymin

System Requirements

Component Requirement
Python >=3.8
OS Platform independent

Usage

Command Interface

PyMin provides a streamlined command interface with intuitive aliases:

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

Available Commands

Environment Management

Command Description Alias/Options
info Show environment information
venv Create a virtual environment env
activate Activate the virtual environment
deactivate Deactivate current virtual environment

Package Management

Both add and remove commands support multiple packages in one operation add supports version specification using package==version format

Command Description Alias/Options
list List installed packages -a: all, -t: tree
add Add and install packages
remove Remove packages from requirements.txt rm, -y: auto-confirm
update Update all packages to latest versions up, -y: auto-confirm
fix Fix package inconsistencies -y: auto-confirm

PyPI Integration

Command Description Alias/Options
check Check package name availability
search Search for similar package names -t: threshold
release Build and publish package to PyPI --test: Test PyPI

Command Examples

Environment Management

# Show environment info
$ pm info

# Create and manage 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

Package Management

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

# Remove packages
$ pm rm fastapi
$ pm rm -y fastapi           # Auto confirm

# List packages
$ pm list                    # Show main packages
$ pm list -a                 # Show all packages
$ pm list -t                 # Show dependency tree

# Update and fix
$ pm update                  # Update all packages
$ pm fix                     # Fix requirements.txt

PyPI Integration

# Check package name
$ pm check my-package-name

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

# Publish package
$ pm release                  # Publish to PyPI
$ pm release --test           # Publish to Test 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.7.tar.gz (35.3 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.7-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pymin-0.0.7.tar.gz
  • Upload date:
  • Size: 35.3 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.7.tar.gz
Algorithm Hash digest
SHA256 52e633c9a41264753b8dcedd0040eca76d4f6f0461dda60b237552ae9fbcbc64
MD5 21356658e263259bb8f446d659b3f74e
BLAKE2b-256 34899c7d7c0aa4638334ab1f903d45632db9bed8ae7f52c5ee388c6e25fef115

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymin-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 35.4 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4e6a131c404e7ec5bb818aef16c9de57d58bf3257d0969a69d9f6ed467c3f862
MD5 ff1f6f75295c4f6d301a276645b3bde5
BLAKE2b-256 05e606abc42507c84ad95d18311eb280d9ffa52a30e360f2c7ae11e676052d41

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