oe-python-template 0.4.3__tar.gz → 0.4.4__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 (155) hide show
  1. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.copier-answers.yml +1 -1
  2. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/CHANGELOG.md +8 -1
  3. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/PKG-INFO +2 -1
  4. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/README.md +1 -0
  5. oe_python_template-0.4.4/RELEASE_NOTES.md +8 -0
  6. oe_python_template-0.4.4/VERSION +1 -0
  7. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/_readme_header.md +1 -0
  8. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/conf.py +1 -1
  9. oe_python_template-0.4.4/examples/notebook.ipynb +46 -0
  10. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/pyproject.toml +2 -2
  11. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/sonar-project.properties +1 -1
  12. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/_readme_header.md.jinja +4 -0
  13. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/conf.py.jinja +4 -4
  14. oe_python_template-0.4.4/template/examples/notebook.ipynb.jinja +46 -0
  15. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/examples/streamlit.py.jinja +1 -0
  16. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/noxfile.py.jinja +4 -7
  17. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +1 -2
  18. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/src/{{ project_name_snake_case }}/api.py.jinja +10 -9
  19. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/tests/api_test.py.jinja +2 -0
  20. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/uv.lock +1 -1
  21. oe_python_template-0.4.3/RELEASE_NOTES.md +0 -8
  22. oe_python_template-0.4.3/VERSION +0 -1
  23. oe_python_template-0.4.3/examples/jupyter.ipynb +0 -46
  24. oe_python_template-0.4.3/examples/notebook.ipynb +0 -46
  25. oe_python_template-0.4.3/template/examples/notebook.ipynb.jinja +0 -45
  26. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.act-env-public +0 -0
  27. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.devcontainer/Dockerfile +0 -0
  28. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.devcontainer/devcontainer.json +0 -0
  29. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.devcontainer/onCreateCommand +0 -0
  30. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.devcontainer/postAttachCommand +0 -0
  31. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.devcontainer/postCreateCommand +0 -0
  32. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.env.example +0 -0
  33. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.github/workflows/docker-image-build-publish.yml +0 -0
  34. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.github/workflows/package-build-publish-release.yml +0 -0
  35. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.github/workflows/test-and-report.yml +0 -0
  36. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.gitignore +0 -0
  37. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.pre-commit-config.yaml +0 -0
  38. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.python-version +0 -0
  39. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.readthedocs.yml +0 -0
  40. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.secrets.baseline +0 -0
  41. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.vscode/extensions.json +0 -0
  42. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/.vscode/settings.json +0 -0
  43. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/CODEOWNERS +0 -0
  44. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/CONTRIBUTING.md +0 -0
  45. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/Dockerfile +0 -0
  46. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/LICENSE +0 -0
  47. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/SERVICE_CONNECTIONS.md +0 -0
  48. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/_readme_footer.md +0 -0
  49. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/_readme_main.md +0 -0
  50. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/bin/git-cliff +0 -0
  51. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/bump +0 -0
  52. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/codecov.yml +0 -0
  53. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/compose.yaml +0 -0
  54. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/copier.yml +0 -0
  55. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/Makefile +0 -0
  56. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/make.bat +0 -0
  57. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/_static/.keep +0 -0
  58. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/_static/openapi_v1.json +0 -0
  59. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/_static/openapi_v1.yaml +0 -0
  60. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/_static/openapi_v2.json +0 -0
  61. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/_static/openapi_v2.yaml +0 -0
  62. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/api_v1.rst +0 -0
  63. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/api_v2.rst +0 -0
  64. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/contributing.rst +0 -0
  65. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/index.rst +0 -0
  66. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/latexmkrc +0 -0
  67. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/main.rst +0 -0
  68. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/reference.rst +0 -0
  69. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/docs/source/release-notes.rst +0 -0
  70. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/examples/__init__.py +0 -0
  71. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/examples/notebook.py +0 -0
  72. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/examples/script.py +0 -0
  73. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/examples/streamlit.py +0 -0
  74. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  75. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  76. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  77. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/README.md +0 -0
  78. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  79. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
  80. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
  81. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
  82. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
  83. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/git-cliff-completions +0 -0
  84. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  85. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
  86. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  87. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/github-action-run +0 -0
  88. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/latexmkrc +0 -0
  89. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/logo.png +0 -0
  90. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/noxfile.py +0 -0
  91. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/renovate.json +0 -0
  92. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/reports/mypy.xml +0 -0
  93. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/src/oe_python_template/__init__.py +0 -0
  94. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/src/oe_python_template/api.py +0 -0
  95. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/src/oe_python_template/cli.py +0 -0
  96. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/src/oe_python_template/constants.py +0 -0
  97. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/src/oe_python_template/service.py +0 -0
  98. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.act-env-public.jinja +0 -0
  99. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.devcontainer/Dockerfile.jinja +0 -0
  100. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.devcontainer/devcontainer.json.jinja +0 -0
  101. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.devcontainer/onCreateCommand.jinja +0 -0
  102. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.devcontainer/postAttachCommand.jinja +0 -0
  103. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.devcontainer/postCreateCommand.jinja +0 -0
  104. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.env.example.jinja +0 -0
  105. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
  106. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
  107. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.github/workflows/test-and-report.yml.jinja +0 -0
  108. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.gitignore.jinja +0 -0
  109. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.pre-commit-config.yaml.jinja +0 -0
  110. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.python-version +0 -0
  111. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.readthedocs.yml.jinja +0 -0
  112. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.vscode/extensions.json +0 -0
  113. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/.vscode/settings.json.jinja +0 -0
  114. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/CHANGELOG.md +0 -0
  115. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/CODEOWNERS.jinja +0 -0
  116. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/CONTRIBUTING.md.jinja +0 -0
  117. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/Dockerfile.jinja +0 -0
  118. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/LICENSE.jinja +0 -0
  119. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/SERVICE_CONNECTIONS.md.jinja +0 -0
  120. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/VERSION +0 -0
  121. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/_readme_footer.md.jinja +0 -0
  122. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/_readme_main.md.jinja +0 -0
  123. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/bump.jinja +0 -0
  124. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/codecov.yml.jinja +0 -0
  125. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/compose.yaml.jinja +0 -0
  126. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/Makefile.jinja +0 -0
  127. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/make.bat.jinja +0 -0
  128. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/_static/.keep +0 -0
  129. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/api_v1.rst.jinja +0 -0
  130. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/api_v2.rst.jinja +0 -0
  131. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/contributing.rst.jinja +0 -0
  132. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/index.rst.jinja +0 -0
  133. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/latexmkrc.jinja +0 -0
  134. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/main.rst.jinja +0 -0
  135. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/reference.rst.jinja +0 -0
  136. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/docs/source/release-notes.rst.jinja +0 -0
  137. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/examples/__init__.py.jinja +0 -0
  138. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/examples/notebook.py.jinja +0 -0
  139. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/examples/script.py.jinja +0 -0
  140. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/github-action-run.jinja +0 -0
  141. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/latexmkrc.jinja +0 -0
  142. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/logo.png +0 -0
  143. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/pyproject.toml.jinja +0 -0
  144. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/sonar-project.properties.jinja +0 -0
  145. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/src/{{ project_name_snake_case }}/cli.py.jinja +1 -1
  146. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
  147. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
  148. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/tests/__init__.py.jinja +0 -0
  149. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/tests/cli_test.py.jinja +0 -0
  150. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/tests/fixtures/.keep +0 -0
  151. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/template/{{_copier_conf.answers_file}}.jinja +0 -0
  152. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/tests/__init__.py +0 -0
  153. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/tests/api_test.py +0 -0
  154. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/tests/cli_test.py +0 -0
  155. {oe_python_template-0.4.3 → oe_python_template-0.4.4}/tests/fixtures/.keep +0 -0
