Skip to main content

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.txt file 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:

  1. Create the folder in the root directort: titanic/
  2. Create and configure a virtual environment: titanic/.venv/
  3. Generate the initial dependency file: titanic/requirements.txt
  4. Install the packages in the requirements.txt.
  5. Copy the data file to your data folder.

(Coming soon, the command will also do the following):

  1. Provide a few baseline models you can compare to, e.g. using random guessing.
  2. Provide a couple of reasonable pipelines based on an adhoc scan of your dataset.
  3. Split your dataset into a train and test set.
  4. Provide placeholder utility classes you can customize for your project.
  5. Initialize MLFlow to track your parameters and results.
  6. 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

bukka-0.0.2.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

bukka-0.0.2-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

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

Hashes for bukka-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e10e1477d268b598bfeb65f165f5d1b96d1f08193c1eba1707ce4a5fd0d98fcc
MD5 285383acbfab2e590cd7394cd9ffac75
BLAKE2b-256 b8bd046b34e01de135333df60f2011c7e392abf7cd1110653fee59fb6479b6b8

See more details on using hashes here.

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

Hashes for bukka-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e594265cc4c15dadc542a3f86364676fa87bbdb86d098b97cf02b8a3f7a1fcdd
MD5 659168ae3d586aa8a3cc3ce86178d810
BLAKE2b-256 798838af40a81c270cdeccd009d5ab45fca6149226908ba638bb5b1e968b9e14

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