Professional Python Project Initializer with uv, ml/dl support, and embedded config.
Project description
๐ ViperX
Professional Python Project Initializer The modern, snake-fast way to bootstrap Python projects.
ViperX is a CLI tool designed to generate production-ready Python projects instantly. It leverages uv for blazing fast dependency management and offers specialized templates for Machine Learning (ml) and Deep Learning (dl).
โจ Features
- Blazing Fast: Built on top of
uv. - 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.
๐ฆ Installation
Recommended (Global Tool)
pipx install viperx
Alternative (uv)
uv tool install viperx
๐ Usage
init
Initialize a new project (Classic, ML, or DL).
# Classic Lib (Standard Layout)
viperx init -n my-lib
# Machine Learning ( + Notebooks, Pandas, Scikit-learn, Smart Loader)
viperx init -n churn-pred -t ml
# Deep Learning ( + PyTorch/TensorFlow, CUDA checks)
viperx init -n deep-vision -t dl --framework pytorch
package
Manage workspace packages (Monorepo style).
# Add a new package to the current workspace
viperx package add -n my-api -t classic
# Remove a package
viperx package delete -n my-api
๐ Quick Start
Initialize a new project with a single command:
# Classic Package
pypro init -n my-lib -d "My awesome library"
# Deep Learning Project (PyTorch ready)
pypro init -n deep-vision -t dl --description "Vision Transformer implementation"
# Machine Learning Project (Scikit-learn ready)
pypro init -n churn-prediction -t ml
๐๏ธ Project### ๐งฑ Structure
Standard Layout
my-lib/
โโโ pyproject.toml # Managed by uv
โโโ README.md
โโโ .gitignore
โโโ data/ # Local datasets (ignored by git)
โโโ src/
โโโ my_lib/
โโโ __init__.py
โโโ main.py # Entry point
โโโ config.yaml # Data URLs & Params
โโโ config.py # Loader
โโโ .env # Secrets (Isolated)
โโโ utils/
โโโ data_loader.py # Generic URL/CSV Loader
๐ง Machine Learning & Deep Learning
For type ml or dl, you get:
- Notebooks:
Base_Kaggle.ipynb: Loads data viakagglehub.Base_General.ipynb: Loads data viadata_loader.py(URL/Local).
- Data Loader:
src/<pkg>/data_loader.pyhandles caching downloads todata/. - Config: Pre-filled with "Hello World" datasets (Iris, Titanic).
โ๏ธ Configurationstalls dependencies (torch, pandas...).
deep-vision/
โโโ pyproject.toml
โโโ notebooks/
โ โโโ Base.ipynb # Pre-configured notebook (Colab/Kaggle ready)
โโโ src/
โโโ deep_vision/
โโโ ... # Same robust package structure
๐ป CLI Usage
init - Create a new project
uv run pypro init [OPTIONS]
Options:
-n, --name TEXT: Project name (Required).-t, --type TEXT: Project type (classic,ml,dl). Default:classic.-d, --description TEXT: Project description.-a, --author TEXT: Author name (defaults to git user).-l, --license TEXT: License type (MIT,Apache-2.0,GPLv3). Default:MIT.-f, --framework TEXT: DL Framework (pytorch,tensorflow). Default:pytorch(only for-t dl).-v, --verbose: Enable verbose logging for transparent output.
Examples:
# Classic Library
uv run pypro init -n my-lib
# Deep Learning (PyTorch Default)
uv run pypro init -n vision-ai -t dl
# Deep Learning (TensorFlow)
uv run pypro init -n tf-legacy -t dl -f tensorflow
package - Manage Workspace
Manage packages in your workspace hierarchy (add, update, delete).
add
Add a new package to your project. Upgrades standalone projects to workspaces automatically.
uv run pypro package add -n worker-node -t classic --no-readme
Options:
--readme / --no-readme: Generate a localREADME.mdfor the package. Default:True.--env / --no-env: Generate isolated.envand.env.exampleinsrc/<pkg>/.
delete
Remove a package from the workspace (deletes folder & updates pyproject.toml).
uv run pypro package delete -n worker-node
update
Update a package's dependencies (runs uv lock --upgrade).
uv run pypro package update -n worker-node
---## ๐ฆ "Magical" Configuration
Every project comes with a robust config.py using importlib.resources.
In your code / notebooks:
from my_package import SETTINGS, get_dataset_path
# Works everywhere: Local, Installed, Colab, Kaggle
print(SETTINGS['project_name'])
๐ค Contributing
This project is built 100% with uv.
- Clone the repo
- Sync dependencies:
uv sync - Run the CLI:
uv run pypro
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-0.8.0.tar.gz.
File metadata
- Download URL: viperx-0.8.0.tar.gz
- Upload date:
- Size: 20.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 |
34795595e660051c6b73e68e21a05a7b12f0093ca51a67f7453df4cb7cd95be7
|
|
| MD5 |
0b96cc03d59bd3d9aca8d2b180ae74f9
|
|
| BLAKE2b-256 |
ca54b2b87e26007a0916b6302260f2fd03708e8660adcb6615c922f3b06d7f02
|
File details
Details for the file viperx-0.8.0-py3-none-any.whl.
File metadata
- Download URL: viperx-0.8.0-py3-none-any.whl
- Upload date:
- Size: 27.6 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 |
733c489fa95354e788ea0f1936ca826998c9e000d67e2dbf17a55a042aa7d213
|
|
| MD5 |
7068c72d126b889629dfded9bb8be025
|
|
| BLAKE2b-256 |
2392c0eefc5c7c777a76335e1460e25b0b61cad4c8752822243bc657d89437f2
|