oe-python-template 0.6.21__tar.gz → 0.6.22__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.
Files changed (170) hide show
  1. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.copier-answers.yml +1 -1
  2. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/workflows/codeql.yml +1 -1
  3. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/CHANGELOG.md +8 -1
  4. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/PKG-INFO +21 -10
  5. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/README.md +20 -9
  6. oe_python_template-0.6.22/RELEASE_NOTES.md +8 -0
  7. oe_python_template-0.6.22/VERSION +1 -0
  8. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/partials/README_main.md +20 -9
  9. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/conf.py +1 -1
  10. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/pyproject.toml +2 -2
  11. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/sonar-project.properties +1 -1
  12. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/workflows/codeql.yml +1 -1
  13. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/partials/README_main.md.jinja +20 -9
  14. oe_python_template-0.6.22/tests/fixtures/.keep +0 -0
  15. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/uv.lock +1 -1
  16. oe_python_template-0.6.21/RELEASE_NOTES.md +0 -8
  17. oe_python_template-0.6.21/VERSION +0 -1
  18. oe_python_template-0.6.21/docs/source/_static/openapi_v1.yaml +0 -188
  19. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.act-env-public +0 -0
  20. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.devcontainer/Dockerfile +0 -0
  21. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.devcontainer/devcontainer.json +0 -0
  22. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.devcontainer/onCreateCommand +0 -0
  23. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.devcontainer/postAttachCommand +0 -0
  24. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.devcontainer/postCreateCommand +0 -0
  25. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.env.example +0 -0
  26. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/copilot-instructions.md +0 -0
  27. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/dependabot.yml +0 -0
  28. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/prompts/.keep +0 -0
  29. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/workflows/docker-image-build-publish.yml +0 -0
  30. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/workflows/package-build-publish-release.yml +0 -0
  31. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.github/workflows/test-and-report.yml +0 -0
  32. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.gitignore +0 -0
  33. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.pre-commit-config.yaml +0 -0
  34. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.python-version +0 -0
  35. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.readthedocs.yml +0 -0
  36. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.secrets.baseline +0 -0
  37. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.vscode/extensions.json +0 -0
  38. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/.vscode/settings.json +0 -0
  39. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/CODEOWNERS +0 -0
  40. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/CODE_STYLE.md +0 -0
  41. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/CONTRIBUTING.md +0 -0
  42. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/Dockerfile +0 -0
  43. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/LICENSE +0 -0
  44. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/SECURITY.md +0 -0
  45. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/SERVICE_CONNECTIONS.md +0 -0
  46. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/bin/git-cliff +0 -0
  47. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/codecov.yml +0 -0
  48. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/compose.yaml +0 -0
  49. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/copier.yml +0 -0
  50. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/Makefile +0 -0
  51. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/make.bat +0 -0
  52. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/partials/README_footer.md +0 -0
  53. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/partials/README_header.md +0 -0
  54. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/_static/.keep +0 -0
  55. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/_static/openapi_v1.json +0 -0
  56. /oe_python_template-0.6.21/reports/.keep → /oe_python_template-0.6.22/docs/source/_static/openapi_v1.yaml +0 -0
  57. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/_static/openapi_v2.json +0 -0
  58. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/_static/openapi_v2.yaml +0 -0
  59. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/api_v1.rst +0 -0
  60. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/api_v1.rst.jinja +0 -0
  61. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/api_v2.rst +0 -0
  62. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/api_v2.rst.jinja +0 -0
  63. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/code-style.rst +0 -0
  64. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/contributing.rst +0 -0
  65. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/index.rst +0 -0
  66. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/latexmkrc +0 -0
  67. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/main.rst +0 -0
  68. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/reference.rst +0 -0
  69. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/release-notes.rst +0 -0
  70. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/docs/source/security.rst +0 -0
  71. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/examples/__init__.py +0 -0
  72. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/examples/notebook.ipynb +0 -0
  73. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/examples/notebook.py +0 -0
  74. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/examples/script.py +0 -0
  75. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/examples/streamlit.py +0 -0
  76. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  77. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  78. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  79. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/README.md +0 -0
  80. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  81. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
  82. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
  83. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
  84. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
  85. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/git-cliff-completions +0 -0
  86. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  87. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
  88. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  89. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/github-action-run +0 -0
  90. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/logo.png +0 -0
  91. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/n +0 -0
  92. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/noxfile.py +0 -0
  93. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/renovate.json +0 -0
  94. {oe_python_template-0.6.21/template/docs/source/_static → oe_python_template-0.6.22/reports}/.keep +0 -0
  95. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/src/oe_python_template/__init__.py +0 -0
  96. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/src/oe_python_template/api.py +0 -0
  97. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/src/oe_python_template/cli.py +0 -0
  98. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/src/oe_python_template/constants.py +0 -0
  99. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/src/oe_python_template/service.py +0 -0
  100. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.act-env-public.jinja +0 -0
  101. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.devcontainer/Dockerfile.jinja +0 -0
  102. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.devcontainer/devcontainer.json.jinja +0 -0
  103. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.devcontainer/onCreateCommand.jinja +0 -0
  104. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.devcontainer/postAttachCommand.jinja +0 -0
  105. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.devcontainer/postCreateCommand.jinja +0 -0
  106. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.env.example.jinja +0 -0
  107. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/copilot-instructions.md +0 -0
  108. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/dependabot.yml +0 -0
  109. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
  110. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
  111. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.github/workflows/test-and-report.yml.jinja +0 -0
  112. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.gitignore.jinja +0 -0
  113. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.pre-commit-config.yaml.jinja +0 -0
  114. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.python-version +0 -0
  115. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.readthedocs.yml.jinja +0 -0
  116. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.vscode/extensions.json +0 -0
  117. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/.vscode/settings.json.jinja +0 -0
  118. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/CHANGELOG.md +0 -0
  119. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/CODEOWNERS.jinja +0 -0
  120. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/CODE_STYLE.md.jinja +0 -0
  121. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/CONTRIBUTING.md.jinja +0 -0
  122. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/Dockerfile.jinja +0 -0
  123. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/LICENSE.jinja +0 -0
  124. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/README.md +0 -0
  125. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/SECURITY.md.jinja +0 -0
  126. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/SERVICE_CONNECTIONS.md.jinja +0 -0
  127. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/VERSION +0 -0
  128. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/codecov.yml.jinja +0 -0
  129. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/compose.yaml.jinja +0 -0
  130. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/Makefile.jinja +0 -0
  131. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/make.bat.jinja +0 -0
  132. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/partials/README_footer.md.jinja +0 -0
  133. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/partials/README_header.md.jinja +0 -0
  134. {oe_python_template-0.6.21/template/reports → oe_python_template-0.6.22/template/docs/source/_static}/.keep +0 -0
  135. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/api_v1.rst.jinja +0 -0
  136. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/api_v2.rst.jinja +0 -0
  137. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/code-style.rst.jinja +0 -0
  138. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/conf.py.jinja +0 -0
  139. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/contributing.rst.jinja +0 -0
  140. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/index.rst.jinja +0 -0
  141. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/main.rst.jinja +0 -0
  142. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/reference.rst.jinja +0 -0
  143. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/release-notes.rst.jinja +0 -0
  144. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/docs/source/security.rst.jinja +0 -0
  145. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/examples/__init__.py.jinja +0 -0
  146. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/examples/notebook.ipynb.jinja +0 -0
  147. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/examples/notebook.py.jinja +0 -0
  148. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/examples/script.py.jinja +0 -0
  149. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/examples/streamlit.py.jinja +0 -0
  150. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/github-action-run.jinja +0 -0
  151. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/logo.png +0 -0
  152. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/n.jinja +0 -0
  153. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/noxfile.py.jinja +0 -0
  154. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/pyproject.toml.jinja +0 -0
  155. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/renovate.json +0 -0
  156. {oe_python_template-0.6.21/template/tests/fixtures → oe_python_template-0.6.22/template/reports}/.keep +0 -0
  157. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/sonar-project.properties.jinja +0 -0
  158. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
  159. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/src/{{ project_name_snake_case }}/api.py.jinja +0 -0
  160. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
  161. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
  162. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
  163. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/tests/__init__.py.jinja +0 -0
  164. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/tests/api_test.py.jinja +0 -0
  165. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/tests/cli_test.py.jinja +0 -0
  166. {oe_python_template-0.6.21 → oe_python_template-0.6.22/template}/tests/fixtures/.keep +0 -0
  167. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/template/{{_copier_conf.answers_file}}.jinja +0 -0
  168. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/tests/__init__.py +0 -0
  169. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/tests/api_test.py +0 -0
  170. {oe_python_template-0.6.21 → oe_python_template-0.6.22}/tests/cli_test.py +0 -0
