Cookiecutter Namespace Template#

Cookiecutter Namespace Template for a Python package.

Downloads Updates Versions Contributors License status Docs


  • Testing setup with unittest or pytest

  • Tox testing: Setup to easily test for Python 3.7, 3.8, 3.9, 3.10 and 3.11.

  • Sphinx docs: Documentation ready for generation with, for example, ReadTheDocs

  • bump2version: Pre-configured version bumping with a single command

  • If the cookiecutter-namespace-template project template has been changed, you can apply these changes with

    $ cruft update
  • Optional auto-release to PyPI when you push a new tag to main (optional)

  • Optional command line interface using Typer or Click

If you really want to create a new package with Python 2, in spite of the Python 2.7 countdown and the Sunsetting Python 2 support, then use cookiecutter-namespace-template <0.2.


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

    $ python -m pip install -U cruft
  2. Generate a Python package project:

    $ python -m cruft create
  3. Create a repo and put it there.

  4. Register your project with PyPI.

  5. Add the repo to your ReadTheDocs account and turn on the ReadTheDocs service hook.

  6. If you want to add the pyup badge to your README file

    1. create a new account at or log into your existing account

    2. click on the green Add Repo button

    3. click Pin to add the repo

  7. Release your package by pushing a new tag to main.

Pull requests#

If you have differences in your preferred setup, I encourage you to fork this to create your own version. I also accept pull requests on this, if they’re small, atomic, and if they make my own packaging experience better.