@@ -1,4 +1,4 @@
1
- _commit: v0.4.2-1-gc84332a
1
+ _commit: v0.4.3-1-g16d5590
2
2
  _src_path: .
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -1,6 +1,13 @@
1
1
  [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
2
 
3
- ## [0.4.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.4.2..0.4.3) - 2025-03-13
3
+ ## [0.4.4](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.4.3..0.4.4) - 2025-03-13
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Link template - ([5927a2d](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/5927a2d4b8cb40d5a97c9b6229f46b83cbf007fa))
8
+
9
+
10
+ ## [0.4.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.4.2..v0.4.3) - 2025-03-13
4
11
 
5
12
  ### Enh
6
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.4.3
3
+ Version: 0.4.4
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/
@@ -91,6 +91,7 @@ Description-Content-Type: text/markdown
91
91
 
92
92
  > [!TIP]
93
93
  > 📚 [Online documentation](https://oe-python-template.readthedocs.io/en/latest/) - 📖 [PDF Manual](https://oe-python-template.readthedocs.io/_/downloads/en/latest/pdf/)
94
+
94
95
  ---
95
96
 
96
97
 
@@ -30,6 +30,7 @@
30
30
 
31
31
  > [!TIP]
32
32
  > 📚 [Online documentation](https://oe-python-template.readthedocs.io/en/latest/) - 📖 [PDF Manual](https://oe-python-template.readthedocs.io/_/downloads/en/latest/pdf/)
33
+
33
34
  ---
34
35
 
35
36
 
@@ -0,0 +1,8 @@
1
+ ## [0.4.4](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.4.3..v0.4.4) - 2025-03-13
2
+
3
+ ### 📚 Documentation
4
+
5
+ - Link template - ([5927a2d](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/5927a2d4b8cb40d5a97c9b6229f46b83cbf007fa))
6
+
7
+
8
+
@@ -0,0 +1 @@
1
+ 0.4.4
@@ -30,4 +30,5 @@
30
30
 
31
31
  > [!TIP]
32
32
  > 📚 [Online documentation](https://oe-python-template.readthedocs.io/en/latest/) - 📖 [PDF Manual](https://oe-python-template.readthedocs.io/_/downloads/en/latest/pdf/)
33
+
33
34
  ---
@@ -26,7 +26,7 @@ extensions = [
26
26
  project = "oe-python-template"
27
27
  author = "Helmut Hoffer von Ankershoffen"
28
28
  copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
29
- version = "0.4.3"
29
+ version = "0.4.4"
30
30
  release = version
31
31
  github_username = "helmut-hoffer-von-ankershoffen"
32
32
  github_repository = "oe-python-template"
@@ -0,0 +1,46 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stdout",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "Hello, world! The value of THE_VAR is not defined\n"
13
+ ]
14
+ }
15
+ ],
16
+ "source": [
17
+ "from oe_python_template import Service\n",
18
+ "\n",
19
+ "service = Service()\n",
20
+ "message = service.get_hello_world()\n",
21
+ "message"
22
+ ]
23
+ }
24
+ ],
25
+ "metadata": {
26
+ "kernelspec": {
27
+ "display_name": ".venv",
28
+ "language": "python",
29
+ "name": "python3"
30
+ },
31
+ "language_info": {
32
+ "codemirror_mode": {
33
+ "name": "ipython",
34
+ "version": 3
35
+ },
36
+ "file_extension": ".py",
37
+ "mimetype": "text/x-python",
38
+ "name": "python",
39
+ "nbconvert_exporter": "python",
40
+ "pygments_lexer": "ipython3",
41
+ "version": "3.11.6"
42
+ }
43
+ },
44
+ "nbformat": 4,
45
+ "nbformat_minor": 2
46
+ }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.4.3"
3
+ version = "0.4.4"
4
4
  description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -245,7 +245,7 @@ source = ["src/"]
245
245
 
246
246
 
247
247
  [tool.bumpversion]
248
- current_version = "0.4.3"
248
+ current_version = "0.4.4"
249
249
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
250
250
  serialize = ["{major}.{minor}.{patch}"]
251
251
  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.4.3
3
+ sonar.projectVersion=0.4.4
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
@@ -30,4 +30,8 @@
30
30
 
31
31
  > [!TIP]
32
32
  > 📚 [Online documentation](https://{{ readthedocs_project_key}}.readthedocs.io/en/latest/) - 📖 [PDF Manual](https://{{ readthedocs_project_key }}.readthedocs.io/_/downloads/en/latest/pdf/)
33
+ {% if pypi_distribution_name != 'oe-python-template' %}
34
+ > [!NOTE]
35
+ > 🧠 This project was scaffolded using the template [oe-python-template](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template) with [copier](https://copier.readthedocs.io/).
36
+ {% endif %}
33
37
  ---
@@ -75,11 +75,11 @@ html_static_path = ["_static"]
75
75
  html_logo = "../../logo.png"
76
76
  html_theme_options = {
77
77
  "announcement": (
78
- '<a target="_blank" href="{{ github_repository_url_https }}">GitHub</a> - ' # noqa: E501
79
- '<a target="_blank" href="https://pypi.org/project/{{ pypi_distribution_name }}">PyPI</a> - ' # noqa: E501
80
- '<a target="_blank" href="https://hub.docker.com/r/{{ docker_io_owner}}/{{ docker_io_image_name }}/tags">Docker</a> - ' # noqa: E501
78
+ '<a target="_blank" href="{{ github_repository_url_https }}">GitHub</a> - '
79
+ '<a target="_blank" href="https://pypi.org/project/{{ pypi_distribution_name }}">PyPI</a> - '
80
+ '<a target="_blank" href="https://hub.docker.com/r/{{ docker_io_owner}}/{{ docker_io_image_name }}/tags">Docker</a> - '
81
81
  '<a target="_blank" href="https://sonarcloud.io/summary/new_code?id={{ sonarqube_key }}">SonarQube</a> - ' # noqa: E501
82
- '<a target="_blank" href="https://app.codecov.io/gh/{{ github_repository_owner }}/{{ github_repository_name}}">Codecov</a>' # noqa: E501
82
+ '<a target="_blank" href="https://app.codecov.io/gh/{{ github_repository_owner }}/{{ github_repository_name}}">Codecov</a>'
83
83
  ),
84
84
  }
85
85
 
@@ -0,0 +1,46 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stdout",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "Hello, world! The value of THE_VAR is not defined\n"
13
+ ]
14
+ }
15
+ ],
16
+ "source": [
17
+ "from oe_python_template import Service\n",
18
+ "\n",
19
+ "service = Service()\n",
20
+ "message = service.get_hello_world()\n",
21
+ "message"
22
+ ]
23
+ }
24
+ ],
25
+ "metadata": {
26
+ "kernelspec": {
27
+ "display_name": ".venv",
28
+ "language": "python",
29
+ "name": "python3"
30
+ },
31
+ "language_info": {
32
+ "codemirror_mode": {
33
+ "name": "ipython",
34
+ "version": 3
35
+ },
36
+ "file_extension": ".py",
37
+ "mimetype": "text/x-python",
38
+ "name": "python",
39
+ "nbconvert_exporter": "python",
40
+ "pygments_lexer": "ipython3",
41
+ "version": "3.11.6"
42
+ }
43
+ },
44
+ "nbformat": 4,
45
+ "nbformat_minor": 2
46
+ }
@@ -6,6 +6,7 @@ This module creates a web interface using Streamlit to demonstrate the usage of
6
6
  """
7
7
 
8
8
  import streamlit as st
9
+
9
10
  from {{ project_name_snake_case }} import (
10
11
  Service,
11
12
  __version__,
@@ -46,10 +46,7 @@ def lint(session: nox.Session) -> None:
46
46
  "--check",
47
47
  ".",
48
48
  )
49
- session.run(
50
- "mypy",
51
- "src"
52
- )
49
+ session.run("mypy", "src")
53
50
 
54
51
 
55
52
  @nox.session(python=["3.13"])
@@ -128,14 +125,14 @@ def setup_dev(session: nox.Session) -> None:
128
125
  session.run("ruff", "format", ".", external=True)
129
126
  git_dir = Path(".git")
130
127
  if git_dir.is_dir():
131
- session.run("echo","found .git directory", external=True)
132
- session.run("touch",".act-env-secret", external=True)
128
+ session.run("echo", "found .git directory", external=True)
129
+ session.run("touch", ".act-env-secret", external=True)
133
130
  session.run("pre-commit", "install", external=True)
134
131
  with Path(".secrets.baseline").open("w", encoding="utf-8") as out:
135
132
  session.run("detect-secrets", "scan", stdout=out, external=True)
136
133
  session.run("git", "add", ".", external=True)
137
134
  try:
138
135
  session.run("pre-commit", external=True)
139
- except Exception: # noqa: BLE001
136
+ except Exception: # noqa: BLE001
140
137
  session.log("pre-commit run failed, continuing anyway")
141
138
  session.run("git", "add", ".", external=True)
@@ -5,12 +5,11 @@ from .constants import (
5
5
  __project_path__,
6
6
  __version__,
7
7
  )
8
-
9
8
  from .service import Service
10
9
 
11
10
  __all__ = [
11
+ "Service",
12
12
  "__project_name__",
13
13
  "__project_path__",
14
14
  "__version__",
15
- "Service",
16
15
  ]
@@ -48,22 +48,22 @@ api = FastAPI(
48
48
  terms_of_service="https://{{ readthedocs_project_key }}.readthedocs.io/en/latest/",
49
49
  openapi_tags=[
50
50
  {
51
- 'name': 'v1',
51
+ "name": "v1",
52
52
  "description": "API version 1, check link on the right",
53
- 'externalDocs': {
54
- 'description': 'sub-docs',
53
+ "externalDocs": {
54
+ "description": "sub-docs",
55
55
  "url": f"http://{UVICORN_HOST}:{UVICORN_PORT}/api/v1/docs",
56
- }
56
+ },
57
57
  },
58
58
  {
59
- 'name': 'v2',
59
+ "name": "v2",
60
60
  "description": "API version 2, check link on the right",
61
- 'externalDocs': {
62
- 'description': 'sub-docs',
61
+ "externalDocs": {
62
+ "description": "sub-docs",
63
63
  "url": f"http://{UVICORN_HOST}:{UVICORN_PORT}/api/v2/docs",
64
- }
64
+ },
65
65
  },
66
- ]
66
+ ],
67
67
  )
68
68
 
69
69
  api_v1 = FastAPI(
@@ -88,6 +88,7 @@ api_v2 = FastAPI(
88
88
  terms_of_service="https://{{ readthedocs_project_key }}.readthedocs.io/en/latest/",
89
89
  )
90
90
 
91
+
91
92
  class _HealthStatus(StrEnum):
92
93
  """Health status enumeration.
