Skip to content

Introduction

Cookiecutter PyPackage

Cookiecutter template for a Python package, built with popular develop tools and conform to best practice.

CI Status License

Features

This tool will create Python project with the following features:

  • Poetry: Manage dependency, build and release
  • Mkdocs: Writing your docs in markdown style
  • Testing with Pytest (unittest is still supported out of the box)
  • Code coverage report and endorsed by Codecov
  • Tox: Test your code against environment matrix, lint and artifact check
  • Format with Black and Isort
  • Lint code with Flake8 and Flake8-docstrings
  • Check static type with Mypy (optional)
  • Pre-commit hooks: Formatting/linting anytime when commit your code
  • Mkdocstrings: Auto API doc generation
  • Command line interface using Click (optional)
  • bump2version: Pre-configured version bumping with a single command
  • Continuous Integration/Deployment by GitHub actions, includes:
    • publish dev build/official release to TestPyPI/PyPI automatically when CI success
    • publish documents automatically when CI success
    • extract changelog from CHANGELOG and integrate with release notes automatically
  • Host your documentation from GitHub Pages with zero-config

Quickstart

Install the latest Cookiecutter if you haven't installed it yet (this requires Cookiecutter 1.4.0 or higher):

1
pip install -U cookiecutter

Generate a Python package project:

1
cookiecutter https://github.com/EuanMason/cookiecutter-pypackage.git

Then follow Tutorial to finish other configurations.

Credits

This repo is forked from waynerv/cookiecutter-pypackage, which is forked from zillionare/python-project-wizard, which originally forked from audreyfeldroy/cookiecutter-pypackage