Skip to main content

scaffml

Python Version
License


🚀 Overview

scaffml is a professional ML project structure generator that allows data scientists and ML engineers to quickly scaffold production-ready machine learning projects.

It provides:

  • Clean, modular project architecture
  • Optional Docker support
  • Templated code files for rapid development
  • Preconfigured .gitignore and folder structure
  • Easy integration with CI/CD, testing, and ML workflows

📦 Features

  • ✅ Generate ML projects with a single CLI command
  • ✅ Optional Docker support via --docker flag
  • ✅ Predefined folder hierarchy: app/, src/, data/, notebooks/, tests/
  • ✅ Jinja2 templated files for customizable project boilerplate
  • ✅ Safe collision detection to avoid overwriting existing projects
  • ✅ Professional CLI with version info and help menus

🛠️ Installation

Create directory:

mkdir your_root_project_name
cd your_root_project_name

Activate vertual Env(Recommended):

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

Install via pip:

pip install scaffml

Or clone and install locally:

git clone https://github.com/epythonlab2/scaffml.git
cd scaffml
pip install .

⚡ Usage

Check version

scaffml version

Create a new ML project

scaffml create my_ml_project

Create a new ML project with Docker support

scaffml create my_ml_project --docker
  • This generates a professional folder structure with templated files.
  • Empty directories are preserved with .gitkeep.

📂 Generated Project Structure

Example project layout:

my_ml_project/
├── app/
│   ├── api/
│   │   ├── __init__.py
│   │   ├── routes/
│   │   │   └── prediction.py
│   │   ├── main.py
│   │   └── schemas.py
│   ├── pipelines/
│   ├── services/
│   └── core/
│       ├── __init__.py
│       ├── config.py
│       └── logger.py
├── data/
│   ├── raw/
│   ├── processed/
│   └── external/
├── notebooks/
├── models/
├── src/
│   ├── __init__.py
│   ├── data/
│   │   ├── __init__.py
│   │   ├── loader.py
│   │   └── preprocessing.py
│   ├── features/
│   │   ├── __init__.py
│   │   └── build_features.py
│   ├── models/
│   │   ├── __init__.py
│   │   ├── train.py
│   │   └── predict.py
│   └── utils/
│       └── __init__.py
├── tests/
│   ├── __init__.py
│   ├── test_api.py
│   └── test_data.py
├── .github/
│   └── workflows/
│       └── ci.yml
├── __init__.py
├── .gitignore
├── Dockerfile
├── requirements.txt
├── README.md
└── pyproject.toml

📝 Contributing

We welcome contributions!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m "Add feature")
  4. Push and submit a pull request

📄 License

MIT License – see LICENSE for details.


💡 Notes

  • Designed for ML engineers who want clean, production-ready projects quickly.
  • Easily extendable for additional templates and features.
  • Works cross-platform (Linux/macOS/Windows) with Python 3.10+.

Release files for scaffml 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scaffml 0.3.0
File Size Uploaded
scaffml-0.3.0.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scaffml 0.3.0
File Interpreter ABI Platform
scaffml-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.3 kB

Release files / scaffml-0.3.0.tar.gz

Download URL scaffml-0.3.0.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
eee29317a404e6841dc6727031e7e429b412c9246885d4d9f9e181fda65499f7
BLAKE2b-256 checksum
How to use checksums
fd89d0f32f105c383d0a058a0abceab7738ec3ec024be32478375e189df9cf2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / scaffml-0.3.0-py3-none-any.whl

Download URL scaffml-0.3.0-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d0b85191c424b2f2262564b9d52910d99935e8d331b18c940360adcc095359d
BLAKE2b-256 checksum
How to use checksums
fa8a14c988627649b1e3eed29e30cb5d0a24b6ac44cbb8ed650f9737bee2e156
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page