# 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](https://python-poetry.org/)** for dependency management
- **CI/CD** with **[GitHub Actions](https://github.com/features/actions)**
- **Pre-commit hooks** using **[pre-commit](https://pre-commit.com/)**
- **Code quality checks** with **[ruff](https://github.com/charliermarsh/ruff)**, **[mypy](https://mypy.readthedocs.io/en/stable/)**, **[deptry](https://github.com/fpgmaas/deptry/)**, and **[prettier](https://prettier.io/)**
- **Publishing to [PyPI](https://pypi.org)** via GitHub releases
- **Testing and coverage** with **[pytest](https://docs.pytest.org/en/7.1.x/)** and **[codecov](https://about.codecov.io/)**
- **Documentation generation** with **[MkDocs](https://www.mkdocs.org/)**
- **Python compatibility testing** with **[Tox](https://tox.wiki/en/latest/)**
- **Containerization** using **[Docker](https://www.docker.com/)**
- **Development environment** with **[VSCode devcontainers](https://code.visualstudio.com/docs/devcontainers/containers)**
- **Deployment** with **[Azure Container Apps](https://azure.microsoft.com/en-in/products/container-apps)**
- **Data Version Control (DVC)** support for managing data files ([DVC Docs](https://dvc.org/))
You can find an example repository created using this template [here](https://github.com/DeepakPant93/cookiecutter-ml).
## 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:
```bash
pip install cookiecutter-ml
```
Alternatively, you can install **cookiecutter** and use the GitHub repository URL directly:
```bash
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:
```bash
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:
```bash
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](./features/publishing.md#set-up-for-pypi). To enable automatic documentation with **MkDocs**, follow the steps in [this guide](./features/mkdocs.md). For code coverage setup, refer to [this guide](./features/codecov.md).
## Documentation
You can find the documentation for this template [here](https://DeepakPant93.github.io/cookiecutter-ml/).
## Acknowledgements
This project is inspired by **[Audrey Feldroy's](https://github.com/audreyfeldroy)** excellent work on the [cookiecutter-pypackage](https://github.com/audreyfeldroy/cookiecutter-pypackage) template.
Raw data
{
"_id": null,
"home_page": "https://github.com/DeepakPant93/cookiecutter-ml",
"name": "cookiecutter-ml-new",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "cookiecutter, template, poetry",
"author": "Florian Maas",
"author_email": "DeepakPant93@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8e/ee/332a6a74c3d057c4c8c29bba504a0b15ab70c3a90c010f6639f4e7842fb3/cookiecutter_ml_new-0.0.1.tar.gz",
"platform": null,
"description": "# Cookiecutter Machine Learning Template\n\nThis 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.\n\n## Features\n\nThis template includes the following features:\n\n- **[Poetry](https://python-poetry.org/)** for dependency management\n- **CI/CD** with **[GitHub Actions](https://github.com/features/actions)**\n- **Pre-commit hooks** using **[pre-commit](https://pre-commit.com/)**\n- **Code quality checks** with **[ruff](https://github.com/charliermarsh/ruff)**, **[mypy](https://mypy.readthedocs.io/en/stable/)**, **[deptry](https://github.com/fpgmaas/deptry/)**, and **[prettier](https://prettier.io/)**\n- **Publishing to [PyPI](https://pypi.org)** via GitHub releases\n- **Testing and coverage** with **[pytest](https://docs.pytest.org/en/7.1.x/)** and **[codecov](https://about.codecov.io/)**\n- **Documentation generation** with **[MkDocs](https://www.mkdocs.org/)**\n- **Python compatibility testing** with **[Tox](https://tox.wiki/en/latest/)**\n- **Containerization** using **[Docker](https://www.docker.com/)**\n- **Development environment** with **[VSCode devcontainers](https://code.visualstudio.com/docs/devcontainers/containers)**\n- **Deployment** with **[Azure Container Apps](https://azure.microsoft.com/en-in/products/container-apps)**\n- **Data Version Control (DVC)** support for managing data files ([DVC Docs](https://dvc.org/))\n\nYou can find an example repository created using this template [here](https://github.com/DeepakPant93/cookiecutter-ml).\n\n## Quickstart\n\nTo get started, follow these steps:\n\n### Step 1: Install `cookiecutter-ml`\n\nFirst, navigate to the directory where you want to create the project and run:\n\n```bash\npip install cookiecutter-ml\n```\n\nAlternatively, you can install **cookiecutter** and use the GitHub repository URL directly:\n\n```bash\npip install cookiecutter\ncookiecutter git@github.com:DeepakPant93/cookiecutter-ml.git\n```\n\n### Step 2: Create a GitHub Repository\n\nCreate 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:\n\n```bash\ncd <project_name>\ngit init -b main\ngit add .\ngit commit -m \"Initial commit\"\ngit remote add origin git@github.com:<github_author_handle>/<project_name>.git\ngit push -u origin main\n```\n\n### Step 3: Install the Environment and Pre-commit Hooks\n\nRun the following command to install the environment and pre-commit hooks:\n\n```bash\nmake bake-env\n```\n\nNow 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.\n\nFor instructions on publishing to **PyPI**, refer to [this guide](./features/publishing.md#set-up-for-pypi). To enable automatic documentation with **MkDocs**, follow the steps in [this guide](./features/mkdocs.md). For code coverage setup, refer to [this guide](./features/codecov.md).\n\n## Documentation\n\nYou can find the documentation for this template [here](https://DeepakPant93.github.io/cookiecutter-ml/).\n\n## Acknowledgements\n\nThis project is inspired by **[Audrey Feldroy's](https://github.com/audreyfeldroy)** excellent work on the [cookiecutter-pypackage](https://github.com/audreyfeldroy/cookiecutter-pypackage) template.\n",
"bugtrack_url": null,
"license": null,
"summary": "A python cookiecutter application to create a new python project for machine learning application that uses poetry to manage its dependencies.",
"version": "0.0.1",
"project_urls": {
"Documentation": "https://DeepakPant93.github.io/cookiecutter-ml/",
"Homepage": "https://github.com/DeepakPant93/cookiecutter-ml",
"Repository": "https://github.com/DeepakPant93/cookiecutter-ml"
},
"split_keywords": [
"cookiecutter",
" template",
" poetry"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dd670dcf11056fb9dd25e9b75978713a57fa561605c8b08b34b9d30140a6913d",
"md5": "5a7ae022549e176eb73b18fc22be566c",
"sha256": "a8729f86b9bfd96b065743fc3df59f3b065d9eab0cf6ee1454d7e4c4f0f1add1"
},
"downloads": -1,
"filename": "cookiecutter_ml_new-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a7ae022549e176eb73b18fc22be566c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 121893,
"upload_time": "2024-12-12T13:11:29",
"upload_time_iso_8601": "2024-12-12T13:11:29.164830Z",
"url": "https://files.pythonhosted.org/packages/dd/67/0dcf11056fb9dd25e9b75978713a57fa561605c8b08b34b9d30140a6913d/cookiecutter_ml_new-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8eee332a6a74c3d057c4c8c29bba504a0b15ab70c3a90c010f6639f4e7842fb3",
"md5": "0b99227def9ffaf3cc0e3530b1f969ce",
"sha256": "4bef89b0cb5fbcc9b9f7ca9aaeb8268a66239e725c7711b22b95640ac4bf32eb"
},
"downloads": -1,
"filename": "cookiecutter_ml_new-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "0b99227def9ffaf3cc0e3530b1f969ce",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 109457,
"upload_time": "2024-12-12T13:11:31",
"upload_time_iso_8601": "2024-12-12T13:11:31.840619Z",
"url": "https://files.pythonhosted.org/packages/8e/ee/332a6a74c3d057c4c8c29bba504a0b15ab70c3a90c010f6639f4e7842fb3/cookiecutter_ml_new-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-12 13:11:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DeepakPant93",
"github_project": "cookiecutter-ml",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "cookiecutter-ml-new"
}