No project description provided
Project description
Table of Contents
- Motivation
- Features
- Installation
- Basic Usage
- Default Template
- Customizing Templates
- Makefile
- PDM
- pytest
๐ช Data Science Cookiecutter
The Data Science Cookiecutter ๐ช is an opinionated, yet configurable, Python project that provides a template for organizing and setting up data science projects. It uses the Cookiecutter project structure to create a standardized and reproducible project layout.
๐ฏ Motivation
Data science projects often require a well-structured project layout to ensure reproducibility and collaboration. The Data Science Cookiecutter aims to solve this problem by providing a project template. While it follows certain opinions about project organization, it also allows for easy customization to fit different project needs.
โจ Features
- Standardized project structure for data science projects
- Automatic generation of project files and folders
- Customizable templates for different project needs
- Customizable for multiple programming languages (currently, the default template currently only has Python)
- Easy project initialization with just a few command-line arguments
โ๏ธ Installation
The Data Science Cookiecutter is on pypi and can be installed using pip
, poetry
, pdm
or conda
.
pdm add datascience-cookiecutter
๐ Basic Usage
To create a new data science project using the Data Science Cookiecutter, follow these steps:
- Open a terminal or command prompt.
cd
to the directory where you want to create the project.- Run the following command:
cookiecutter myproject
wheremyproject
is the name of your project. - profit ๐
๐ Default Template
โโโ data/
โ โโโ processed
โ โโโ raw
โโโ dev/
| โโโ notebooks
โ โโโ scripts
โโโ src/
โ โโโ __init__.py
โ โโโ main.py
โโโ tests/
โ โโโ __init__.py
โ โโโ main.py
โโโ references/
โโโ Makefile
โโโ README.md
๐ ๏ธ Customizing Templates
If you want to customize the default template used by cookiecutter
, you can create a templates.py
file in your $HOME/.config/cookiecutter
directory. Follow these steps:
- Open a text editor and create a new file called
templates.py
. - Import the necessary classes
Folder
andFileTemplate
by adding the following lines totemplates.py
:
from datascience_cookiecutter import Folder, FileTemplate
Define your custom template using the Folder and FileTemplate classes. Here's a minimal example:
MYTEMPLATE = Folder(
name="{{name}}",
subfolders=[
Folder(name="src", files=[FileTemplate(filename="main.py", content="print('Hello, world!')")]),
Folder(name="data"),
Folder(name="docs"),
],
files=[
FileTemplate(filename="README.md", content="# My {{name}}"),
],
)
Occurences of {{name}}
will be replaced by the project name as provided
with cookiecutter myprojectname
. To use your custom template, simply run the
cookiecutter command with the --template
option followed by the name of
your custom template. For example:
$ cookiecutter myproject --template=MYTEMPLATE
Enjoy customizing your templates! โจ๐งโโ๏ธ
๐ ๏ธ Makefile
A Makefile is a file containing a set of instructions, known as targets, used to automate tasks in software development. It provides a convenient way to define and organize common commands for building, testing, and managing a project.
In the provided Makefile, you have the following targets:
- install: Installs project dependencies using
pdm install
. - test: Runs project tests with
pytest
- format: Applies code formatting using
isort
andblack
. - lint: Performs linting and static type checking using
ruff
andmypy
To use the Makefile, open a terminal or command prompt, navigate to your project directory, and run the desired target using the make command followed by the target name. For example:
make install
๐ฌ pytest
Pytest is a Python testing framework that allows you to write simple and scalable tests with a clean and expressive syntax. It provides powerful features like fixtures, test discovery, and test selection.
For more information, you can visit the official pytest website: pytest.org
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.