Skip to content

jacebrowning/template-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

73138a2 · Mar 20, 2025
Feb 13, 2025
Jan 4, 2025
Mar 20, 2025
May 15, 2014
Jan 3, 2025
Nov 12, 2023
Feb 13, 2025
Oct 15, 2020
Feb 13, 2025
Feb 13, 2025
Jan 28, 2023
Jan 3, 2025
Jan 3, 2025
Apr 13, 2024

Repository files navigation

Jace's Python Template

This is a cookiecutter template for a typical Python library following modern packaging conventions. It utilizes popular libraries alongside Make and Graphviz to fully automate all development and deployment tasks. Check out the live demo: jacebrowning/template-python-demo

Build Status

Features

  • Preconfigured setup for CI, coverage, and analysis services
  • pyproject.toml for managing dependencies and package metadata
  • Makefile for automating common development tasks:
    • Installing dependencies with poetry
    • Automatic formatting with isort and black
    • Static analysis with pylint
    • Type checking with mypy
    • Docstring styling with pydocstyle
    • Running tests with pytest
    • Building documentation with mkdocs
    • Publishing to PyPI using poetry
  • Tooling to launch an IPython session with automatic reloading enabled

If you are instead looking for a Python application template, check out one of the sibling projects:

Examples

Here are a few sample projects based on this template:

Usage

Install cookiecutter and generate a project:

$ pip install cookiecutter
$ cookiecutter gh:jacebrowning/template-python -f

Cookiecutter will ask you for some basic info (your name, project name, python package name, etc.) and generate a base Python project for you. Once created, run the code formatter to updates files based on your chosen names:

$ cd <github_repo>
$ make format

Finally, commit all files generated by this template.

Updates

Run the update tool, which is generated inside each project:

$ bin/update