Overview of template generated projectΒΆ
cookiecutter generates a boilerplate and setups tooling with focus on monothematic projects.
Generated project consists of:
Basic python package structure:
setup.py
- compatibility forpip install -e .
.setup.cfg
- package metadata and dependencies.pyproject.toml
- all tools configuration (if support is present)a very minimal python code + example test
pre-commit hooks:
black
,flake8
- enforce code stylejupytext
(optional) - sync jupyter notebooks to plain python filespycln
- cleanups unused importsmypy
- checks type errorsisort
- sorts importspylint
- provides static code analysis and enforces coding standardpyupgrade
- modernizes code for given python versionbandit
- checks for security issues - required for SOC 2 Certification
Sphinx documentation:
basic preconfigured documentation template
recommended extensions
page with list of autogenerated thirdparty python packages list with licenses
Basic script to create venv
Minimal README.md file
Preconfigured semantic versioning with bump2version
Dockerfile for pre-commit image
Gitlab integration (default, optional):
linter stage (
pre-commit run --all
)tests (
pytest
) + code coveragelicense checks of installed packages
building and hosting documentation on GitLab Pages
building package and uploading to private GitLab Package registry
security:
trivy
- required for SOC 2 Certificationsteps to rebuild linter docker image
Github integration (optional):
linter stage (
pre-commit run --all
)tests (
pytest
) + code coveragelicense checks of installed packages
building and hosting documentation on GitHub Pages (if enabled)
testing if package can be build
security:
trivy
- required for SOC 2 Certification, but is reporting only
Other less important files (more configurations,
.gitignore
etc)
Other pages contain more details.