Cookiecutter Django Package#
Cookiecutter template for a Django package based on the Hypermodern Python Cookiecutter, and adapted for developing Django packages
Usage#
$ cookiecutter gh:OmenApps/cookiecutter-django-package --checkout="2023.10.2"
Features#
Packaging and dependency management with Poetry
Test automation with Nox
Linting with pre-commit and Flake8
Continuous integration with GitHub Actions
Documentation with Sphinx, MyST, and Read the Docs using the furo theme
Automated release notes with Release Drafter
Automated dependency updates with Dependabot
Import sorting with isort
Testing with pytest and pytest-django
Testing with Docker Compose (optionally using PlayWright
Code coverage with Coverage.py
Coverage reporting with Codecov
Command-line interface with Click
Automated Python syntax upgrades with pyupgrade
Check documentation examples with xdoctest
Generate command-line reference with sphinx-click
Manage project labels with GitHub Labeler
Optionally run an instance of Postgresql and the example project (with your django package installed locally) using Docker Compose
The template supports Python 3.9, 3.10, 3.11, and 3.12.
FAQ#
What is this project about?#
The mission of this project is to enable current best practices through modern Python and Django tooling.
What makes this project different from other Django package templates?#
This is a general-purpose template for Django packages.
Our goals are:
Focus on simplicity
Promote code quality through automation
Provide reliable and repeatable processes
The project template is centered around the following tools:
Poetry for packaging and dependency management
Nox for automation of checks and other development tasks
GitHub Actions for continuous integration and delivery