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.6)
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
Environment Information
Features
Core Features
-
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)
- Smart dependency handling with tree visualization (
-
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)
- Real-time PyPI name availability check (
-
Environment Management
- Virtual environment creation and reset (
pm venv) - One-command environment activation/deactivation (
pm activate/pm deactivate) - Cross-platform compatibility
- Automatic dependency installation
- Virtual environment creation and reset (
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymin-0.0.6.tar.gz.
File metadata
- Download URL: pymin-0.0.6.tar.gz
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ead5f82e26a2455875a6f60ffb843d045b99b7a5c6926fda86576d301998a92
|
|
| MD5 |
7d4c9dda93944c59f2f2f793f1eb70a8
|
|
| BLAKE2b-256 |
4a5406edc25fa7343a6d66d2558df32e32d5c71c019743b95dcbc726a102ad7d
|
File details
Details for the file pymin-0.0.6-py3-none-any.whl.
File metadata
- Download URL: pymin-0.0.6-py3-none-any.whl
- Upload date:
- Size: 33.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3caae4fbb7ee0e31f32df86c56855c243dbb314e429961592729bad9ba981f2
|
|
| MD5 |
bfe2ffc2dad6738599e2fd4f90909061
|
|
| BLAKE2b-256 |
cd46c7e389f955fec6ae9d5271ef70006a0a8b54b51174ef07e086674a476b9a
|