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
- Coveralls.io 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
setup.pyfor 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
In your projects folder, scaffold a brand new Python project:
$ cookiecutter https://github.com/robinandeer/cookiecutter-pyvanguard.git
- Create a repo and put it there.
- Add the repo to your Travis CI account.
- Sign up and activate your repo at coveralls.io.
- Release your package the standard Python way. Here's a release checklist: https://gist.github.com/audreyr/5990987
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 setup.py differences.
tony/cookiecutter-pypackage: with py2.7+3.3 optimizations. Flask/Werkzeug-style test runner,
_compatmodule and module/doc conventions. See
README.rstor the github comparison view for exhaustive list of additions and modifications.
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.