Need help with template-python?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jacebrowning
512 Stars 87 Forks The Unlicense 909 Commits 9 Opened issues

Description

A template for new Python libraries.

Services available

!
?

Need anything else?

Contributors list

# 58,456
Markdow...
microfr...
seleniu...
Visual ...
715 commits
# 19,646
Objecti...
Flask
python-...
Django
58 commits
# 151,131
CSS
Django
Webpack
django-...
1 commit

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.

If you still need to use legacy Python or

nose
as the test runner, older versions of this template are available on branches:
$ cookiecutter gh:jacebrowning/template-python -f --checkout=python2

$ cookiecutter gh:jacebrowning/template-python -f --checkout=nose

Updates

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

$ bin/update

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.