93
94
 
@@ -43,6 +43,7 @@ def test_hello_world_endpoint(client: TestClient) -> None:
43
43
  assert response.status_code == 200
44
44
  assert response.json()["message"].startswith("Hello, world!")
45
45
 
46
+
46
47
  def test_echo_endpoint_valid_input(client: TestClient) -> None:
47
48
  """Test that the echo endpoint returns the input text."""
48
49
  test_text = "Test message"
@@ -96,6 +97,7 @@ def test_health_endpoint(client: TestClient) -> None:
96
97
  assert response.json()["status"] == "UP"
97
98
  assert response.json()["reason"] is None
98
99
 
100
+
99
101
  @patch("{{ project_name_snake_case }}.api.Service")
100
102
  def test_health_endpoint_down(mock_service, client: TestClient) -> None:
101
103
  """Test that the health endpoint returns 500 status when service is unhealthy."""
@@ -2075,7 +2075,7 @@ wheels = [
2075
2075
 
2076
2076
  [[package]]
2077
2077
  name = "oe-python-template"
2078
- version = "0.4.3"
2078
+ version = "0.4.4"
2079
2079
  source = { editable = "." }
2080
2080
  dependencies = [
2081
2081
  { name = "fastapi", extra = ["all", "standard"] },
@@ -1,8 +0,0 @@
1
- ## [0.4.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.4.2..v0.4.3) - 2025-03-13
2
-
3
- ### Enh
4
-
5
- - *(versioned api)* Central docs entrypoint - ([24fda94](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/24fda9401e864ef66109e701b7f549398282c98b))
6
-
7
-
8
-
@@ -1 +0,0 @@
1
- 0.4.3
@@ -1,46 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {},
7
- "outputs": [
8
- {
9
- "name": "stdout",
10
- "output_type": "stream",
11
- "text": [
12
- "Hello, world! The value of THE_VAR is not defined\n"
13
- ]
14
- }
15
- ],
16
- "source": [
17
- "from oe_python_template import Service\n",
18
- "\n",
19
- "service = Service()\n",
20
- "message = service.get_hello_world()\n",
21
- "message"
22
- ]
23
- }
24
- ],
25
- "metadata": {
26
- "kernelspec": {
27
- "display_name": ".venv",
28
- "language": "python",
29
- "name": "python3"
30
- },
31
- "language_info": {
32
- "codemirror_mode": {
33
- "name": "ipython",
34
- "version": 3
35
- },
36
- "file_extension": ".py",
37
- "mimetype": "text/x-python",
38
- "name": "python",
39
- "nbconvert_exporter": "python",
40
- "pygments_lexer": "ipython3",
41
- "version": "3.11.6"
42
- }
43
- },
44
- "nbformat": 4,
45
- "nbformat_minor": 2
46
- }
@@ -1,46 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {},
7
- "outputs": [
8
- {
9
- "name": "stdout",
10
- "output_type": "stream",
11
- "text": [
12
- "Hello, world! The value of THE_VAR is not defined\n"
13
- ]
14
- }
15
- ],
16
- "source": [
17
- "from oe_python_template import Service\n",
18
- "\n",
19
- "service = Service()\n",
20
- "message = service.get_hello_world()\n",
21
- "message"
22
- ]
23
- }
24
- ],
25
- "metadata": {
26
- "kernelspec": {
27
- "display_name": ".venv",
28
- "language": "python",
29
- "name": "python3"
30
- },
31
- "language_info": {
32
- "codemirror_mode": {
33
- "name": "ipython",
34
- "version": 3
35
- },
36
- "file_extension": ".py",
37
- "mimetype": "text/x-python",
38
- "name": "python",
39
- "nbconvert_exporter": "python",
40
- "pygments_lexer": "ipython3",
41
- "version": "3.11.6"
42
- }
43
- },
44
- "nbformat": 4,
45
- "nbformat_minor": 2
46
- }
@@ -1,45 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {},
7
- "outputs": [
8
- {
9
- "name": "stdout",
10
- "output_type": "stream",
11
- "text": [
12
- "Hello, world! The value of THE_VAR is not defined\n"
13
- ]
14
- }
15
- ],
16
- "source": [
17
- "from {{ project_name_snake_case }} import Service\n",
18
- "service = Service()\n",
19
- "message = service.get_hello_world()\n",
20
- "message"
21
- ]
22
- }
23
- ],
24
- "metadata": {
25
- "kernelspec": {
26
- "display_name": ".venv",
27
- "language": "python",
28
- "name": "python3"
29
- },
30
- "language_info": {
31
- "codemirror_mode": {
32
- "name": "ipython",
33
- "version": 3
34
- },
35
- "file_extension": ".py",
36
- "mimetype": "text/x-python",
37
- "name": "python",
38
- "nbconvert_exporter": "python",
39
- "pygments_lexer": "ipython3",
40
- "version": "3.11.6"
41
- }
42
- },
43
- "nbformat": 4,
44
- "nbformat_minor": 2
45
- }
@@ -1,9 +1,9 @@
1
1
  """CLI (Command Line Interface) of {{ project_name }}."""
2
2
 
3
+ import os
3
4
  from enum import StrEnum
4
5
  from typing import Annotated
5
6
 
6
- import os
7
7
  import typer
8
8
  import uvicorn
9
9
  import yaml