Cookiecutter for Python template with some awesome tools to quickstart any Python project.
Report Bug
·
Request Feature
Table of Contents
Python template with some awesome tools to quickstart a Python project with the industry best practices. It includes automatic generation of API documentation, tests using PyTest, code coverage, ruff linting to enforce standardized Python coding and formatting, virtual environments using UV, workflow automation using Taskipy and a space optimized Dockerfile to kickstart your project and run tests using the power of Docker containers.
You only need to install Cookiecutter!
To get a local copy up and running follow these simple steps.
This Project depends on the following projects.
- cookiecutter
pip install --user --upgrade cookiecutter
- Replicate the template locally
cookiecutter https://github.com/nullhack/python-project-template # move into your newly created project folder
- Install UV and Taskipy
pip install --user --upgrade uv taskipy
- Let Taskipy do it's magic
uv pip install .[dev] uv task test uv task run
- Update packages and look for new industry standards to include
- Automatically deploy new documentation on new PR merged
- Make the github actions and gitea actions run without errors
See the open issues for a full list of proposed features (and known issues).
Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
eol - @nullhack
Project Link: https://github.com/nullhack/python-project-template/
This project was heavily based on some great references.