template-python

by jacebrowning

jacebrowning / template-python

A template for new Python libraries.

437 Stars 62 Forks Last release: Not found Do What The F*ck You Want To Public License 869 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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 Travis CI, Coveralls, and Scrutinizer
  • 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.