@@ -1,4 +1,4 @@
1
- _commit: v0.6.20-1-gd9c2a33
1
+ _commit: v0.6.21-1-g6baf50a
2
2
  _src_path: .
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -59,7 +59,7 @@ jobs:
59
59
  - name: Checkout repository
60
60
  uses: actions/checkout@v4
61
61
 
62
- # Add any setup steps before running the `github/codeql-action/init` action.
62
+ # Add any setup steps before running the `github/codeql-action/init` action.
63
63
  # This includes steps like installing compilers or runtimes (`actions/setup-node`
64
64
  # or others). This is typically only required for manual builds.
65
65
  # - name: Setup runtime (example)
@@ -1,6 +1,13 @@
1
1
  [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
2
 
3
- ## [0.6.21](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.20..0.6.21) - 2025-03-18
3
+ ## [0.6.22](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.21..0.6.22) - 2025-03-19
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Polish - ([9af66c9](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/9af66c97bb04eeebd63395cff33b5a650dd081aa))
8
+
9
+
10
+ ## [0.6.21](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.20..v0.6.21) - 2025-03-18
4
11
 
5
12
  ### ⚙️ Miscellaneous Tasks
6
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.6.21
3
+ Version: 0.6.22
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/
@@ -104,9 +104,19 @@ Description-Content-Type: text/markdown
104
104
  Copier template to scaffold Python projects compliant with best practices and modern tooling.
105
105
 
106
106
  Use Cases:
107
- 1) Fast and easy to use project setup
108
- 2) Consistent update of already scaffolded projects to benefit from new and improved features.
109
- 3) Dummy CLI application and service demonstrating example usage of the generated directory structure and build pipeline
107
+ 1) Fast and easy generation of Python projects from this template
108
+ 2) Seamless updates of projects when improvements to the template are released
109
+ 3) Generates a fully-functional Python package with test and build automation featuring
110
+ - Service architecture suiteable for use as shared library
111
+ - Command-line interface (CLI)
112
+ - Versioned Web API
113
+ - Integration examples with Notebooks and Dashboards
114
+ - Complete developer-tooling with formatting, linting, type checking etc.
115
+ - CI/CD pipeline for GitHub, PyPI, and Docker registries
116
+ - Unit and E2E tests including parallel and matrix-testing
117
+ - Release artifacts include SBOM, license information, and test coverage
118
+ - Auto-generated documentation published to Read The Docs
119
+ - Service integrations monitoring code quality, dependencies, and security
110
120
 
