Produces rigorous advanced machine learning frameworks natively bypassing jinja
Project description
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.dedentblocks, keeping the scaffolding tool lintable (ruff) and type-checked (mypy). - Interactive Multi-Select CLI: Uses a beautiful macOS-native-looking,
rich-styled checkbox interface (viaquestionary) to let users dynamically toggle specifically the modules they need. - Dynamic Feature Architecture: Additive folder structures and
pyproject.tomldependencies based on your selections:gpu,viz,data_prep,model_training,scraping,vector_db,llm_orchestration.
- Reusable Presets: Easily load preconfigured bundles like
--preset numerical_mlor--preset llm_scraping. Save your own custom selections to~/.config/spjaffolding/presets.jsonfor 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). uvEnvironment Orchestration: Subprocess execution ofuv initanduv synclocally bypasses pip dependency hell with uncompromised lockfile reproducibility. Injecting strict dependency clusters likegpu,viz, andtestbased 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
uvinstalled, 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:
- Clone the repository:
git clone https://github.com/PRAkTIKal24/spjaffolding.git
cd spjaffolding
- 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb33c3a90c4809190c8bf49ba7cb711b9e9c87405b15f293a322fc545fd53fb8
|
|
| MD5 |
c45de735e039ceafd7ca55d5bd085150
|
|
| BLAKE2b-256 |
81559bae2a1944cc431b806b6be4bcf8e8714a98bb127054ae4b3daa350fc39b
|
Provenance
The following attestation bundles were made for spjaffolding-0.1.4.tar.gz:
Publisher:
publish.yml on PRAkTIKal24/spjaffolding
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spjaffolding-0.1.4.tar.gz -
Subject digest:
fb33c3a90c4809190c8bf49ba7cb711b9e9c87405b15f293a322fc545fd53fb8 - Sigstore transparency entry: 1295114694
- Sigstore integration time:
-
Permalink:
PRAkTIKal24/spjaffolding@0c8529e699f345aa7c3e645cee31590f8e2b3358 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/PRAkTIKal24
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c8529e699f345aa7c3e645cee31590f8e2b3358 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e5e857676a01250a0a4cf54d1657a8a3f5434a4f387b8d632873f320499410f
|
|
| MD5 |
dc05296ae7f770afa3c8ff53f4325ddf
|
|
| BLAKE2b-256 |
0cd75fba024cec2594fe2d8b340d954bc2624a2e3dd6b2172f3e1cd3b35245f4
|
Provenance
The following attestation bundles were made for spjaffolding-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on PRAkTIKal24/spjaffolding
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spjaffolding-0.1.4-py3-none-any.whl -
Subject digest:
6e5e857676a01250a0a4cf54d1657a8a3f5434a4f387b8d632873f320499410f - Sigstore transparency entry: 1295114785
- Sigstore integration time:
-
Permalink:
PRAkTIKal24/spjaffolding@0c8529e699f345aa7c3e645cee31590f8e2b3358 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/PRAkTIKal24
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c8529e699f345aa7c3e645cee31590f8e2b3358 -
Trigger Event:
release
-
Statement type: