oe-python-template 0.6.16__tar.gz → 0.6.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.copier-answers.yml +1 -1
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/CHANGELOG.md +24 -1
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/CONTRIBUTING.md +2 -9
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/PKG-INFO +1 -1
- oe_python_template-0.6.18/RELEASE_NOTES.md +14 -0
- oe_python_template-0.6.18/VERSION +1 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/_static/openapi_v1.yaml +32 -16
- oe_python_template-0.6.18/docs/source/_static/openapi_v2.json +62 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/_static/openapi_v2.yaml +32 -16
- oe_python_template-0.6.18/docs/source/api_v1.rst +9 -0
- oe_python_template-0.6.18/docs/source/api_v2.rst +9 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/conf.py +1 -1
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/noxfile.py +28 -2
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/pyproject.toml +2 -2
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/sonar-project.properties +1 -1
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/CONTRIBUTING.md.jinja +2 -9
- oe_python_template-0.6.18/template/docs/source/api_v1.rst.jinja +9 -0
- oe_python_template-0.6.18/template/docs/source/api_v2.rst.jinja +9 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/noxfile.py.jinja +28 -2
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/uv.lock +1 -1
- oe_python_template-0.6.16/RELEASE_NOTES.md +0 -8
- oe_python_template-0.6.16/VERSION +0 -1
- oe_python_template-0.6.16/docs/source/_static/openapi_v2.json +0 -262
- oe_python_template-0.6.16/docs/source/api_v1.rst +0 -15
- oe_python_template-0.6.16/docs/source/api_v2.rst +0 -15
- oe_python_template-0.6.16/template/docs/source/api_v1.rst.jinja +0 -15
- oe_python_template-0.6.16/template/docs/source/api_v2.rst.jinja +0 -15
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.act-env-public +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.devcontainer/Dockerfile +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.devcontainer/devcontainer.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.devcontainer/onCreateCommand +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.env.example +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/copilot-instructions.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/dependabot.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/prompts/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/workflows/codeql.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/workflows/docker-image-build-publish.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/workflows/package-build-publish-release.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.github/workflows/test-and-report.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.gitignore +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.pre-commit-config.yaml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.python-version +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.readthedocs.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.secrets.baseline +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.vscode/extensions.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/.vscode/settings.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/CODEOWNERS +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/CODE_STYLE.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/Dockerfile +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/LICENSE +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/README.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/SECURITY.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/SERVICE_CONNECTIONS.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/bin/git-cliff +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/codecov.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/compose.yaml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/copier.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/Makefile +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/make.bat +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/partials/README_footer.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/partials/README_header.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/partials/README_main.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/_static/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/_static/openapi_v1.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/code-style.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/contributing.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/index.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/latexmkrc +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/main.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/reference.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/release-notes.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/docs/source/security.rst +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/examples/__init__.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/examples/notebook.ipynb +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/examples/notebook.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/examples/script.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/examples/streamlit.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/github-action-run +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/logo.png +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/n +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/renovate.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/reports/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/src/oe_python_template/__init__.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/src/oe_python_template/api.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/src/oe_python_template/cli.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/src/oe_python_template/constants.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/src/oe_python_template/service.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.act-env-public.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.devcontainer/Dockerfile.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.devcontainer/devcontainer.json.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.devcontainer/onCreateCommand.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.devcontainer/postAttachCommand.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.devcontainer/postCreateCommand.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.env.example.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/copilot-instructions.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/dependabot.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/workflows/codeql.yml +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.github/workflows/test-and-report.yml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.gitignore.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.pre-commit-config.yaml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.python-version +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.readthedocs.yml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.vscode/extensions.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/.vscode/settings.json.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/CHANGELOG.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/CODEOWNERS.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/CODE_STYLE.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/Dockerfile.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/LICENSE.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/README.md +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/SECURITY.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/SERVICE_CONNECTIONS.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/VERSION +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/codecov.yml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/compose.yaml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/Makefile.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/make.bat.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/partials/README_footer.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/partials/README_header.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/partials/README_main.md.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/_static/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/code-style.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/conf.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/contributing.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/index.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/main.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/reference.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/release-notes.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/docs/source/security.rst.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/examples/__init__.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/examples/notebook.ipynb.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/examples/notebook.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/examples/script.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/examples/streamlit.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/github-action-run.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/logo.png +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/n.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/pyproject.toml.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/renovate.json +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/reports/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/sonar-project.properties.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/src/{{ project_name_snake_case }}/api.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/tests/__init__.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/tests/api_test.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/tests/cli_test.py.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/tests/fixtures/.keep +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/template/{{_copier_conf.answers_file}}.jinja +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/tests/__init__.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/tests/api_test.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/tests/cli_test.py +0 -0
- {oe_python_template-0.6.16 → oe_python_template-0.6.18}/tests/fixtures/.keep +0 -0
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
[🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
|
|
2
2
|
|
|
3
|
-
## [0.6.
|
|
3
|
+
## [0.6.18](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.17..0.6.18) - 2025-03-18
|
|
4
|
+
|
|
5
|
+
### 📚 Documentation
|
|
6
|
+
|
|
7
|
+
- *(api)* Pdf - ([ecd7dda](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/ecd7dda9fedc464976b5b2f8afa56cf0a35c645f))
|
|
8
|
+
|
|
9
|
+
### ⚙️ Miscellaneous Tasks
|
|
10
|
+
|
|
11
|
+
- *(rtd)* Debug - ([80703d7](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/80703d734a8cd77e35aad6aec14bdefb9d61ed51))
|
|
12
|
+
- Debug rtd - ([bc760ac](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/bc760aca603950b8dd1cf5c77241b2f8ccc091d2))
|
|
13
|
+
- Debug rtd pdf link - ([192df7f](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/192df7f2552180eb721fd21b32f9e074c0f35073))
|
|
14
|
+
|
|
15
|
+
## New Contributors ❤️
|
|
16
|
+
|
|
17
|
+
* @helmut-hoffer-von-ankershoffen made their first contribution
|
|
18
|
+
|
|
19
|
+
## [0.6.17](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.16..v0.6.17) - 2025-03-18
|
|
20
|
+
|
|
21
|
+
### ⛰️ Features
|
|
22
|
+
|
|
23
|
+
- *(docs_pdf)* Check for latex tooling - ([3c35f28](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/3c35f280652557650e4aa40c8b459ed42c536a65))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [0.6.16](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.15..v0.6.16) - 2025-03-18
|
|
4
27
|
|
|
5
28
|
### ⛰️ Features
|
|
6
29
|
|
|
@@ -88,9 +88,10 @@ uv run nox -s test # run tests
|
|
|
88
88
|
uv run nox -s lint # run formatting and linting
|
|
89
89
|
uv run nox -s audit # run security and license audit, inc. sbom generation
|
|
90
90
|
uv run nox -s docs # build documentation, output in docs/build/html
|
|
91
|
+
uv run nox -s docs_pdf # locally build pdf manual to docs/build/latex/oe-python-template.pdf
|
|
91
92
|
```
|
|
92
93
|
|
|
93
|
-
As a shortcut, you can run build steps using `./n
|
|
94
|
+
As a shortcut, you can run build steps using `./n`, e.g.
|
|
94
95
|
|
|
95
96
|
```shell
|
|
96
97
|
./n test
|
|
@@ -137,14 +138,6 @@ Update from template
|
|
|
137
138
|
uv run nox -s update_from_template
|
|
138
139
|
```
|
|
139
140
|
|
|
140
|
-
### Generate PDF manual
|
|
141
|
-
|
|
142
|
-
```shell
|
|
143
|
-
brew install mactex # install MacTeX, will take a while and requires sudo
|
|
144
|
-
./n docs_pdf # build latex, then generate pdf from it. Output in docs/build/latex/oe-python-template.pdf
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
|
|
148
141
|
## Pull Request Guidelines
|
|
149
142
|
|
|
150
143
|
- Before starting to write code read the [code style guide](CODE_STYLE.md) document for mandatory coding style
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oe-python-template
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.18
|
|
4
4
|
Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
|
|
5
5
|
Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
|
|
6
6
|
Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
## [0.6.18](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.17..v0.6.18) - 2025-03-18
|
|
2
|
+
|
|
3
|
+
### 📚 Documentation
|
|
4
|
+
|
|
5
|
+
- *(api)* Pdf - ([ecd7dda](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/ecd7dda9fedc464976b5b2f8afa56cf0a35c645f))
|
|
6
|
+
|
|
7
|
+
### ⚙️ Miscellaneous Tasks
|
|
8
|
+
|
|
9
|
+
- *(rtd)* Debug - ([80703d7](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/80703d734a8cd77e35aad6aec14bdefb9d61ed51))
|
|
10
|
+
- Debug rtd - ([bc760ac](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/bc760aca603950b8dd1cf5c77241b2f8ccc091d2))
|
|
11
|
+
- Debug rtd pdf link - ([192df7f](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/192df7f2552180eb721fd21b32f9e074c0f35073))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.6.18
|
|
@@ -104,9 +104,12 @@ openapi: 3.1.0
|
|
|
104
104
|
paths:
|
|
105
105
|
/echo:
|
|
106
106
|
post:
|
|
107
|
-
description: "Echo back the provided text.\n\nArgs:\n request
|
|
108
|
-
|
|
109
|
-
\
|
|
107
|
+
description: "Echo back the provided text.\n\nArgs:\n request
|
|
108
|
+
(EchoRequest):\
|
|
109
|
+
\ The request containing the text to echo back.\n\nReturns:\n
|
|
110
|
+
EchoResponse:\
|
|
111
|
+
\ A response containing the echoed text.\n\nRaises:\n 422
|
|
112
|
+
Unprocessable\
|
|
110
113
|
\ Entity: If text is not provided or empty."
|
|
111
114
|
operationId: echo_echo_post
|
|
112
115
|
requestBody:
|
|
@@ -133,12 +136,18 @@ paths:
|
|
|
133
136
|
- Basics
|
|
134
137
|
/health:
|
|
135
138
|
get:
|
|
136
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
description: "Check the health of the service.\n\nThis endpoint returns
|
|
140
|
+
the\
|
|
141
|
+
\ health status of the service.\nThe health status can be either UP or
|
|
142
|
+
DOWN.\n\
|
|
143
|
+
If the service is healthy, the status will be UP.\nIf the service is
|
|
144
|
+
unhealthy,\
|
|
145
|
+
\ the status will be DOWN and a reason will be provided.\nThe response
|
|
146
|
+
will\
|
|
147
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500
|
|
148
|
+
Internal\
|
|
149
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
|
150
|
+
Health:\
|
|
142
151
|
\ The health status of the service."
|
|
143
152
|
operationId: health_health_get
|
|
144
153
|
responses:
|
|
@@ -153,12 +162,18 @@ paths:
|
|
|
153
162
|
- Observability
|
|
154
163
|
/healthz:
|
|
155
164
|
get:
|
|
156
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
description: "Check the health of the service.\n\nThis endpoint returns
|
|
166
|
+
the\
|
|
167
|
+
\ health status of the service.\nThe health status can be either UP or
|
|
168
|
+
DOWN.\n\
|
|
169
|
+
If the service is healthy, the status will be UP.\nIf the service is
|
|
170
|
+
unhealthy,\
|
|
171
|
+
\ the status will be DOWN and a reason will be provided.\nThe response
|
|
172
|
+
will\
|
|
173
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500
|
|
174
|
+
Internal\
|
|
175
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
|
176
|
+
Health:\
|
|
162
177
|
\ The health status of the service."
|
|
163
178
|
operationId: health_healthz_get
|
|
164
179
|
responses:
|
|
@@ -173,7 +188,8 @@ paths:
|
|
|
173
188
|
- Observability
|
|
174
189
|
/hello-world:
|
|
175
190
|
get:
|
|
176
|
-
description: "Return a hello world message.\n\nReturns:\n
|
|
191
|
+
description: "Return a hello world message.\n\nReturns:\n
|
|
192
|
+
HelloWorldResponse:\
|
|
177
193
|
\ A response containing the hello world message."
|
|
178
194
|
operationId: hello_world_hello_world_get
|
|
179
195
|
responses:
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Traceback (most recent call last):
|
|
2
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/bin/oe-python-template", line 4, in <module>
|
|
3
|
+
from oe_python_template.cli import cli
|
|
4
|
+
File "/Users/helmut/Code/oe-python-template/src/oe_python_template/cli.py", line 13, in <module>
|
|
5
|
+
from oe_python_template.api import api_v1, api_v2
|
|
6
|
+
File "/Users/helmut/Code/oe-python-template/src/oe_python_template/api.py", line 16, in <module>
|
|
7
|
+
from fastapi import Depends, FastAPI, Response, status
|
|
8
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/__init__.py", line 7, in <module>
|
|
9
|
+
from .applications import FastAPI as FastAPI
|
|
10
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/applications.py", line 16, in <module>
|
|
11
|
+
from fastapi import routing
|
|
12
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/routing.py", line 24, in <module>
|
|
13
|
+
from fastapi import params
|
|
14
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/params.py", line 5, in <module>
|
|
15
|
+
from fastapi.openapi.models import Example
|
|
16
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/openapi/models.py", line 4, in <module>
|
|
17
|
+
from fastapi._compat import (
|
|
18
|
+
...<6 lines>...
|
|
19
|
+
)
|
|
20
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/_compat.py", line 21, in <module>
|
|
21
|
+
from fastapi.exceptions import RequestErrorModel
|
|
22
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/exceptions.py", line 139, in <module>
|
|
23
|
+
RequestErrorModel: Type[BaseModel] = create_model("Request")
|
|
24
|
+
~~~~~~~~~~~~^^^^^^^^^^^
|
|
25
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/pydantic/main.py", line 1678, in create_model
|
|
26
|
+
return meta(
|
|
27
|
+
model_name,
|
|
28
|
+
...<4 lines>...
|
|
29
|
+
**kwds,
|
|
30
|
+
)
|
|
31
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py", line 224, in __new__
|
|
32
|
+
complete_model_class(
|
|
33
|
+
~~~~~~~~~~~~~~~~~~~~^
|
|
34
|
+
cls,
|
|
35
|
+
^^^^
|
|
36
|
+
...<4 lines>...
|
|
37
|
+
create_model_module=_create_model_module,
|
|
38
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
39
|
+
)
|
|
40
|
+
^
|
|
41
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/pydantic/_internal/_model_construction.py", line 620, in complete_model_class
|
|
42
|
+
cls.__pydantic_validator__ = create_schema_validator(
|
|
43
|
+
~~~~~~~~~~~~~~~~~~~~~~~^
|
|
44
|
+
schema,
|
|
45
|
+
^^^^^^^
|
|
46
|
+
...<5 lines>...
|
|
47
|
+
config_wrapper.plugin_settings,
|
|
48
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
49
|
+
)
|
|
50
|
+
^
|
|
51
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/pydantic/plugin/_schema_validator.py", line 38, in create_schema_validator
|
|
52
|
+
plugins = get_plugins()
|
|
53
|
+
File "/Users/helmut/Code/oe-python-template/.nox/docs-3-13/lib/python3.13/site-packages/pydantic/plugin/_loader.py", line 39, in get_plugins
|
|
54
|
+
for entry_point in dist.entry_points:
|
|
55
|
+
^^^^^^^^^^^^^^^^^
|
|
56
|
+
File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/metadata/__init__.py", line 496, in entry_points
|
|
57
|
+
return EntryPoints._from_text_for(self.read_text('entry_points.txt'), self)
|
|
58
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
59
|
+
File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/metadata/__init__.py", line 294, in _from_text_for
|
|
60
|
+
@classmethod
|
|
61
|
+
|
|
62
|
+
KeyboardInterrupt
|
|
@@ -104,9 +104,12 @@ openapi: 3.1.0
|
|
|
104
104
|
paths:
|
|
105
105
|
/echo:
|
|
106
106
|
post:
|
|
107
|
-
description: "Echo back the provided utterance.\n\nArgs:\n request
|
|
108
|
-
|
|
109
|
-
\
|
|
107
|
+
description: "Echo back the provided utterance.\n\nArgs:\n request
|
|
108
|
+
(Utterance):\
|
|
109
|
+
\ The request containing the utterance to echo back.\n\nReturns:\n
|
|
110
|
+
EchoResponse:\
|
|
111
|
+
\ A response containing the echoed utterance.\n\nRaises:\n 422
|
|
112
|
+
Unprocessable\
|
|
110
113
|
\ Entity: If utterance is not provided or empty."
|
|
111
114
|
operationId: echo_v2_echo_post
|
|
112
115
|
requestBody:
|
|
@@ -133,12 +136,18 @@ paths:
|
|
|
133
136
|
- Basics
|
|
134
137
|
/health:
|
|
135
138
|
get:
|
|
136
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
description: "Check the health of the service.\n\nThis endpoint returns
|
|
140
|
+
the\
|
|
141
|
+
\ health status of the service.\nThe health status can be either UP or
|
|
142
|
+
DOWN.\n\
|
|
143
|
+
If the service is healthy, the status will be UP.\nIf the service is
|
|
144
|
+
unhealthy,\
|
|
145
|
+
\ the status will be DOWN and a reason will be provided.\nThe response
|
|
146
|
+
will\
|
|
147
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500
|
|
148
|
+
Internal\
|
|
149
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
|
150
|
+
Health:\
|
|
142
151
|
\ The health status of the service."
|
|
143
152
|
operationId: health_health_get
|
|
144
153
|
responses:
|
|
@@ -153,12 +162,18 @@ paths:
|
|
|
153
162
|
- Observability
|
|
154
163
|
/healthz:
|
|
155
164
|
get:
|
|
156
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
description: "Check the health of the service.\n\nThis endpoint returns
|
|
166
|
+
the\
|
|
167
|
+
\ health status of the service.\nThe health status can be either UP or
|
|
168
|
+
DOWN.\n\
|
|
169
|
+
If the service is healthy, the status will be UP.\nIf the service is
|
|
170
|
+
unhealthy,\
|
|
171
|
+
\ the status will be DOWN and a reason will be provided.\nThe response
|
|
172
|
+
will\
|
|
173
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500
|
|
174
|
+
Internal\
|
|
175
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
|
176
|
+
Health:\
|
|
162
177
|
\ The health status of the service."
|
|
163
178
|
operationId: health_healthz_get
|
|
164
179
|
responses:
|
|
@@ -173,7 +188,8 @@ paths:
|
|
|
173
188
|
- Observability
|
|
174
189
|
/hello-world:
|
|
175
190
|
get:
|
|
176
|
-
description: "Return a hello world message.\n\nReturns:\n
|
|
191
|
+
description: "Return a hello world message.\n\nReturns:\n
|
|
192
|
+
HelloWorldResponse:\
|
|
177
193
|
\ A response containing the hello world message."
|
|
178
194
|
operationId: hello_world_hello_world_get
|
|
179
195
|
responses:
|
|
@@ -29,7 +29,7 @@ extensions = [
|
|
|
29
29
|
project = "oe-python-template"
|
|
30
30
|
author = "Helmut Hoffer von Ankershoffen"
|
|
31
31
|
copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
|
|
32
|
-
version = "0.6.
|
|
32
|
+
version = "0.6.18"
|
|
33
33
|
release = version
|
|
34
34
|
github_username = "helmut-hoffer-von-ankershoffen"
|
|
35
35
|
github_repository = "oe-python-template"
|
|
@@ -7,11 +7,13 @@ from pathlib import Path
|
|
|
7
7
|
|
|
8
8
|
import nox
|
|
9
9
|
import tomli
|
|
10
|
+
from nox.command import CommandFailed
|
|
10
11
|
|
|
11
12
|
nox.options.reuse_existing_virtualenvs = True
|
|
12
13
|
nox.options.default_venv_backend = "uv"
|
|
13
14
|
|
|
14
15
|
NOT_SKIP_WITH_ACT = "not skip_with_act"
|
|
16
|
+
LATEXMK_VERSION_MIN = 4.86
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
def _setup_venv(session: nox.Session, all_extras: bool = True) -> None:
|
|
@@ -84,9 +86,33 @@ def docs(session: nox.Session) -> None:
|
|
|
84
86
|
|
|
85
87
|
@nox.session(python=["3.13"], default=False)
|
|
86
88
|
def docs_pdf(session: nox.Session) -> None:
|
|
87
|
-
"""Setup dev environment post project creation."""
|
|
89
|
+
"""Setup dev environment post project creation.""" # noqa: DOC501
|
|
88
90
|
_setup_venv(session)
|
|
89
|
-
|
|
91
|
+
try:
|
|
92
|
+
out = session.run("latexmk", "--version", external=True, silent=True)
|
|
93
|
+
|
|
94
|
+
version_match = re.search(r"Version (\d+\.\d+\w*)", str(out))
|
|
95
|
+
if not version_match:
|
|
96
|
+
session.error("Could not determine latexmk version")
|
|
97
|
+
|
|
98
|
+
version_str = version_match.group(1)
|
|
99
|
+
|
|
100
|
+
# Parse version (handle cases like "4.86a")
|
|
101
|
+
match = re.match(r"(\d+\.\d+)", version_str)
|
|
102
|
+
if not match:
|
|
103
|
+
session.error(f"Could not parse version number from '{version_str}'")
|
|
104
|
+
base_version = match.group(1)
|
|
105
|
+
|
|
106
|
+
if float(base_version) < LATEXMK_VERSION_MIN:
|
|
107
|
+
message = f"latexmk version {version_str} is outdated. Please run 'brew upgrade mactex' to upgrade."
|
|
108
|
+
raise ValueError(message) # noqa: TRY301
|
|
109
|
+
session.log(f"latexmk version {version_str} is sufficient")
|
|
110
|
+
session.run("make", "-C", "docs", "latexpdf", external=True)
|
|
111
|
+
|
|
112
|
+
except CommandFailed as e:
|
|
113
|
+
session.error(f"latexmk is not installed or not in PATH: {e}. Please run 'brew install mactex' to install")
|
|
114
|
+
except (ValueError, AttributeError) as e:
|
|
115
|
+
session.error(f"Failed to parse latexmk version information: {e}")
|
|
90
116
|
|
|
91
117
|
|
|
92
118
|
@nox.session(python=["3.13"])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "oe-python-template"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.18"
|
|
4
4
|
description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -242,7 +242,7 @@ source = ["src/"]
|
|
|
242
242
|
|
|
243
243
|
|
|
244
244
|
[tool.bumpversion]
|
|
245
|
-
current_version = "0.6.
|
|
245
|
+
current_version = "0.6.18"
|
|
246
246
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
247
247
|
serialize = ["{major}.{minor}.{patch}"]
|
|
248
248
|
search = "{current_version}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template
|
|
2
2
|
sonar.organization=helmut-hoffer-von-ankershoffen
|
|
3
|
-
sonar.projectVersion=0.6.
|
|
3
|
+
sonar.projectVersion=0.6.18
|
|
4
4
|
sonar.projectDescription=🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
|
|
5
5
|
sonar.links.homepage=https://oe-python-template.readthedocs.io/en/latest/
|
|
6
6
|
sonar.links.scm=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template
|
|
@@ -88,9 +88,10 @@ uv run nox -s test # run tests
|
|
|
88
88
|
uv run nox -s lint # run formatting and linting
|
|
89
89
|
uv run nox -s audit # run security and license audit, inc. sbom generation
|
|
90
90
|
uv run nox -s docs # build documentation, output in docs/build/html
|
|
91
|
+
uv run nox -s docs_pdf # locally build pdf manual to docs/build/latex/{{ pypi_distribution_name }}.pdf
|
|
91
92
|
```
|
|
92
93
|
|
|
93
|
-
As a shortcut, you can run build steps using `./n
|
|
94
|
+
As a shortcut, you can run build steps using `./n`, e.g.
|
|
94
95
|
|
|
95
96
|
```shell
|
|
96
97
|
./n test
|
|
@@ -137,14 +138,6 @@ Update from template
|
|
|
137
138
|
uv run nox -s update_from_template
|
|
138
139
|
```
|
|
139
140
|
|
|
140
|
-
### Generate PDF manual
|
|
141
|
-
|
|
142
|
-
```shell
|
|
143
|
-
brew install mactex # install MacTeX, will take a while and requires sudo
|
|
144
|
-
./n docs_pdf # build latex, then generate pdf from it. Output in docs/build/latex/{{ pypi_distribution_name }}.pdf
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
|
|
148
141
|
## Pull Request Guidelines
|
|
149
142
|
|
|
150
143
|
- Before starting to write code read the [code style guide](CODE_STYLE.md) document for mandatory coding style
|
|
@@ -7,11 +7,13 @@ from pathlib import Path
|
|
|
7
7
|
|
|
8
8
|
import nox
|
|
9
9
|
import tomli
|
|
10
|
+
from nox.command import CommandFailed
|
|
10
11
|
|
|
11
12
|
nox.options.reuse_existing_virtualenvs = True
|
|
12
13
|
nox.options.default_venv_backend = "uv"
|
|
13
14
|
|
|
14
15
|
NOT_SKIP_WITH_ACT = "not skip_with_act"
|
|
16
|
+
LATEXMK_VERSION_MIN = 4.86
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
def _setup_venv(session: nox.Session, all_extras: bool = True) -> None:
|
|
@@ -84,9 +86,33 @@ def docs(session: nox.Session) -> None:
|
|
|
84
86
|
|
|
85
87
|
@nox.session(python=["3.13"], default=False)
|
|
86
88
|
def docs_pdf(session: nox.Session) -> None:
|
|
87
|
-
"""Setup dev environment post project creation."""
|
|
89
|
+
"""Setup dev environment post project creation.""" # noqa: DOC501
|
|
88
90
|
_setup_venv(session)
|
|
89
|
-
|
|
91
|
+
try:
|
|
92
|
+
out = session.run("latexmk", "--version", external=True, silent=True)
|
|
93
|
+
|
|
94
|
+
version_match = re.search(r"Version (\d+\.\d+\w*)", str(out))
|
|
95
|
+
if not version_match:
|
|
96
|
+
session.error("Could not determine latexmk version")
|
|
97
|
+
|
|
98
|
+
version_str = version_match.group(1)
|
|
99
|
+
|
|
100
|
+
# Parse version (handle cases like "4.86a")
|
|
101
|
+
match = re.match(r"(\d+\.\d+)", version_str)
|
|
102
|
+
if not match:
|
|
103
|
+
session.error(f"Could not parse version number from '{version_str}'")
|
|
104
|
+
base_version = match.group(1)
|
|
105
|
+
|
|
106
|
+
if float(base_version) < LATEXMK_VERSION_MIN:
|
|
107
|
+
message = f"latexmk version {version_str} is outdated. Please run 'brew upgrade mactex' to upgrade."
|
|
108
|
+
raise ValueError(message) # noqa: TRY301
|
|
109
|
+
session.log(f"latexmk version {version_str} is sufficient")
|
|
110
|
+
session.run("make", "-C", "docs", "latexpdf", external=True)
|
|
111
|
+
|
|
112
|
+
except CommandFailed as e:
|
|
113
|
+
session.error(f"latexmk is not installed or not in PATH: {e}. Please run 'brew install mactex' to install")
|
|
114
|
+
except (ValueError, AttributeError) as e:
|
|
115
|
+
session.error(f"Failed to parse latexmk version information: {e}")
|
|
90
116
|
|
|
91
117
|
|
|
92
118
|
@nox.session(python=["3.13"])
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
## [0.6.16](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.15..v0.6.16) - 2025-03-18
|
|
2
|
-
|
|
3
|
-
### ⛰️ Features
|
|
4
|
-
|
|
5
|
-
- *(codeql)* Enable security-extended and security-and-quality - ([0dead53](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/0dead53a748967132eb80f570b44d038a88788e5))
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.6.16
|