111
121
  ## Scaffolding
112
122
 
@@ -157,7 +167,7 @@ Notes:
157
167
 
158
168
  ## Overview
159
169
 
160
- Adding OE Python Template to your project as a dependency is easy.
170
+ Adding OE Python Template to your project as a dependency is easy. See below for usage examples.
161
171
 
162
172
  ```shell
163
173
  uv add oe-python-template # add dependency to your project
@@ -165,6 +175,7 @@ uv add oe-python-template # add dependency to your project
165
175
 
166
176
  If you don't have uv installed follow [these instructions](https://docs.astral.sh/uv/getting-started/installation/). If you still prefer pip over the modern and fast package manager [uv](https://github.com/astral-sh/uv), you can install the library like this:
167
177
 
178
+
168
179
  ```shell
169
180
  pip install oe-python-template # add dependency to your project
170
181
  ```
@@ -172,14 +183,14 @@ pip install oe-python-template # add dependency to your project
172
183
  Executing the command line interface (CLI) in an isolated Python environment is just as easy:
173
184
 
174
185
  ```shell
175
- uvx oe-python-template hello-world # prints "Hello, world! [..]"
176
- uvx oe-python-template serve # serves webservice API
177
- uvx oe-python-template serve --port=4711 # serves webservice API on port 4711
186
+ uvx oe-python-template hello-world # prints "Hello, world! [..]"
187
+ uvx oe-python-template serve # serves web API
188
+ uvx oe-python-template serve --port=4711 # serves web API on port 4711
178
189
  ```
179
190
 
180
191
  Notes:
181
192
  * The API is versioned, mounted at `/api/v1` resp. `/api/v2`
182
- * While serving the webservice API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
193
+ * While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
183
194
  * Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
184
195
 
185
196
 
@@ -217,7 +228,7 @@ This project is designed with operational excellence in mind, using modern Pytho
217
228
 
218
229
  ## Usage Examples
219
230
 
220
- The following examples run from source. Clone this repository first using
231
+ The following examples run from source - clone this repository using
221
232
  `git clone git@github.com:helmut-hoffer-von-ankershoffen/oe-python-template.git`.
222
233
 
223
234
  ### Minimal Python Script:
@@ -43,9 +43,19 @@
43
43
  Copier template to scaffold Python projects compliant with best practices and modern tooling.
44
44
 
45
45
  Use Cases:
46
- 1) Fast and easy to use project setup
47
- 2) Consistent update of already scaffolded projects to benefit from new and improved features.
48
- 3) Dummy CLI application and service demonstrating example usage of the generated directory structure and build pipeline
46
+ 1) Fast and easy generation of Python projects from this template
47
+ 2) Seamless updates of projects when improvements to the template are released
48
+ 3) Generates a fully-functional Python package with test and build automation featuring
49
+ - Service architecture suiteable for use as shared library
50
+ - Command-line interface (CLI)
51
+ - Versioned Web API
52
+ - Integration examples with Notebooks and Dashboards
53
+ - Complete developer-tooling with formatting, linting, type checking etc.
54
+ - CI/CD pipeline for GitHub, PyPI, and Docker registries
55
+ - Unit and E2E tests including parallel and matrix-testing
56
+ - Release artifacts include SBOM, license information, and test coverage
57
+ - Auto-generated documentation published to Read The Docs
58
+ - Service integrations monitoring code quality, dependencies, and security
49
59
 
50
60
  ## Scaffolding
51
61
 
@@ -96,7 +106,7 @@ Notes:
96
106
 
97
107
  ## Overview
98
108
 
99
- Adding OE Python Template to your project as a dependency is easy.
109
+ Adding OE Python Template to your project as a dependency is easy. See below for usage examples.
100
110
 
101
111
  ```shell
102
112
  uv add oe-python-template # add dependency to your project
@@ -104,6 +114,7 @@ uv add oe-python-template # add dependency to your project
104
114
 
105
115
  If you don't have uv installed follow [these instructions](https://docs.astral.sh/uv/getting-started/installation/). If you still prefer pip over the modern and fast package manager [uv](https://github.com/astral-sh/uv), you can install the library like this:
106
116
 
117
+
107
118
  ```shell
108
119
  pip install oe-python-template # add dependency to your project
109
120
  ```
@@ -111,14 +122,14 @@ pip install oe-python-template # add dependency to your project
111
122
  Executing the command line interface (CLI) in an isolated Python environment is just as easy:
112
123
 
113
124
  ```shell
114
- uvx oe-python-template hello-world # prints "Hello, world! [..]"
115
- uvx oe-python-template serve # serves webservice API
116
- uvx oe-python-template serve --port=4711 # serves webservice API on port 4711
125
+ uvx oe-python-template hello-world # prints "Hello, world! [..]"
126
+ uvx oe-python-template serve # serves web API
127
+ uvx oe-python-template serve --port=4711 # serves web API on port 4711
117
128
  ```
118
129
 
119
130
  Notes:
120
131
  * The API is versioned, mounted at `/api/v1` resp. `/api/v2`
121
- * While serving the webservice API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
132
+ * While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
122
133
  * Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
123
134
 
124
135
 
@@ -156,7 +167,7 @@ This project is designed with operational excellence in mind, using modern Pytho
156
167
 
157
168
  ## Usage Examples
158
169
 
159
- The following examples run from source. Clone this repository first using
170
+ The following examples run from source - clone this repository using
160
171
  `git clone git@github.com:helmut-hoffer-von-ankershoffen/oe-python-template.git`.
161
172
 
162
173
  ### Minimal Python Script:
@@ -0,0 +1,8 @@
1
+ ## [0.6.22](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.21..v0.6.22) - 2025-03-19
2
+
3
+ ### 📚 Documentation
4
+
5
+ - Polish - ([9af66c9](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/9af66c97bb04eeebd63395cff33b5a650dd081aa))
6
+
7
+
8
+
@@ -0,0 +1 @@
1
+ 0.6.22
@@ -1,9 +1,19 @@
1
1
  Copier template to scaffold Python projects compliant with best practices and modern tooling.
2
2
 
3
3
  Use Cases:
4
- 1) Fast and easy to use project setup
5
- 2) Consistent update of already scaffolded projects to benefit from new and improved features.
6
- 3) Dummy CLI application and service demonstrating example usage of the generated directory structure and build pipeline
4
+ 1) Fast and easy generation of Python projects from this template
5
+ 2) Seamless updates of projects when improvements to the template are released
6
+ 3) Generates a fully-functional Python package with test and build automation featuring
7
+ - Service architecture suiteable for use as shared library
8
+ - Command-line interface (CLI)
9
+ - Versioned Web API
10
+ - Integration examples with Notebooks and Dashboards
11
+ - Complete developer-tooling with formatting, linting, type checking etc.
12
+ - CI/CD pipeline for GitHub, PyPI, and Docker registries
13
+ - Unit and E2E tests including parallel and matrix-testing
14
+ - Release artifacts include SBOM, license information, and test coverage
15
+ - Auto-generated documentation published to Read The Docs
16
+ - Service integrations monitoring code quality, dependencies, and security
7
17
 
8
18
  ## Scaffolding
9
19
 
@@ -54,7 +64,7 @@ Notes:
54
64
 
55
65
  ## Overview
56
66
 
57
- Adding OE Python Template to your project as a dependency is easy.
67
+ Adding OE Python Template to your project as a dependency is easy. See below for usage examples.
58
68
 
59
69
  ```shell
60
70
  uv add oe-python-template # add dependency to your project
@@ -62,6 +72,7 @@ uv add oe-python-template # add dependency to your project
62
72
 
63
73
  If you don't have uv installed follow [these instructions](https://docs.astral.sh/uv/getting-started/installation/). If you still prefer pip over the modern and fast package manager [uv](https://github.com/astral-sh/uv), you can install the library like this:
64
74
 
75
+
65
76
  ```shell
66
77
  pip install oe-python-template # add dependency to your project
67
78
  ```
@@ -69,14 +80,14 @@ pip install oe-python-template # add dependency to your project
69
80
  Executing the command line interface (CLI) in an isolated Python environment is just as easy:
70
81
 
71
82
  ```shell
72
- uvx oe-python-template hello-world # prints "Hello, world! [..]"
73
- uvx oe-python-template serve # serves webservice API
74
- uvx oe-python-template serve --port=4711 # serves webservice API on port 4711
83
+ uvx oe-python-template hello-world # prints "Hello, world! [..]"
84
+ uvx oe-python-template serve # serves web API
85
+ uvx oe-python-template serve --port=4711 # serves web API on port 4711
75
86
  ```
76
87
 
77
88
  Notes:
78
89
  * The API is versioned, mounted at `/api/v1` resp. `/api/v2`
79
- * While serving the webservice API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
90
+ * While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
80
91
  * Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
81
92
 
82
93
 
@@ -114,7 +125,7 @@ This project is designed with operational excellence in mind, using modern Pytho
114
125
 
115
126
  ## Usage Examples
116
127
 
117
- The following examples run from source. Clone this repository first using
128
+ The following examples run from source - clone this repository using
118
129
  `git clone git@github.com:helmut-hoffer-von-ankershoffen/oe-python-template.git`.
119
130
 
120
131
  ### Minimal Python Script:
@@ -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.21"
32
+ version = "0.6.22"
33
33
  release = version
34
34
  github_username = "helmut-hoffer-von-ankershoffen"
35
35
  github_repository = "oe-python-template"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.6.21"
3
+ version = "0.6.22"
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.21"
245
+ current_version = "0.6.22"
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.21
3
+ sonar.projectVersion=0.6.22
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
@@ -59,7 +59,7 @@ jobs:
59
59
  - name: Checkout repository
60
60
  uses: actions/checkout@v4
61
61
 
62
- # Add any setup steps before running the `github/codeql-action/init` action.
62
+ # Add any setup steps before running the `github/codeql-action/init` action.
63
63
  # This includes steps like installing compilers or runtimes (`actions/setup-node`
64
64
  # or others). This is typically only required for manual builds.
65
65
  # - name: Setup runtime (example)
@@ -1,9 +1,19 @@
1
1
  {{ project_description }}
2
2
 
3
3
  Use Cases:
4
- 1) Fast and easy to use project setup
5
- 2) Consistent update of already scaffolded projects to benefit from new and improved features.
6
- 3) Dummy CLI application and service demonstrating example usage of the generated directory structure and build pipeline
4
+ 1) Fast and easy generation of Python projects from this template
5
+ 2) Seamless updates of projects when improvements to the template are released
6
+ 3) Generates a fully-functional Python package with test and build automation featuring
7
+ - Service architecture suiteable for use as shared library
8
+ - Command-line interface (CLI)
9
+ - Versioned Web API
10
+ - Integration examples with Notebooks and Dashboards
11
+ - Complete developer-tooling with formatting, linting, type checking etc.
12
+ - CI/CD pipeline for GitHub, PyPI, and Docker registries
13
+ - Unit and E2E tests including parallel and matrix-testing
14
+ - Release artifacts include SBOM, license information, and test coverage
15
+ - Auto-generated documentation published to Read The Docs
16
+ - Service integrations monitoring code quality, dependencies, and security
7
17
 
8
18
  ## Scaffolding
9
19
 
@@ -54,7 +64,7 @@ Notes:
54
64
 
55
65
  ## Overview
56
66
 
57
- Adding {{ project_name }} to your project as a dependency is easy.
67
+ Adding {{ project_name }} to your project as a dependency is easy. See below for usage examples.
58
68
 
59
69
  ```shell
60
70
  uv add {{ pypi_distribution_name }} # add dependency to your project
@@ -62,6 +72,7 @@ uv add {{ pypi_distribution_name }} # add dependency to your project
62
72
 
63
73
  If you don't have uv installed follow [these instructions](https://docs.astral.sh/uv/getting-started/installation/). If you still prefer pip over the modern and fast package manager [uv](https://github.com/astral-sh/uv), you can install the library like this:
64
74
 
75
+
65
76
  ```shell
66
77
  pip install {{ pypi_distribution_name }} # add dependency to your project
67
78
  ```
