Python BSD-3-Clause

cookiecutter-modern-datascience

Start a data science project with modern tools

C

crmne

Dernière activité 26 sept. 2026
crmne/cookiecutter-modern-datascience

207

étoiles

35

forks

3

issues ouvertes

cookiecuttercookiecutter-data-sciencecookiecutter-templatedatasciencepython

Ce README est souvent en anglais.

Cookiecutter Modern Data Science

Cookiecutter template for starting a Data Science project with modern, fast Python tools.

This project is archived and no longer maintained. It was built in 2020 and its tools (Pipenv, Prefect 1, black, W&B) have since been replaced by simpler ones.

For a maintained template, use cookiecutter-data-science (uvx --from cookiecutter-data-science ccds). Or ask your coding agent for a project built on today's stack: uv for packages and Python versions, Ruff for linting and formatting, marimo for notebooks that are plain Python files, Polars and DuckDB for data, Parquet files in data/, and a justfile for running the steps.

Thanks to everyone who starred, forked, and used it.

Features

Quickstart

Install the latest Cookiecutter and Pipenv:

pip install -U pipenv cookiecutter

Generate the project:

cookiecutter gh:crmne/cookiecutter-modern-datascience

Get inside the project:

cd <repo_name>
pipenv shell  # activates virtualenv

(Optional) Start Weights & Biases locally, if you don't want to use the cloud/on-premise version:

wandb local

Start working:

jupyter-lab

Directory structure

This is our your new project will look like:

├── .gitignore                <- GitHub's excellent Python .gitignore customized for this project
├── LICENSE                   <- Your project's license.
├── Pipfile                   <- The Pipfile for reproducing the analysis environment
├── README.md                 <- The top-level README for developers using this project.
│
├── data
│   ├── 0_raw                 <- The original, immutable data dump.
│   ├── 0_external            <- Data from third party sources.
│   ├── 1_interim             <- Intermediate data that has been transformed.
│   └── 2_final               <- The final, canonical data sets for modeling.
│
├── docs                      <- GitHub pages website
│   ├── data_dictionaries     <- Data dictionaries
│   └── references            <- Papers, manuals, and all other explanatory materials.
│
├── notebooks                 <- Jupyter notebooks. Naming convention is a number (for ordering),
│                                the creator's initials, and a short `_` delimited description, e.g.
│                                `01_cp_exploratory_data_analysis.ipynb`.
│
├── output
│   ├── features              <- Fitted and serialized features
│   ├── models                <- Trained and serialized models, model predictions, or model summaries
│   └── reports               <- Generated analyses as HTML, PDF, LaTeX, etc.
│       └── figures           <- Generated graphics and figures to be used in reporting
│
├── pipelines                 <- Pipelines and data workflows.
│   ├── Pipfile               <- The Pipfile for reproducing the pipelines environment
│   ├── pipelines.py          <- The CLI entry point for all the pipelines
│   ├── <repo_name>           <- Code for the various steps of the pipelines
│   │   ├──  __init__.py
│   │   ├── etl.py            <- Download, generate, and process data
│   │   ├── visualize.py      <- Create exploratory and results oriented visualizations
│   │   ├── features.py       <- Turn raw data into features for modeling
│   │   └── train.py          <- Train and evaluate models
│   └── tests
│       ├── fixtures          <- Where to put example inputs and outputs
│       │   ├── input.json    <- Test input data
│       │   └── output.json   <- Test output data
│       └── test_pipelines.py <- Integration tests for the HTTP API
│
└── serve                     <- HTTP API for serving predictions
    ├── Dockerfile            <- Dockerfile for HTTP API
    ├── Pipfile               <- The Pipfile for reproducing the serving environment
    ├── app.py                <- The entry point of the HTTP API
    └── tests
        ├── fixtures          <- Where to put example inputs and outputs
        │   ├── input.json    <- Test input data
        │   └── output.json   <- Test output data
        └── test_app.py       <- Integration tests for the HTTP API

Projets similaires

A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.

Pythonaicookiecuttercookiecutter-data-science
Ddrivendataorg
10,1 k étoiles2,6 k

Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.

Pythonagentic-aiagentic-workflowdata-pipelines
Kkedro-org
11 k étoiles1,1 k

10 Weeks, 20 Lessons, Data Science for All!

Jupyter Notebookdata-analysisdata-sciencedata-visualization
Mmicrosoft
37,4 k étoiles7,6 k