Overview:
The Python Project Template is a low dependency and simple to start project template for Python Projects. It provides various features and tools to help with the development and management of Python projects.
Features:
- Templates for starting multiple application types: The template includes templates for a basic low dependency Python program, as well as templates for Flask applications with database, admin interface, rest API, and authentication.
- Basic setup.py file: The template includes a basic setup.py file that provides installation, packaging, and distribution for your project.
- Makefile with useful commands: The template includes a Makefile with commands to install, test, lint, format, and release your project.
- Documentation structure using mkdocs: The template includes a documentation structure using mkdocs, making it easy to create and maintain project documentation.
- Auto generation of change log: The template automatically generates a change log file based on your commit history on every release, using gitchangelog.
- Container image support: The template includes a simple Containerfile that can be used to build a container image for your project.
- Testing structure using pytest: The template provides a testing structure using pytest, making it easy to write and run tests for your project.
- Code linting using flake8: The template includes code linting using flake8, helping to enforce code style and maintainability.
- Code coverage reports using codecov: The template supports code coverage reports using codecov, allowing you to track the coverage of your tests.
- Automatic release to PyPI: The template includes automatic release to PyPI using twine and GitHub actions, simplifying the release process.
- Entry points for program execution: The template provides entry points to execute your program using
python -m <project_name> or $ project_name with basic CLI argument parsing.
- Continuous integration using Github Actions: The template includes continuous integration using GitHub Actions, with jobs to lint, test, and release your project on Linux, Mac, and Windows environments.