Skip to main content

Produces rigorous advanced machine learning frameworks natively bypassing jinja

Project description

DOI GitHub Release-date Release-version GitHub repo size License GitHub forks

Tests Code style: ruff uv

spjaffolding

A fast, strictly-typed Python CLI application that scaffolds advanced, highly modular Machine Learning frameworks. Designed for Principal Software Engineers and Research teams who demand robust architecture without the pollution of traditional templating engines (like Jinja).

By leveraging Python's Typer, rich, questionary and dynamic programmatic string injection coupled with the Rust-backed speed of uv, spjaffolding ensures deterministic environment resolution and clean, readable codebases.

Key Features

  • Jinja-Free Static Generation: Avoids external templating engines by utilizing localized textwrap.dedent blocks, keeping the scaffolding tool lintable (ruff) and type-checked (mypy).
  • Interactive Multi-Select CLI: Uses a beautiful macOS-native-looking, rich-styled checkbox interface (via questionary) to let users dynamically toggle specifically the modules they need.
  • Dynamic Feature Architecture: Additive folder structures and pyproject.toml dependencies based on your selections:
    • gpu, viz, data_prep, model_training, scraping, vector_db, llm_orchestration.
  • Reusable Presets: Easily load preconfigured bundles like --preset numerical_ml or --preset llm_scraping. Save your own custom selections to ~/.config/spjaffolding/presets.json for future runs, and view them anytime using --list-presets.
  • Mode-Driven CLI Controller: Generates a boilerplate script integrating an argparse/Typer Finite State Machine (FSM), natively supporting sequential chained execution (e.g., -m prepare_train_evaluate).
  • uv Environment Orchestration: Subprocess execution of uv init and uv sync locally bypasses pip dependency hell with uncompromised lockfile reproducibility. Injecting strict dependency clusters like gpu, viz, and test based on PEP 621/735.

Installation

Install spjaffolding globally to bootstrap ML projects anywhere on your filesystem using pip or uv:

Note: If you don't have uv installed, you can quickly install it:

curl -LsSf https://astral.sh/uv/install.sh | sh
pip install spjaffolding

Or

uv tool install spjaffolding

Install from source

If you want to install from source or develop the tool:

  1. Clone the repository:
git clone https://github.com/PRAkTIKal24/spjaffolding.git
cd spjaffolding
  1. Install using uv tool:
uv tool install . --force

Quick Start

To view all available predefined and custom presets, formatted beautifully in your terminal:

spjaffold --list-presets

Invoke the scaffolding wizard to use the interactive checkbox menu:

spjaffold --tool-name "phaze" --description "High Energy Physics anomaly detector"

Or run rapidly via a built-in or custom saved preset:

spjaffold --tool-name "phaze" --description "HEP anomaly detector" --preset "numerical_ml"

This generates the complete structural footprint based on your toggled features (e.g., numerical_ml preset):

phaze/
├── README.md
├── pyproject.toml
├── src/
│   └── phaze/
│       ├── __init__.py
│       ├── cli.py       <-- Automatically bound to the selected domain FSM!
│       ├── data_prep/
│       ├── models/
│       └── training/
└── workspaces/

Within the scaffolded framework, execute your modes sequentially:

uv run phaze -m "prepare_train" -p default_workspace default_project

Developer Guide

spjaffolding itself maintains high structural integrity. Check its code standard via:

uv sync --all-extras
uv run ruff check src
uv run mypy src
uv run pytest tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spjaffolding-0.1.4.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

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

spjaffolding-0.1.4-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file spjaffolding-0.1.4.tar.gz.

File metadata

  • Download URL: spjaffolding-0.1.4.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spjaffolding-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fb33c3a90c4809190c8bf49ba7cb711b9e9c87405b15f293a322fc545fd53fb8
MD5 c45de735e039ceafd7ca55d5bd085150
BLAKE2b-256 81559bae2a1944cc431b806b6be4bcf8e8714a98bb127054ae4b3daa350fc39b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spjaffolding-0.1.4.tar.gz:

Publisher: publish.yml on PRAkTIKal24/spjaffolding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spjaffolding-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: spjaffolding-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spjaffolding-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6e5e857676a01250a0a4cf54d1657a8a3f5434a4f387b8d632873f320499410f
MD5 dc05296ae7f770afa3c8ff53f4325ddf
BLAKE2b-256 0cd75fba024cec2594fe2d8b340d954bc2624a2e3dd6b2172f3e1cd3b35245f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for spjaffolding-0.1.4-py3-none-any.whl:

Publisher: publish.yml on PRAkTIKal24/spjaffolding

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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