CLI tool to auto-init Python projects with venv, git, and basic files.
Project description
Pivvo
____ _ / __ \(_) ___ ______ / /_/ / / | / / | / / __ \ / ____/ /| |/ /| |/ / /_/ / /_/ /_/ |___/ |___/\____/
A small, pragmatic CLI tool to initialize and manage Python projects with ease. Bootstrap your projects, manage dependencies, and streamline your workflow—all from the command line.
pivvo helps developers quickly set up Python projects with virtual environments, Git repositories, and essential files. It provides a suite of commands to manage dependencies, run scripts, and maintain your project's environment without leaving the terminal.
Table of Contents
✨ Features
- Project Initialization: Create new Python projects with virtual environments, Git repos, and basic files in seconds
- Dependency Management: Install, list, freeze, upgrade, and remove packages within the project's venv
- Script Execution: Run Python scripts directly inside the project's virtual environment
- Beautiful Output: Rich terminal interface with progress indicators and colored output
- Error Handling: Comprehensive error logging for troubleshooting
- Cross-Platform: Works on Windows, macOS, and Linux
- Lightweight: Minimal dependencies for fast installation and execution
📦 Installation
From PyPI (Recommended)
pip install pivvo
From Source
git clone https://github.com/Flaxmbot/pivvo.git
cd pivvo
pip install -e .
Prerequisites
- Python 3.10 or higher
- pip (usually included with Python)
🚀 Quickstart
-
Install pivvo:
pip install pivvo
-
Initialize a new project:
pivvo init my-awesome-project cd my-awesome-project
-
Install dependencies:
pivvo install-deps requests flask python-dotenv
-
Run your application:
pivvo run app.py
That's it! Your project is ready with a virtual environment, Git repository, and all dependencies installed.
📖 Commands
pivvo provides the following commands:
| Command | Description |
|---|---|
pivvo init <name> |
Initialize a new project directory with venv and Git |
pivvo install-deps [packages...] |
Install packages into the local venv. Use -f/--file to install from requirements file |
pivvo run <script.py> |
Execute a Python script inside the venv |
pivvo list |
List all packages installed in the venv |
pivvo freeze |
Write current venv packages to requirements.txt |
pivvo upgrade |
Upgrade all packages listed in requirements.txt to latest versions |
pivvo remove <package> |
Uninstall a package and update requirements.txt |
Getting Help
# General help
pivvo --help
# Command-specific help
pivvo install-deps --help
pivvo init --help
🛠️ Development
Setting Up Development Environment
git clone https://github.com/Flaxmbot/pivvo.git
cd pivvo
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txt
Project Structure
pivvo/
├── pivvo/
│ ├── __init__.py
│ ├── cli.py # Main CLI implementation
│ └── main.py # Package entry point
├── tests/ # Unit tests
├── requirements.txt # Dependencies
├── pyproject.toml # Package configuration
├── LICENSE
├── CONTRIBUTING.md
└── README.md
Running Tests
# Install test dependencies
pip install pytest
# Run tests
pytest
# Run with coverage
pytest --cov=pivvo
Development Notes
- CLI Implementation: Located in
pivvo/cli.pyusing Typer for argument parsing - Terminal Output: Uses Rich for beautiful, colored terminal output
- Error Logging: Failed subprocess commands are logged to
pivvo-error.log - Git Integration: Uses GitPython for repository initialization
- Cross-Platform: Handles different Python executable paths for Windows/macOS/Linux
Tips for Windows Development
When using Git Bash on Windows, you might see raw ANSI escape codes. Solutions:
- Force ANSI rendering: Modify
cli.pyto useConsole(force_terminal=True, color_system="auto") - Use
winpty:winpty python pivvo/main.py ... - Use PowerShell, CMD, or Windows Terminal instead of Git Bash
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details on:
- Reporting bugs
- Requesting features
- Setting up your development environment
- Submitting pull requests
- Code style guidelines
Quick Contribution Flow
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Add tests for your changes
- Ensure all tests pass:
pytest - Commit your changes:
git commit -m "Add amazing feature" - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
👥 Authors
- Devrat Kuntal - Creator & Maintainer - rdxdevbhai76@gmail.com
Made with ❤️ for the Python community
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 pivvo-0.1.1.tar.gz.
File metadata
- Download URL: pivvo-0.1.1.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de24fa24ab8677b413bdfa3b5b4da7e8459b5668fefc6a10b01d9338fd53df87
|
|
| MD5 |
07de3b6f4de896e10e92b20f924fa100
|
|
| BLAKE2b-256 |
bac781276de99830ba781d6126f2370bda819e96ebd28a8df68b36b96efd086f
|
File details
Details for the file pivvo-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pivvo-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6aec7f4e9f9ba8d49ed57c43f472a5bfebe9742c98bd861fc081eec2184135a
|
|
| MD5 |
f6387b831ae92d65afb2f5d9e7a8d75e
|
|
| BLAKE2b-256 |
396e31bc7674ca8c8d4f3fa8e56afdb298827a51c5729da98dd2ae09123910e9
|