@@ -69,14 +80,14 @@ pip install {{ pypi_distribution_name }} # add dependency to your project
69
80
  Executing the command line interface (CLI) in an isolated Python environment is just as easy:
70
81
 
71
82
  ```shell
72
- uvx {{ pypi_distribution_name}} hello-world # prints "Hello, world! [..]"
73
- uvx {{ pypi_distribution_name}} serve # serves webservice API
74
- uvx {{ pypi_distribution_name}} serve --port=4711 # serves webservice API on port 4711
83
+ uvx {{ pypi_distribution_name}} hello-world # prints "Hello, world! [..]"
84
+ uvx {{ pypi_distribution_name}} serve # serves web API
85
+ uvx {{ pypi_distribution_name}} serve --port=4711 # serves web API on port 4711
75
86
  ```
76
87
 
77
88
  Notes:
78
89
  * The API is versioned, mounted at `/api/v1` resp. `/api/v2`
79
- * While serving the webservice API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
90
+ * While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
80
91
  * Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
81
92
 
82
93
 
@@ -114,7 +125,7 @@ This project is designed with operational excellence in mind, using modern Pytho
114
125
 
115
126
  ## Usage Examples
116
127
 
117
- The following examples run from source. Clone this repository first using
128
+ The following examples run from source - clone this repository using
118
129
  `git clone {{ github_repository_url_ssh }}`.
119
130
 
120
131
  ### Minimal Python Script:
