ML Project Quickstart
Project description
📖 bukka: Django-Inspired ML Infrastructure CLI
bukka is a Python command-line interface (CLI) tool designed to dramatically reduce the boilerplate and setup time for new Machine Learning (ML) projects. Inspired by the structure and speed of the Django framework's startproject command, bukka lets you instantly scaffold a robust, standardized, and ready-to-use project infrastructure.
✨ Features
- Django-Inspired Structure: Creates a logical, maintainable folder hierarchy optimized for ML workflows (data, models, notebooks, scripts).
- Automated Environment Setup: Automatically generates a Python virtual environment (
.venv) to isolate your project dependencies. - Dependency Management: Creates a starting
requirements.txtfile with essential ML packages (e.g., NumPy, Pandas, Scikit-learn). - CLI Simplicity: Use simple, intuitive commands to create a complete project skeleton in seconds.
🚀 Quick Start
1. Installation
bukka is available on PyPI.
pip install bukka
2. Creating a New Project
Use the bukka.bukka command, similar to Django, followed by your desired project name.
# Example: Create a new project named 'titanic'
python -m bukka.bukka -n titanic -d titanic.csv
This command will:
- Create the folder in the root directort:
titanic/ - Create and configure a virtual environment:
titanic/.venv/ - Generate the initial dependency file:
titanic/requirements.txt - Install the packages in the requirements.txt.
- Copy the data file to your data folder.
(Coming soon, the command will also do the following):
- Provide a few baseline models you can compare to, e.g. using random guessing.
- Provide a couple of reasonable pipelines based on an adhoc scan of your dataset.
- Split your dataset into a train and test set.
- Provide placeholder utility classes you can customize for your project.
- Initialize MLFlow to track your parameters and results.
- Provide starter notebooks, so you can get to machine learning ASAP.
🌳 Standard Project Structure
When you run python -m bukka.bukka -n <name>, the following standardized structure is created, ensuring consistency across all your ML projects:
<project_name>/
├── .venv/ # Isolated Python Virtual Environment
├── data/ # Storage for raw, processed, and external data
│ ├── test/ # Unprocessed, immutable source data
│ ├── train/ # Cleaned and processed data ready for modeling
├── pipelines/ # Pipelines
│ ├── __init__.py # Makes 'pipelines' a Python package
│ ├── baseline/ # Placeholder, this will store pipelines that provide baselines (e.g. naive classifiers)
│ ├── candidate/ # Contender pipelines
│ ├── generated/ # Placeholder, this will contain pipelines generated by the schema analyzer.
├── scripts/ # Python scripts for automation (currently empty)
├── requirements.txt # Project dependencies file
🤝 Contributing
We welcome contributions! If you have suggestions for new structural templates, essential starter packages, or commands, please open an issue or submit a pull request.
📄 License
This project is licensed under the Apache License. See the LICENSE file for details.
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
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 bukka-0.0.2.tar.gz.
File metadata
- Download URL: bukka-0.0.2.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e10e1477d268b598bfeb65f165f5d1b96d1f08193c1eba1707ce4a5fd0d98fcc
|
|
| MD5 |
285383acbfab2e590cd7394cd9ffac75
|
|
| BLAKE2b-256 |
b8bd046b34e01de135333df60f2011c7e392abf7cd1110653fee59fb6479b6b8
|
File details
Details for the file bukka-0.0.2-py3-none-any.whl.
File metadata
- Download URL: bukka-0.0.2-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e594265cc4c15dadc542a3f86364676fa87bbdb86d098b97cf02b8a3f7a1fcdd
|
|
| MD5 |
659168ae3d586aa8a3cc3ce86178d810
|
|
| BLAKE2b-256 |
798838af40a81c270cdeccd009d5ab45fca6149226908ba638bb5b1e968b9e14
|