A toolset for collaborative development and reproducible results in data science and machine learning projects.
Make sure you have uv installed, for example via pip install uv.
You can initialize a project from the command line.
uvx copier copy --trust gh:Excidion/reproML <new_project_directory>
You wil then be guided through a short questionaire. Depending on your choices, it will generate a structure that looks something like this.
<new_project_directory>
│
├── data <- All data files belong into one of this folders subfolder
│ ├── raw <- The original, unedited data dump
│ ├── interim <- Intermediate data that has been or is being transformed
│ └── processed <- The data sets used for modeling
│
├── docs <- Project documentation
│ ├── index.md <- Landing page, describe the project and team.
│ ├── context.md <- Document context and goals.
│ ├── model.md <- Document modeling from data to ML.
│ ├── ethics.md <- Ethics checklist (optional)
│ ├── notebooks/ <- Your most polished notebooks, integrated into the docs
│ └── structure.md <- Document tools and technical organization.
│
├── models <- Trained and serialized models and other artifacts
│ └── logs <- Logfiles from training and prediction
│
├── notebooks <- Jupyter notebooks
│
├── references <- Data dictionaries, manuals, and helper materials.
│
├── reports <- Generated analysis as HTML, PDF, etc.
│ └── figures <- Generated graphics and figures to be used in reports
│
├── src <- Source code for use in this project.
│ ├── data <- Scripts to download, process or generate data
│ ├── features <- Functions to turn data into features
│ ├── model <- Scripts for training and prediction
│ └── visualization <- Scripts to create visualizations
│
├── .pre-commit-config.yaml <- Automated quality checks
│
├── pyproject.toml <- Project configuration and dependencies.
│
└── README.md <- The top-level README for developers using this project.
For more details check out the documentation.
If you want to upgrade to the newest version of the template or change any of the settings given at initialization, simply run:
uvx copier update --trust