File without changes
@@ -2075,7 +2075,7 @@ wheels = [
2075
2075
 
2076
2076
  [[package]]
2077
2077
  name = "oe-python-template"
2078
- version = "0.6.21"
2078
+ version = "0.6.22"
2079
2079
  source = { editable = "." }
2080
2080
  dependencies = [
2081
2081
  { name = "fastapi", extra = ["all", "standard"] },
@@ -1,8 +0,0 @@
1
- ## [0.6.21](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.20..v0.6.21) - 2025-03-18
2
-
3
- ### ⚙️ Miscellaneous Tasks
4
-
5
- - *(gh)* Uv action - ([bc632fe](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/bc632fee8ca1d3e3cb4495d12e134f18dc855028))
6
-
7
-
8
-
@@ -1 +0,0 @@
1
- 0.6.21
@@ -1,188 +0,0 @@
1
- components:
2
- schemas:
3
- EchoRequest:
4
- description: Request model for echo endpoint.
5
- properties:
6
- text:
7
- description: The text to echo back
8
- examples:
9
- - Hello, world!
10
- minLength: 1
11
- title: Text
12
- type: string
13
- required:
14
- - text
15
- title: EchoRequest
16
- type: object
17
- EchoResponse:
18
- description: Response model for echo endpoint.
19
- properties:
20
- message:
21
- description: The message content
22
- examples:
23
- - Hello, world!
24
- minLength: 1
25
- title: Message
26
- type: string
27
- required:
28
- - message
29
- title: EchoResponse
30
- type: object
31
- HTTPValidationError:
32
- properties:
33
- detail:
34
- items:
35
- $ref: '#/components/schemas/ValidationError'
36
- title: Detail
37
- type: array
38
- title: HTTPValidationError
39
- type: object
40
- Health:
41
- description: Health status model.
42
- properties:
43
- reason:
44
- anyOf:
45
- - type: string
46
- - type: 'null'
47
- title: Reason
48
- status:
49
- $ref: '#/components/schemas/_HealthStatus'
50
- required:
51
- - status
52
- title: Health
53
- type: object
54
- HelloWorldResponse:
55
- description: Response model for hello-world endpoint.
56
- properties:
57
- message:
58
- description: The hello world message
59
- examples:
60
- - Hello, world!
61
- title: Message
62
- type: string
63
- required:
64
- - message
65
- title: HelloWorldResponse
66
- type: object
67
- ValidationError:
68
- properties:
69
- loc:
70
- items:
71
- anyOf:
72
- - type: string
73
- - type: integer
74
- title: Location
75
- type: array
76
- msg:
77
- title: Message
78
- type: string
79
- type:
80
- title: Error Type
81
- type: string
82
- required:
83
- - loc
84
- - msg
85
- - type
86
- title: ValidationError
87
- type: object
88
- _HealthStatus:
89
- description: Health status enumeration.
90
- enum:
91
- - UP
92
- - DOWN
93
- title: _HealthStatus
94
- type: string
95
- info:
96
- contact:
97
- email: helmuthva@gmail.com
98
- name: Helmut Hoffer von Ankershoffen
99
- url: https://github.com/helmut-hoffer-von-ankershoffen
100
- termsOfService: https://oe-python-template.readthedocs.io/en/latest/
101
- title: OE Python Template
102
- version: 1.0.0
103
- openapi: 3.1.0
104
- paths:
105
- /echo:
106
- post:
107
- description: "Echo back the provided text.\n\nArgs:\n request (EchoRequest):\
108
- \ The request containing the text to echo back.\n\nReturns:\n EchoResponse:\
109
- \ A response containing the echoed text.\n\nRaises:\n 422 Unprocessable\
110
- \ Entity: If text is not provided or empty."
111
- operationId: echo_echo_post
112
- requestBody:
113
- content:
114
- application/json:
115
- schema:
116
- $ref: '#/components/schemas/EchoRequest'
117
- required: true
118
- responses:
119
- '200':
120
- content:
121
- application/json:
122
- schema:
123
- $ref: '#/components/schemas/EchoResponse'
124
- description: Successful Response
125
- '422':
126
- content:
127
- application/json:
128
- schema:
129
- $ref: '#/components/schemas/HTTPValidationError'
130
- description: Validation Error
131
- summary: Echo
132
- tags:
133
- - Basics
134
- /health:
135
- get:
136
- description: "Check the health of the service.\n\nThis endpoint returns the\
137
- \ health status of the service.\nThe health status can be either UP or DOWN.\n\
138
- If the service is healthy, the status will be UP.\nIf the service is unhealthy,\
139
- \ the status will be DOWN and a reason will be provided.\nThe response will\
140
- \ have a 200 OK status code if the service is healthy,\nand a 500 Internal\
141
- \ Server Error status code if the service is unhealthy.\n\nReturns:\n Health:\
142
- \ The health status of the service."
143
- operationId: health_health_get
144
- responses:
145
- '200':
146
- content:
147
- application/json:
148
- schema:
149
- $ref: '#/components/schemas/Health'
150
- description: Successful Response
151
- summary: Health
152
- tags:
153
- - Observability
154
- /healthz:
155
- get:
156
- description: "Check the health of the service.\n\nThis endpoint returns the\
157
- \ health status of the service.\nThe health status can be either UP or DOWN.\n\
158
- If the service is healthy, the status will be UP.\nIf the service is unhealthy,\
159
- \ the status will be DOWN and a reason will be provided.\nThe response will\
160
- \ have a 200 OK status code if the service is healthy,\nand a 500 Internal\
161
- \ Server Error status code if the service is unhealthy.\n\nReturns:\n Health:\
162
- \ The health status of the service."
163
- operationId: health_healthz_get
164
- responses:
165
- '200':
166
- content:
167
- application/json:
168
- schema:
169
- $ref: '#/components/schemas/Health'
170
- description: Successful Response
171
- summary: Health
172
- tags:
173
- - Observability
174
- /hello-world:
175
- get:
176
- description: "Return a hello world message.\n\nReturns:\n HelloWorldResponse:\
177
- \ A response containing the hello world message."
178
- operationId: hello_world_hello_world_get
179
- responses:
180
- '200':
181
- content:
182
- application/json:
183
- schema:
184
- $ref: '#/components/schemas/HelloWorldResponse'
185
- description: Successful Response
186
- summary: Hello World
187
- tags:
188
- - Basics