Skip to main content

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, proper src layout, ruff ready.
  • ML/DL First: Templates with torch, tensorflow, kagglehub and Smart Caching.
  • Smart Caching: Auto-downloads and caches datasets to ~/.cache/viperx/data (or local data/).
  • Strict Isolation: Environment variables (.env) isolated in src/<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 via kagglehub.
    • Base_General.ipynb: Loads data via data_loader.py (URL/Local).
  • Data Loader: src/<pkg>/data_loader.py handles caching downloads to data/.
  • 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 local README.md for the package. Default: True.
  • --env / --no-env: Generate isolated .env and .env.example in src/<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.

  1. Clone the repo
  2. Sync dependencies: uv sync
  3. 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

viperx-0.8.1.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

viperx-0.8.1-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file viperx-0.8.1.tar.gz.

File metadata

  • Download URL: viperx-0.8.1.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

Hashes for viperx-0.8.1.tar.gz
Algorithm Hash digest
SHA256 eb9cdd70d737307f6a28952086ec840bd3600422ecc263e8e910d56bd0fc74e4
MD5 cc6069b31e39034e063ab9a721419a5f
BLAKE2b-256 c6e68d4223df912fcebfa95a7a71e183eac3cb9701cf02e7ab961a5cfc68fd98

See more details on using hashes here.

File details

Details for the file viperx-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: viperx-0.8.1-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

Hashes for viperx-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c2b5b35985dc535987c52ac16138ff3ecbb88d0ca9ecbde8a1719b5d1cd2ad97
MD5 9c0ea85a192e30ab514a9d9a45e4b284
BLAKE2b-256 a6501e1a153b0be492bc60b096603fbb077923aa8d502768f7cc792017b4bb91

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