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:
pyproject.toml
- central configuration for build system, package metadata, dependencies, and tool configurations (including linters and formatters)a very minimal python code + example test
pre-commit hooks:
ruff
- fast linter and formatter that replaces the functionality of:black
- code formattingflake8
- style and lintingpycln
- unused imports cleanupisort
- import sortingpylint
- static code analysispyupgrade
- code modernization for given python versionbandit
- security issue detection - required for SOC 2 Certification
mypy
- static type checkingjupytext
- (optional) syncs jupyter notebooks to plain python files
Sphinx documentation:
basic preconfigured documentation template
recommended extensions
page with list of autogenerated third party 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.