The Mentor-Based Python Project Initializer. Learn best practices while building.
Project description
🐍 ViperX
The Mentor-Based Project Initializer Stop memorizing boilerplate. Start learning best practices.
ViperX is more than a CLI—it's an automated mentor. It generates production-ready Python projects (Classic, ML, DL) using uv, but crucially, it creates ultra-commented code that teaches you why the structure is built that way.
🦅 Philosophy: "Freedom & Grip"
- Grip (Mentorship): We hold your hand at the start with strict, educational defaults.
- Freedom (No Lock-in): Use
viperx ejectto remove the tool entirely. Your code remains standard Python. - Conscious Mastery: We aim to make you autonomous, not dependent.
✨ Features
- Education First: Generated files are learning materials.
viperx --explaintells you the "why". - Blazing Fast: Built on top of
uvfor sub-second setup. - Pre-configured:
pyproject.toml, propersrclayout,ruffready. - ML/DL First: Templates with
torch,tensorflow,kagglehuband Smart Caching. - Smart Caching: Auto-downloads and caches datasets to
~/.cache/viperx/data(or localdata/). - Strict Isolation: Environment variables (
.env) isolated insrc/<pkg>/for better security. - Config-in-Package: Solves the "Colab/Kaggle doesn't see my config" problem.
- Platform Agnostic: Works on Local, VSCode, Colab, and Kaggle.
- Safe Mode: Never overwrites or deletes files automatically—reports changes for manual action.
📦 Installation
Recommended (Global Tool)
pipx install viperx
Alternative (uv)
uv tool install viperx
🚀 Quick Start
# Classic Package
viperx config -n my-lib
# Machine Learning Project
viperx config -n churn-prediction -t ml --env
# Deep Learning Project (PyTorch)
viperx config -n deep-vision -t dl -f pytorch
# Declarative Config (Infrastructure as Code)
viperx config get # Generate template
viperx config -c viperx.yaml # Apply config
🧱 Project Structure
Standard Layout
my-lib/
├── pyproject.toml # Managed by uv
├── README.md
├── .gitignore
├── viperx.yaml # Config file
└── src/
└── my_lib/
├── __init__.py
├── main.py # Entry point
├── config.yaml # Data URLs & Params
├── config.py # Loader
├── .env # Secrets (ISOLATED)
└── tests/
└── test_core.py
ML/DL Layout
deep-vision/
├── pyproject.toml
├── notebooks/
│ ├── Base_Kaggle.ipynb
│ └── Base_General.ipynb
├── data/ # Cached datasets
└── src/
└── deep_vision/
├── main.py
├── config.py # <--- ISOLATED
├── .env # <--- ISOLATED
├── data_loader.py # Smart caching
└── tests/
💻 CLI Reference
config - Main Command
viperx config [OPTIONS]
Options:
| Flag | Description | Default |
|---|---|---|
-n, --name |
Project name (Required) | - |
-t, --type |
classic, ml, dl |
classic |
-d, --description |
Project description | - |
-a, --author |
Author name | git user |
-l, --license |
MIT, Apache-2.0, GPLv3 |
MIT |
-b, --builder |
uv, hatch |
uv |
-f, --framework |
pytorch, tensorflow (DL only) |
pytorch |
--env / --no-env |
Generate .env file |
--no-env |
-c, --config |
Path to viperx.yaml |
- |
config get - Generate Template
viperx config get
Creates a viperx.yaml template in current directory.
config update - Rebuild from Codebase
viperx config update
Scans the existing project and updates viperx.yaml to match reality:
- Detects packages in
src/ - Detects
use_config,use_env,use_testsfrom actual files - Adds annotations for any mismatches
package - Workspace Management
# Add package
viperx package add -n worker-api -t classic
# Delete package
viperx package delete -n worker-api
# Update dependencies
viperx package update -n worker-api
📝 Declarative Config (viperx.yaml)
project:
name: "my-project"
description: "A cool project"
author: "Your Name"
license: "MIT"
builder: "uv"
settings:
type: "classic" # classic | ml | dl
use_env: false
use_config: true
use_tests: true
workspace:
packages:
- name: "api"
type: "classic"
- name: "ml-core"
type: "ml"
use_env: true
🔒 Safe Mode Philosophy
ViperX follows a non-destructive approach:
| Action | Behavior |
|---|---|
| Add | ✅ Creates new files/packages |
| Update | ⚠️ Reports changes, user decides |
| Delete | ❌ Never deletes—warns user |
| Overwrite | ❌ Never overwrites existing files |
🧪 Test Coverage
uv run pytest src/viperx/tests
# 46 tests | 76% coverage
Test Structure:
unit/- Validation (5 tests)functional/- CLI, licenses, project types, updates (18 tests)scenarios/- Classic, workspace, type blocking, config scanner (18 tests)integration/- E2E lifecycle (5 tests)
🤝 Contributing
git clone https://github.com/KpihX/viperx.git
cd viperx
uv sync
uv run viperx --help
Built with ❤️ by KpihX
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 viperx-1.6.0.tar.gz.
File metadata
- Download URL: viperx-1.6.0.tar.gz
- Upload date:
- Size: 55.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83a181ac43b5c71a767b18c2fd68d1107795c9cd03eb85d592826de9daaf3de3
|
|
| MD5 |
a9a0f02e9e3599837e09d071220b7a81
|
|
| BLAKE2b-256 |
c28ccc257e2e3aa7a2bfe265e0c922e22208dec0bab93fa379127315496df0b2
|
File details
Details for the file viperx-1.6.0-py3-none-any.whl.
File metadata
- Download URL: viperx-1.6.0-py3-none-any.whl
- Upload date:
- Size: 75.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cea4102c7af800d212b46f0f40c386ce65f333f574e886526880afed8ae3b0e5
|
|
| MD5 |
e4582af340874d78fc05904ad320f6fe
|
|
| BLAKE2b-256 |
1a566e1aa9dee67ec3171121f6ed38a34ec463efd55734e943c8e952cd163cd8
|