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.
  • 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.

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
# 34 tests | 77% coverage

Test Structure:

  • unit/ - Validation (5 tests)
  • functional/ - CLI, licenses, project types (16 tests)
  • scenarios/ - Classic, workspace, updates (11 tests)
  • integration/ - E2E lifecycle (2 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

viperx-1.2.2.tar.gz (45.5 kB view details)

Uploaded Source

Built Distribution

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

viperx-1.2.2-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: viperx-1.2.2.tar.gz
  • Upload date:
  • Size: 45.5 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-1.2.2.tar.gz
Algorithm Hash digest
SHA256 bf899701ee46dc8470eb4cea3e87b1b616a7b656673c688b8d497b6c90b0da23
MD5 0b63fadc937199f7571a36e8257b0dea
BLAKE2b-256 aaa5b8b1d1707d23d6fd6659ca22d62f185cc3bc045d75c9e2f5c936c95b4f7c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: viperx-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 63.1 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-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0580541258958e1aa6ac2fd6b1fcb24a1562be2d2955acef6d26a2f9151eebf2
MD5 876df240a91df2f7b458f430442e4d4d
BLAKE2b-256 d9f977102bba8243d0d282af5ee35671a2aead393d285278e6dc815dc6e6f8d9

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