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.
cdto the directory where you want to create the project.- Run the following command:
cookiecutter myprojectwheremyprojectis 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
FolderandFileTemplateby 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
isortandblack. - lint: Performs linting and static type checking using
ruffandmypy
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.
Source Distributions
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