https://github.com/habedi/template-python-project
A template for data science and machine learning projects in Python 🐍
https://github.com/habedi/template-python-project
data-science machine-learning project-template python quality-of-life software-development template template-repository
Last synced: 20 days ago
JSON representation
A template for data science and machine learning projects in Python 🐍
- Host: GitHub
- URL: https://github.com/habedi/template-python-project
- Owner: habedi
- License: mit
- Created: 2024-02-17T03:24:02.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-02T17:48:37.000Z (11 months ago)
- Last Synced: 2025-08-02T19:42:56.263Z (11 months ago)
- Topics: data-science, machine-learning, project-template, python, quality-of-life, software-development, template, template-repository
- Language: Jupyter Notebook
- Homepage:
- Size: 31.3 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## Python ML/DS Project Template
[](https://github.com/habedi/template-python-project/actions/workflows/tests.yml)
[](https://codecov.io/gh/habedi/template-python-project)
[](https://www.codefactor.io/repository/github/habedi/template-python-project)
[](https://github.com/habedi/template-python-project)
[](https://github.com/habedi/template-python-project/blob/main/docs)
[](https://github.com/habedi/template-python-project/blob/main/LICENSE)
[](https://python-poetry.org/)
[](https://astral.sh/uv)
[](https://www.gnu.org/software/make/)
---
This is a template for Python projects, specifically designed for machine learning (ML) and data science (DS) projects.
I made it to help me have a consistent structure across all my personal and professional projects.
I am sharing it here in case it can be useful to others.
### Features
- A predefined file and folder layout that should be suitable for most ML and DS projects.
- Easy dependency and environment management with [Poetry](https://python-poetry.org/), [uv](https://astral.sh/uv), or
any other modern Python dependency manager.
- Extra configuration files for various tasks like linting, formatting, testing, etc.
- Comes with a lot of quality-of-life features to help you get started quickly, like a `Makefile` and GitHub Actions
workflows for common tasks.
### Prerequisites
- `Python` >= 3.10
- `Poetry 2.0+` (or any other modern Python dependency manager like `uv`)
- `GNU Make`
### Usage
Use the `Use this template` button on GitHub to create a new repository based on this template.
Modify the `README.md` file and other files as needed.
Run `make help` to see all available commands for managing different tasks.
### Structure
```plaintext
template-python-project/
├── scripts/ # Helper scripts for various tasks
├── data/ # Raw and processed data files
├── notebooks/ # Jupyter notebooks
├── src/ # Source code for the project
├── models/ # ML models and model artifacts
├── tests/ # Project tests
├── pyproject.toml # Python project configuration
├── LICENSE # Project license file
├── docs/ # Project documentation
└── Makefile # Makefile for managing development tasks
```
---
### Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.
### License
This template is licensed under the MIT License ([LICENSE](LICENSE) or https://opensource.org/licenses/MIT)