Skip to content

Latest commit

 

History

History
91 lines (65 loc) · 4.31 KB

README.md

File metadata and controls

91 lines (65 loc) · 4.31 KB

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".

Automation

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

Standardization

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 CONTRIBUTING.md
  • Let setuptools generate virutal scripts for you by deep linking into your package (see setup.py for more details)

Comparmentalization

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 _compat.py module.

Usage

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

$ cookiecutter https://github.com/robinandeer/cookiecutter-pyvanguard.git

Then:

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, _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.