Skip to content

Overview


Release Build status Supported Python versions Documentation Coverage Maintainability Index Docs License

Contents - Features - Quick start - Credits

Features

This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. It supports the following features:

  • Poetry for dependency management
  • CI/CD with GitHub Actions
  • Pre-commit hooks with pre-commit
  • Code quality with:
  • black
  • isort
  • ruff
  • mypy
  • interrogate
  • Checks dependencies for known security vulnerabilities with Safety
  • All development tasks (lint, format, test, etc) wrapped up in a python CLI by duty
  • Publishing to Pypi by creating a new release on GitHub
  • Testing and coverage with pytest and codecov
  • Documentation with MkDocs
  • Compatibility testing for multiple versions of Python with Tox
  • Auto-generated CHANGELOG.md from git commits (using Angular message style) commitizen
  • Makefile for convenience

Documentation - Example - PyPi


Quickstart

Install cookiecutter On your local machine, navigate to the directory in which you want to create a project directory, and run the following commands:
pip install cookiecutter
cookiecutter https://github.com/jexio/fulmo-cookiecutter-poetry.git
Github repository Create a repository on GitHub, and then run the following commands, replacing `{project-name}`, with the name that you gave the Github repository and `{github_username}` with your Github username.
cd <project_name>
git init -b main
git add .
git commit -m "Init commit"
git remote add origin git@github.com:<github_username>/<project_name>.git
git push -u origin main
Creating an environment Finally, install the environment and the pre-commit hooks with
make install
CI/CD and Docs You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.
To finalize the set-up for publishing to PyPi, see [here](https://jexio.github.io/fulmo-cookiecutter-poetry/features/publishing/#set-up-for-pypi/)
For activating the automatic documentation with MkDocs, see [here](https://jexio.github.io/fulmo-cookiecutter-poetry/features/mkdocs/#enabling-the-documentation-on-github/)
To enable the code coverage reports, see [here](https://jexio.github.io/fulmo-cookiecutter-poetry/features/codecov/)

Credits

This cookiecutter was built for learning purpose and inspired by: