Perfect Python Project Template

This project template creates the basic structure for a Python project. The article How to Set up a Perfect Python Project describes all the design decisions used here.

Features

  • Python 3.10+ (configurable)
  • Poetry based dependency management
  • Development tasks registered in a Makefile for easy access and management
  • Custom Mercurial/Git hooks for pre-commit and pre-push events
  • Linting based on ruff, blue, mypy and others
  • Tests based on pytest

Instructions

To instantiate the template into a new project, you'll need cookiecutter. The best way to use it just once is through pipx:

$ pipx run cookiecutter gh:andredias/perfect_python_project

If you prefer, use can install it throught pip instead:

$ pip install --user cookiecutter

Next, run the following command:

$ cookiecutter gh:andredias/perfect_python_project

Answer a few questions:

author []: Fulano de Tal
email []: fulano@email.com
project_name [Project]: Project X
project_slug [project_x]:
python_version [3.10]:
line_length [79]: 100
Select version_control:
1 - hg
2 - git
Choose from 1, 2 [1]: 1
github_respository_url []:

That's it!