Bleeding edge Cookiecutter template for Python development
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Header logo

Cookiecutter template for bleeding edge Python development. See @audreyr/cookiecutter.

The template aspires adoption of new and exciting developer tools. Focus is on automation and keeping your repo DRY. Whenever justifiable, new and Python-native is preferred over "tried and true".


Automate everything. Banish tedious tasks. Ensure reproducibility. Minimize errors.

  • pytest for test discovery and automation
  • Travis for continuous integration
  • bumpversion for updating version numbers with one command
  • Invoke for task execution as a Python-native Make replacement
  • for integrating test coverage with GitHub


Embrace conventions. Don't fret details when you don't have to. Make it easy for others to help you out.

  • EditorConfig for maintaing consistent coding styles
  • wheel for the future standard in Python packaging
  • Sensible conventions with first class GitHub support like
  • Let setuptools generate virutal scripts for you by deep linking into your package (see for more details)


Level out inconsistencies between platforms. Virtualize. Simplify development. Inspire experimentation.

  • conda as an optional, improved "virtualenv" replacement
  • Vagrant to define and share development environments, provisioned by Ansible.

Python 2 vs. 3

Python 2.7.x isn't bleeding edge but it would be crazy to not officially support it. The compromise is developing for Python 3 first and ensure backwards compatability through a lightweight module.


In your projects folder, scaffold a brand new Python project:

$ cookiecutter


Not feeling adventurous?

Don't worry, you have options; fork, remix, and pull requests!

Similar Cookiecutter Templates

  • Nekroze/cookiecutter-pypackage: with PyTest test runner, strict flake8 checking with Travis/Tox, and some docs and differences.

  • tony/cookiecutter-pypackage: with py2.7+3.3 optimizations. Flask/Werkzeug-style test runner, _compat module and module/doc conventions. See README.rst or the github comparison view for exhaustive list of additions and modifications.

  • Also see the network and family tree for this repo. (If you find anything that should be listed here, please add it and send a pull request!)

Fork This / Create Your Own

If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn't strictly have to be a fork.

  • Once you have your own version working, add it to the Similar Cookiecutter Templates list above with a brief description.

  • It's up to you whether or not to rename your fork/own version. Do whatever you think sounds good.

Or Submit a Pull Request

I also accept pull requests on this repository provided they are small, atomic, and if they make the overall packaging experience better.