A Python project template for cookiecutter.
This is a template for a typical Python library following modern packaging conventions. It utilizes popular libraries alongside Make, Pandoc, and Graphviz to fully automate all development and deployment tasks.
A live demo of this template: jacebrowning/template-python-demo
And a few sample projects based on this template:
- jacebrowning/sappy
- theovoss/Chess
- sprout42/NamedStruct
- MichiganLabs/flask-gcm
- flask-restful/flask-restful
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.
- Preconfigured setup for Travis-CI, Coveralls, and Scrutinizer
Makefilefor automating common development tasks:- Setting up a
virtualenv - Installing dependencies using
pip - Running tests
- Running style checkers (
pep8/pep257) and linters (pylint) - Building documentation
- Creating and releasing distributions to PyPI
- Setting up a
To apply updates to an existing project, use the update branch and provide the same project details:
$ cd <parent directory of existing project>
$ cookiecutter gh:jacebrowning/template-python --checkout update
Then, discard all undesired changes before committing.
Checkout the appropriate branch of template-python-demo and manually merge changes into your project.