A python cookiecutter application to create a new python project for machine learning application that uses poetry to manage its dependencies.
Project description
Cookiecutter Machine Learning Template
This is a modern Cookiecutter template for initializing Python projects, particularly for machine learning. It provides a comprehensive setup for development, testing, and deployment, incorporating essential tools for effective project management.
Features
This template includes the following features:
- Poetry for dependency management
- CI/CD with GitHub Actions
- Pre-commit hooks using pre-commit
- Code quality checks with ruff, mypy, deptry, and prettier
- Publishing to PyPI via GitHub releases
- Testing and coverage with pytest and codecov
- Documentation generation with MkDocs
- Python compatibility testing with Tox
- Containerization using Docker
- Development environment with VSCode devcontainers
- Deployment with Azure Container Apps
- Data Version Control (DVC) support for managing data files (DVC Docs)
You can find an example repository created using this template here.
Quickstart
To get started, follow these steps:
Step 1: Install cookiecutter-ml
First, navigate to the directory where you want to create the project and run:
pip install cookiecutter-ml
Alternatively, you can install cookiecutter and use the GitHub repository URL directly:
pip install cookiecutter
cookiecutter git@github.com:DeepakPant93/cookiecutter-ml.git
Step 2: Create a GitHub Repository
Create a new repository on GitHub, then run the following commands in your terminal, replacing <project-name> with your GitHub repository name and <github_author_handle> with your GitHub username:
cd <project_name>
git init -b main
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:<github_author_handle>/<project_name>.git
git push -u origin main
Step 3: Install the Environment and Pre-commit Hooks
Run the following command to install the environment and pre-commit hooks:
make bake-env
Now you're all set to start development! The CI/CD pipeline will automatically trigger on pull requests, merges to the main branch, and new releases.
For instructions on publishing to PyPI, refer to this guide. To enable automatic documentation with MkDocs, follow the steps in this guide. For code coverage setup, refer to this guide.
Documentation
You can find the documentation for this template here.
Acknowledgements
This project is inspired by Audrey Feldroy's excellent work on the cookiecutter-pypackage template.
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 Distribution
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