Cookiecutter template for bleeding edge Python development. See @audreyr/cookiecutter.
Forked from Maolir's customizations to Robin Andeer's PyVanguard template. See @maolir/cookiecutter-pyvanguard & @robinandeer/cookiecutter-pyvanguard.
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
CONTRIBUTING.md
- Let setuptools generate virutal scripts for you by deep linking into your package (see
setup.py
for more details)
Level out inconsistencies between platforms. Virtualize. Simplify development. Inspire experimentation.
- (future) Poetry for virtualenv and dependency management.
- Vagrant to define and share development environments, provisioned by Ansible.
It's 2020, Python 2.x is no longer supported.
In your projects folder, scaffold a brand new Python project:
$ cookiecutter https://github.com/jwiede/cookiecutter-pyvanguard.git
Then:
- 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
Don't worry, you have options; fork, remix, and pull requests!
-
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. SeeREADME.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!)
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.
I also accept pull requests on this repository provided they are small, atomic, and if they make the overall packaging experience better.