This Cookiecutter is a basic Python Package template that contains:
setup.cfg
-> declarative definition of the package and its dependenciesdev
extras -> minimal toolkit for effective high-quality developmentpdoc3
-> documentation builderflake8
-> linter of choicetwine
-> to upload packagesautopep8
-> autoformatter that complementsflake8
pytest
-> test runner- I generally use
unittest
, howeverpytest
sometimes comes in handy as a runner with itsmarker
feature.
- I generally use
flake8
config -> opinionated config that does not depart from PEP8 too far but adds some sane linter config mods like extending the max line lenght to 100 characters
noxfile.py
-> my lint/test/build/deployment automation tool of choice- I usually use it both when developing and when running CI jobs for consistency
- I find
tox
obnoxiously inflexible and the INI-format config file fortox
is absurd
.coveragerc
->coverage.py
config.editorconfig
-> so that your editor opens the file formats we care about in a proper mannerREADME.md
template -> no project should be left without at least a basic readme as a piece of documentation- Source Code directory template -> with a sane layout named after the package itself (not
src
, which I frankly despise) and a tiny command-line application inmain.py
, since I never remember how to put things together inargparse
.