{{ cookiecutter.description }}
This Cookiecutter template is designed to help you quickly start a new data science project. It provides a flexible and adaptable structure suitable for various types of data science projects, including general-purpose projects, computer vision, NLP, time series analysis, and more.
- Flexible Project Structure: Supports various data science domains (e.g., NLP, computer vision, time series).
- Modular Code Organization: Easily extendable and maintainable codebase.
- Integrated Testing: Includes unit testing with
pytest
. - Automation with Makefile: Automate tasks like environment setup, testing, and running models.
- Optional SonarQube Integration: For code quality and security analysis.
To use this Cookiecutter template, you need the following installed:
- Python >= {{ cookiecutter.python_version }}
- Cookiecutter >= 2.2.0
- Conda (optional, for environment management)
- pipx (optional, for isolated package installation)
pip install cookiecutter
Or using pipx
:
pipx install cookiecutter
Run the following command to generate a new project using this template:
cookiecutter [email protected]:simonherlin/cookiecutter-datascience.git
You will be prompted to enter various details like project_name
, author_name
, description
, and more.
After the project is generated, navigate to your new project directory:
cd {{ cookiecutter.project_name }}
Use the Makefile
to automate the environment setup and dependency installation:
make install
Other tasks can also be automated using the Makefile
:
- Run tests:
make test
- Lint project:
make lint
- Use sonarqube:
make sonar
- Read the documentation for more information
The generated project structure is designed to be adaptable to various types of data science projects:
{{ cookiecutter.project_name }}/
├── data/
├── notebooks/
├── docs/
├── src/
├── config/
├── scripts/
├── reports/
├── logs/
├── environment.yml
├── requirements.txt
├── README.md
└── Makefile
During project generation, you can customize various aspects of the project:
project_name
: The name of your project.author_name
: Your name or your team’s name.description
: A brief description of the project.project_type
: Choose from "General", "Computer Vision", "NLP", "Time Series".use_sonarqube
: Optionally integrate with SonarQube for code quality analysis.
Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.
This project is licensed under the {{ cookiecutter.license }} License.