Cookiecutter template for a Python package.
- GitHub repo: https://github.com/pymetrics/cookiecutter-python-library/
- Documentation: https://cookiecutter-python-library.readthedocs.io/
- Free software: BSD license
- Testing setup with
unittest
andpython setup.py test
orpytest
- Travis-CI: Ready for Travis Continuous Integration testing
- Tox testing: Setup to easily test for Python 3.7, 3.8, and 3.9, with optional support for Python 3.6
- Sphinx docs: Documentation ready for generation with, for example, Read the Docs
- bump2version: Pre-configured version bumping with a single command
- Auto-release to PyPI when you push a new tag to master (optional)
- Command line interface using Click or argparse (optional)
Install the latest Cookiecutter if you haven't installed it yet (this requires Cookiecutter 1.4.0 or higher):
pip install -U cookiecutter
Generate a Python package project:
cookiecutter https://github.com/pymetrics/cookiecutter-python-library.git
Then:
- Create a repo and put it there.
- Add the repo to your Travis-CI account.
- Install the dev requirements into a virtualenv. (
pip install -r requirements_dev.txt
) - Register your project with PyPI.
* Run
twine upload dist/*
. - For an open source project, create a PyPI API token, with scope limited to the project, for publishing.
- Set PyPI credentials in TravisCI environment variables
PYPI_USERNAME
andPYPI_PASSWORD
. * If using an API token, setPYPI_USERNAME
to__token__
. - Add the repo to your Read the Docs account + turn on the Read the Docs service hook.
- Release your package by pushing a new tag to master.
- Add a
requirements.txt
file that specifies the packages you will need for your project and their versions. For more info see the pip docs for requirements files.
For more details, see the cookiecutter-pypackage tutorial.
Forked from @audryr's cookiecutter-pypackage.