A cookiecutter for making new Python repositories for LIAC.
This is a fork from snekpack. We just customized some things that we always do in our repos.
Here are some resources to familiarize yourself with some concepts used in this template:
-
Install
cookiecutter
andGitPython
with:$ pip install cookiecutter GitPython
-
Run
cookiecutter
with:$ cookiecutter https://github.com/schwallergroup/liac-repo
-
Enter the requested information, then win! Remember, package names should only have letters, numbers, and underscores.
-
If you're working under version control, copy the repository into your folder tracked under git, commit the files, and push to your remote.
On top of snekpack's features, I automated the setting up Git as for us it's always the same.
Your new python package will have the following:
- Standard
src/
layout - Declarative setup with
setup.cfg
andpyproject.toml
- Reproducible tests with
pytest
andtox
- Reproducible notebooks with
treon
andtox
- A command line interface with
click
- A vanity CLI via python entrypoints
- Version management with
bump2version
- Documentation build with
sphinx
- Testing of documentation coverage with
docstr-coverage
intox
- Testing of documentation format and build in
tox
- Testing of package metadata completeness with
pyroma
intox
- Testing of MANIFEST correctness with
check-manifest
intox
- Testing of optional static typing with
mypy
intox
- A
py.typed
file so other packages can use your type hints - Automated running of tests on each push with GitHub Actions
- Configuration for ReadTheDocs
- A good base
.gitignore
generated from gitignore.io. - A pre-formatted README with badges
- A pre-formatted LICENSE file with the MIT License (you can change this to whatever you want, though)
- A pre-formatted CONTRIBUTING guide
- Automatic tool for releasing to PyPI with
tox -e finish
- A copy of the Contributor Covenant as a basic code of conduct
This cookiecutter package is licensed under the MIT License.