oe-python-template 0.1.3__tar.gz → 0.2.0__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 (142) hide show
  1. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.copier-answers.yml +1 -1
  2. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/devcontainer.json +1 -0
  3. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.secrets.baseline +1 -1
  4. {oe_python_template-0.1.3/template → oe_python_template-0.2.0}/.vscode/extensions.json +1 -0
  5. oe_python_template-0.1.3/RELEASE_NOTES.md → oe_python_template-0.2.0/CHANGELOG.md +15 -1
  6. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/CONTRIBUTING.md +2 -1
  7. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/PKG-INFO +34 -8
  8. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/README.md +31 -5
  9. oe_python_template-0.1.3/CHANGELOG.md → oe_python_template-0.2.0/RELEASE_NOTES.md +16 -2
  10. oe_python_template-0.2.0/SERVICE_CONNECTIONS.md +62 -0
  11. oe_python_template-0.2.0/VERSION +1 -0
  12. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_header.md +1 -1
  13. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_main.md +30 -4
  14. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/copier.yml +13 -10
  15. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/conf.py +1 -1
  16. oe_python_template-0.2.0/examples/notebook.ipynb +46 -0
  17. oe_python_template-0.2.0/examples/notebook.py +18 -0
  18. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/streamlit.py +1 -1
  19. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/pyproject.toml +10 -6
  20. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/sonar-project.properties +2 -2
  21. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/devcontainer.json.jinja +1 -0
  22. {oe_python_template-0.1.3 → oe_python_template-0.2.0/template}/.vscode/extensions.json +1 -0
  23. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CONTRIBUTING.md.jinja +2 -1
  24. oe_python_template-0.2.0/template/README.md +1 -0
  25. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/SERVICE_CONNECTIONS.md.jinja +16 -8
  26. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_header.md.jinja +1 -1
  27. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_main.md.jinja +86 -7
  28. oe_python_template-0.2.0/template/bump.jinja +3 -0
  29. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/conf.py.jinja +3 -3
  30. oe_python_template-0.2.0/template/examples/notebook.py.jinja +18 -0
  31. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/streamlit.py.jinja +1 -1
  32. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/pyproject.toml.jinja +8 -4
  33. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/sonar-project.properties.jinja +1 -1
  34. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/uv.lock +1 -1
  35. oe_python_template-0.1.3/VERSION +0 -1
  36. oe_python_template-0.1.3/template/bump.jinja +0 -3
  37. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.act-env +0 -0
  38. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.act-secret +0 -0
  39. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/Dockerfile +0 -0
  40. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/onCreateCommand +0 -0
  41. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/postAttachCommand +0 -0
  42. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/postCreateCommand +0 -0
  43. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.env.example +0 -0
  44. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/docker-image-build-publish.yml +0 -0
  45. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/package-build-publish-release.yml +0 -0
  46. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/test-and-report.yml +0 -0
  47. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.gitignore +0 -0
  48. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.pre-commit-config.yaml +0 -0
  49. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.python-version +0 -0
  50. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.readthedocs.yml +0 -0
  51. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.vscode/settings.json +0 -0
  52. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/CODEOWNERS +0 -0
  53. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/Dockerfile +0 -0
  54. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/LICENSE +0 -0
  55. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_footer.md +0 -0
  56. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/bin/git-cliff +0 -0
  57. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/bump +0 -0
  58. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/codecov.yml +0 -0
  59. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/compose.yaml +0 -0
  60. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/Makefile +0 -0
  61. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/make.bat +0 -0
  62. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/_static/.keep +0 -0
  63. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/contributing.rst +0 -0
  64. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/index.rst +0 -0
  65. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/latexmkrc +0 -0
  66. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/main.rst +0 -0
  67. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/reference.rst +0 -0
  68. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/release-notes.rst +0 -0
  69. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/__init__.py +0 -0
  70. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/jupyter.ipynb +0 -0
  71. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/script.py +0 -0
  72. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  73. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  74. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  75. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/README.md +0 -0
  76. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  77. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
  78. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
  79. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
  80. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
  81. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/git-cliff-completions +0 -0
  82. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  83. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
  84. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  85. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/github-action-run +0 -0
  86. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/latexmkrc +0 -0
  87. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/logo.png +0 -0
  88. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/noxfile.py +0 -0
  89. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/__init__.py +0 -0
  90. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/cli.py +0 -0
  91. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/constants.py +0 -0
  92. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/service.py +0 -0
  93. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.act-env.jinja +0 -0
  94. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.act-secret.jinja +0 -0
  95. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/Dockerfile.jinja +0 -0
  96. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/onCreateCommand.jinja +0 -0
  97. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/postAttachCommand.jinja +0 -0
  98. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/postCreateCommand.jinja +0 -0
  99. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.env.example.jinja +0 -0
  100. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
  101. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
  102. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/test-and-report.yml.jinja +0 -0
  103. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.gitignore.jinja +0 -0
  104. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.pre-commit-config.yaml.jinja +0 -0
  105. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.python-version +0 -0
  106. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.readthedocs.yml.jinja +0 -0
  107. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.vscode/settings.json +0 -0
  108. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CHANGELOG.md +0 -0
  109. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CODEOWNERS.jinja +0 -0
  110. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/Dockerfile.jinja +0 -0
  111. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/LICENSE.jinja +0 -0
  112. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/VERSION +0 -0
  113. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_footer.md.jinja +0 -0
  114. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/codecov.yml.jinja +0 -0
  115. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/compose.yaml.jinja +0 -0
  116. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/Makefile.jinja +0 -0
  117. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/make.bat.jinja +0 -0
  118. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/_static/.keep +0 -0
  119. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/contributing.rst.jinja +0 -0
  120. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/index.rst.jinja +0 -0
  121. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/latexmkrc.jinja +0 -0
  122. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/main.rst.jinja +0 -0
  123. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/reference.rst.jinja +0 -0
  124. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/release-notes.rst.jinja +0 -0
  125. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/__init__.py.jinja +0 -0
  126. /oe_python_template-0.1.3/template/examples/jupyter.ipynb.jinja → /oe_python_template-0.2.0/template/examples/notebook.ipynb.jinja +0 -0
  127. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/script.py.jinja +0 -0
  128. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/github-action-run.jinja +0 -0
  129. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/latexmkrc.jinja +0 -0
  130. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/logo.png +0 -0
  131. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/noxfile.py.jinja +0 -0
  132. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
  133. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
  134. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
  135. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
  136. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/__init__.py.jinja +0 -0
  137. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/cli_test.py.jinja +0 -0
  138. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/fixtures/.keep +0 -0
  139. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/{{_copier_conf.answers_file}}.jinja +0 -0
  140. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/__init__.py +0 -0
  141. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/cli_test.py +0 -0
  142. {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/fixtures/.keep +0 -0
@@ -1,4 +1,4 @@
1
- _commit: v0.1.1
1
+ _commit: v0.1.4
2
2
  _src_path: .
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -29,6 +29,7 @@
29
29
  "gruntfuggly.todo-tree",
30
30
  "joshrmosier.streamlit-runner",
31
31
  "kaih2o.python-resource-monitor",
32
+ "marimo-team.vscode-marimo",
32
33
  "mikestead.dotenv",
33
34
  "ms-azuretools.vscode-docker",
34
35
  "ms-python.debugpy",
@@ -123,5 +123,5 @@
123
123
  }
124
124
  ],
125
125
  "results": {},
126
- "generated_at": "2025-03-02T09:27:40Z"
126
+ "generated_at": "2025-03-02T18:16:03Z"
127
127
  }
@@ -11,6 +11,7 @@
11
11
  "gruntfuggly.todo-tree",
12
12
  "joshrmosier.streamlit-runner",
13
13
  "kaih2o.python-resource-monitor",
14
+ "marimo-team.vscode-marimo",
14
15
  "mikestead.dotenv",
15
16
  "ms-azuretools.vscode-docker",
16
17
  "ms-python.debugpy",
@@ -1,4 +1,18 @@
1
- [🧠 OE Python Template](https://oe-python-template.readthedocs.io/)
1
+ [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
+
3
+ ## [0.2.0](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.4..0.2.0) - 2025-03-02
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Start to document the template and setup process - ([d37c39c](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/d37c39c518736301aadf1192f9a48c4cfd1ded6e))
8
+
9
+
10
+ ## [0.1.4](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.3..v0.1.4) - 2025-03-02
11
+
12
+ ### ⛰️ Features
13
+
14
+ - *(notebooks)* Introduce marimo - ([5d8eb68](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/5d8eb687da96d5111130f67079cc8cbee06ca20e))
15
+
2
16
 
3
17
  ## [0.1.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.2..v0.1.3) - 2025-03-02
4
18
 
@@ -42,7 +42,8 @@ tests/ # Unit and E2E tests
42
42
  └── fixtures/ # Fixtures and mock data
43
43
  examples/ # Example code demonstrating use of the project
44
44
  ├── streamlit.py # Streamlit App, deployed in Streamlit Community Cloud
45
- ├── jupyter.ipynb # Jupyter notebook
45
+ ├── notebook.py # Marimo notebook
46
+ ├── notebook.ipynb # Jupyter notebook
46
47
  └── script.py # Minimal script
47
48
  ```
48
49
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.1.3
3
+ Version: 0.2.0
4
4
  Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
- Project-URL: Homepage, https://oe-python-template.readthedocs.io/
6
- Project-URL: Documentation, https://oe-python-template.readthedocs.io/
5
+ Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
6
+ Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
7
7
  Project-URL: Source, https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template
8
8
  Project-URL: Changelog, https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/releases
9
9
  Project-URL: Issues, https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/issues
@@ -63,7 +63,7 @@ Description-Content-Type: text/markdown
63
63
  ](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/LICENSE)
64
64
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oe-python-template.svg?logo=python&color=204361&labelColor=1E2933)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
65
65
  [![CI](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml/badge.svg)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
66
- [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/)
66
+ [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/en/latest/)
67
67
  [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
68
68
  [![Security](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
69
69
  [![Maintainability](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
@@ -128,7 +128,7 @@ uvx oe-python-template command --help # all options for command
128
128
  * Various Examples:
129
129
  - [Simple Python script]https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/script.py)
130
130
  - [Streamlit web application](https://oe-python-template.streamlit.app/) deployed on [Streamlit Community Cloud](https://streamlit.io/cloud)
131
- - [Jupyter notebook](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
131
+ - [Jupyter](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb) and [Marimo](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py) notebook
132
132
  * [Complete reference documenation](https://oe-python-template.readthedocs.io/en/latest/reference.html) on Read the Docs
133
133
  * [Transparent test coverage](https://app.codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template) including unit and E2E tests (reported on Codecov)
134
134
  * Matrix tested with [multiple python versions](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py) to ensure compatibility (powered by [Nox](https://nox.thea.codes/en/stable/))
@@ -172,9 +172,11 @@ uv sync --all-extras # Install streamlit dependen
172
172
  uv run streamlit run examples/streamlit.py # Serve on localhost:8501, opens browser
173
173
  ```
174
174
 
175
- ## Jupyter Notebook
175
+ ## Notebooks
176
176
 
177
- [Show notebook code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
177
+ ### Jupyter
178
+
179
+ [Show the Jupyter code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb)
178
180
 
179
181
  ... or run within VSCode
180
182
 
@@ -183,7 +185,31 @@ uv sync --all-extras # Install ipykernel dependen
183
185
  ```
184
186
  Install the [Jupyter extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter)
185
187
 
186
- Click on `examples/jupyter.ipynb` in VSCode and run it.
188
+ Click on `examples/notebook.ipynb` in VSCode and run it.
189
+
190
+ ### Marimo
191
+
192
+ [Show the marimo code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py)
193
+
194
+ Execute the notebook as a WASM based web app
195
+
196
+ ```shell
197
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
198
+ uv run marimo run examples/notebook.py --watch # Serve on localhost:2718, opens browser
199
+ ```
200
+
201
+ or edit interactively in your browser
202
+
203
+ ```shell
204
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
205
+ uv run marimo edit examples/notebook.py --watch # Edit on localhost:2718, opens browser
206
+ ```
207
+
208
+ ... or edit interactively within VSCode
209
+
210
+ Install the [Marimo extension for VSCode](https://marketplace.visualstudio.com/items?itemName=marimo-team.vscode-marimo)
211
+
212
+ Click on `examples/notebook.py` in VSCode and click on the caret next to the Run icon above the code (looks like a pencil) > "Start in marimo editor" (edit).
187
213
 
188
214
  ## Command Line Interface (CLI)
189
215
 
@@ -4,7 +4,7 @@
4
4
  ](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/LICENSE)
5
5
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oe-python-template.svg?logo=python&color=204361&labelColor=1E2933)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
6
6
  [![CI](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml/badge.svg)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
7
- [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/)
7
+ [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/en/latest/)
8
8
  [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
9
9
  [![Security](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
10
10
  [![Maintainability](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
@@ -69,7 +69,7 @@ uvx oe-python-template command --help # all options for command
69
69
  * Various Examples:
70
70
  - [Simple Python script]https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/script.py)
71
71
  - [Streamlit web application](https://oe-python-template.streamlit.app/) deployed on [Streamlit Community Cloud](https://streamlit.io/cloud)
72
- - [Jupyter notebook](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
72
+ - [Jupyter](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb) and [Marimo](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py) notebook
73
73
  * [Complete reference documenation](https://oe-python-template.readthedocs.io/en/latest/reference.html) on Read the Docs
74
74
  * [Transparent test coverage](https://app.codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template) including unit and E2E tests (reported on Codecov)
75
75
  * Matrix tested with [multiple python versions](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py) to ensure compatibility (powered by [Nox](https://nox.thea.codes/en/stable/))
@@ -113,9 +113,11 @@ uv sync --all-extras # Install streamlit dependen
113
113
  uv run streamlit run examples/streamlit.py # Serve on localhost:8501, opens browser
114
114
  ```
115
115
 
116
- ## Jupyter Notebook
116
+ ## Notebooks
117
117
 
118
- [Show notebook code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
118
+ ### Jupyter
119
+
120
+ [Show the Jupyter code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb)
119
121
 
120
122
  ... or run within VSCode
121
123
 
@@ -124,7 +126,31 @@ uv sync --all-extras # Install ipykernel dependen
124
126
  ```
125
127
  Install the [Jupyter extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter)
126
128
 
127
- Click on `examples/jupyter.ipynb` in VSCode and run it.
129
+ Click on `examples/notebook.ipynb` in VSCode and run it.
130
+
131
+ ### Marimo
132
+
133
+ [Show the marimo code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py)
134
+
135
+ Execute the notebook as a WASM based web app
136
+
137
+ ```shell
138
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
139
+ uv run marimo run examples/notebook.py --watch # Serve on localhost:2718, opens browser
140
+ ```
141
+
142
+ or edit interactively in your browser
143
+
144
+ ```shell
145
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
146
+ uv run marimo edit examples/notebook.py --watch # Edit on localhost:2718, opens browser
147
+ ```
148
+
149
+ ... or edit interactively within VSCode
150
+
151
+ Install the [Marimo extension for VSCode](https://marketplace.visualstudio.com/items?itemName=marimo-team.vscode-marimo)
152
+
153
+ Click on `examples/notebook.py` in VSCode and click on the caret next to the Run icon above the code (looks like a pencil) > "Start in marimo editor" (edit).
128
154
 
129
155
  ## Command Line Interface (CLI)
130
156
 
@@ -1,6 +1,20 @@
1
- [🧠 OE Python Template](https://oe-python-template.readthedocs.io/)
1
+ [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
2
 
3
- ## [0.1.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.2..0.1.3) - 2025-03-02
3
+ ## [0.2.0](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.4..v0.2.0) - 2025-03-02
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Start to document the template and setup process - ([d37c39c](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/d37c39c518736301aadf1192f9a48c4cfd1ded6e))
8
+
9
+
10
+ ## [0.1.4](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.3..v0.1.4) - 2025-03-02
11
+
12
+ ### ⛰️ Features
13
+
14
+ - *(notebooks)* Introduce marimo - ([5d8eb68](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/5d8eb687da96d5111130f67079cc8cbee06ca20e))
15
+
16
+
17
+ ## [0.1.3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.1.2..v0.1.3) - 2025-03-02
4
18
 
5
19
  ### ⚙️ Miscellaneous Tasks
6
20
 
@@ -0,0 +1,62 @@
1
+ # Setup service connections
2
+
3
+ ## Reporting code coverage via CodeCov (codecov.io)
4
+
5
+ 1. Sign-Up at https://app.codecov.io/
6
+ 2. Configure via https://app.codecov.io/gh/helmut-hoffer-von-ankershoffen
7
+ 3. Copy value of `CODECOV_TOKEN` into your clipboard
8
+ 4. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/settings/secrets/actions/new and create a new repository secret called `CODECOV_TOKEN`, pasting the token from your clipboard as value
9
+ 5. Re-run the `CI / test` GitHub job in case you tried before and it failed as Codecov was not yet wired up
10
+
11
+ ## Analyzing code quality and security analysis via SonarQube cloud (sonarcloud.io)
12
+
13
+ 1. Sign-Up at https://sonarcloud.io
14
+ 2. Grant access to your new repo via https://github.com/settings/installations -> Configure
15
+ 3. Goto https://sonarcloud.io/projects/create and select the repo
16
+ 4. Select Previous Code when prompted
17
+ 5. Configure by going to https://sonarcloud.io/project/configuration?id=helmut-hoffer-von-ankershoffen_oe-python-template and clicking on "With GitHub Actions". Copy the value of `SONAR_TOKEN` into your clipboard.
18
+ 6. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/settings/secrets/actions/new and create a new repository secret called `SONAR_TOKEN`, pasting the token from your clipboard as the value
19
+ 7. Goto https://sonarcloud.io/project/settings?id=helmut-hoffer-von-ankershoffen_oe-python-template and select "Quality Gate" in the left menu. Select "Sonar way" as default quality gate.
20
+ 8. Re-run the `CI / test` GitHub job in case you tried before and it failed as SonarQube was not yet wired up
21
+
22
+ ## Generating and publishing documentation via ReadTheDocs (readthedocs.org)
23
+
24
+ 1. Sign-Up at https://readthed§cs.org/
25
+ 2. Goto https://app.readthedocs.org/dashboard/import/ and search for your repo by enterin oe-python-template in the search bar
26
+ 3. Select the repo and click Continue, then Next.
27
+ 4. On https://app.readthedocs.org/projects/oe-python-template/ wait for the build of the documentation to finish
28
+ 5. Goto https://oe-python-template.readthedocs.io/en/latest/
29
+
30
+ ## Publishing package to Python Package Index (pypi.org)
31
+
32
+ 1. Execute `uv run build`. This will generate the build files (wheel and tar.gz) in the `dist` folder
33
+ 2. Sign-Up at https://pypi.org/
34
+ 3. Goto https://pypi.org/manage/account/ and create an API token of scope "Entire account", calling it oe-python-template. Copy the value of the token into your clipboard.
35
+ 4. Execute `uv run publish`, entering __token__ as username and paste the token from your clipboard as password. This will register your package on PyPI and upload the build files
36
+ 5. Goto https://pypi.org/manage/account/ again and delete the previously created token oe-python-template of scope "Entire account".
37
+ 6. Now create an new API token, again called oe-python-template, but this time of scope "Project: oe-python-template". Copy the token into your clipboard.
38
+ 7. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/settings/secrets/actions/new and delete the previously created token.
39
+ 8. Then create a new repository secret called `UV_PUBLISH_TOKEN`, pasting the token from your clipboard as value
40
+ 9. In case your `CI / test` job passed, and you are ready to release and publish, bump the version of your project by executing `bump`. In case you tried before completing this setup script, you can as well go to https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/package-build-publish-release.yml, click on the failed job, and re-run.
41
+
42
+ ## Publishing Docker images to Docker Hub (docker.io)
43
+
44
+ 1. Sign-Up at https://hub.docker.com/
45
+ 2. Click on your avatar or profile pic and copy the username belwo that into your clipboard.
46
+ 3. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/settings/secrets/actions/new and create a new repository secret called `DOCKER_LOGIN`, setting your username at Docker Hub as the value
47
+ 4. Goto https://app.docker.com/settings/personal-access-tokens/create and create a new access token setting the description to oe-python-template, permissions Read & Write & Delete. Copy the value of the token into your clipboard.
48
+ 5. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/settings/secrets/actions/new and create a new repository secret called `DOCKER_PASSWORD`, pasting the token from your clipboard as the value
49
+ 6. In case your `CI / test` job passed, and you are ready to release and publish, bump the version of your project by executing `bump`. In case you tried before completing this setup script, you can as well go to https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/package-build-publish-release.yml, click on the failed job, and re-run.
50
+
51
+ ## Publishing Docker images to GitHub Container Registry (ghcr.io)
52
+
53
+ 1. This just works, no further setup required.
54
+ 2. Just `bump` to release and publish.
55
+
56
+ ## Streamlit app (streamlit.io)
57
+
58
+ 1. Sign-up at https://streamlit.io
59
+ 2. In settings connect your GitHub account
60
+ 3. Goto https://share.streamlit.io/new and click "Deploy a public app from GitHub"
61
+ 4. Select the oe-python-template repo, for "Main file path" select `examples/streamlit.py`, for App URL enter `oe-python-template`.streamlit.app. Click "Deploy"
62
+ 5. Goto https://oe-python-template.streamlit.app
@@ -0,0 +1 @@
1
+ 0.2.0
@@ -4,7 +4,7 @@
4
4
  ](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/LICENSE)
5
5
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oe-python-template.svg?logo=python&color=204361&labelColor=1E2933)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
6
6
  [![CI](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml/badge.svg)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
7
- [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/)
7
+ [![Read the Docs](https://img.shields.io/readthedocs/oe-python-template)](https://oe-python-template.readthedocs.io/en/latest/)
8
8
  [![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
9
9
  [![Security](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
10
10
  [![Maintainability](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
@@ -38,7 +38,7 @@ uvx oe-python-template command --help # all options for command
38
38
  * Various Examples:
39
39
  - [Simple Python script]https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/script.py)
40
40
  - [Streamlit web application](https://oe-python-template.streamlit.app/) deployed on [Streamlit Community Cloud](https://streamlit.io/cloud)
41
- - [Jupyter notebook](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
41
+ - [Jupyter](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb) and [Marimo](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py) notebook
42
42
  * [Complete reference documenation](https://oe-python-template.readthedocs.io/en/latest/reference.html) on Read the Docs
43
43
  * [Transparent test coverage](https://app.codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template) including unit and E2E tests (reported on Codecov)
44
44
  * Matrix tested with [multiple python versions](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py) to ensure compatibility (powered by [Nox](https://nox.thea.codes/en/stable/))
@@ -82,9 +82,11 @@ uv sync --all-extras # Install streamlit dependen
82
82
  uv run streamlit run examples/streamlit.py # Serve on localhost:8501, opens browser
83
83
  ```
84
84
 
85
- ## Jupyter Notebook
85
+ ## Notebooks
86
86
 
87
- [Show notebook code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/jupyter.ipynb)
87
+ ### Jupyter
88
+
89
+ [Show the Jupyter code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.ipynb)
88
90
 
89
91
  ... or run within VSCode
90
92
 
@@ -93,7 +95,31 @@ uv sync --all-extras # Install ipykernel dependen
93
95
  ```
94
96
  Install the [Jupyter extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter)
95
97
 
96
- Click on `examples/jupyter.ipynb` in VSCode and run it.
98
+ Click on `examples/notebook.ipynb` in VSCode and run it.
99
+
100
+ ### Marimo
101
+
102
+ [Show the marimo code](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/examples/notebook.py)
103
+
104
+ Execute the notebook as a WASM based web app
105
+
106
+ ```shell
107
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
108
+ uv run marimo run examples/notebook.py --watch # Serve on localhost:2718, opens browser
109
+ ```
110
+
111
+ or edit interactively in your browser
112
+
113
+ ```shell
114
+ uv sync --all-extras # Install ipykernel dependency part of the examples extra, see pyproject.toml
115
+ uv run marimo edit examples/notebook.py --watch # Edit on localhost:2718, opens browser
116
+ ```
117
+
118
+ ... or edit interactively within VSCode
119
+
120
+ Install the [Marimo extension for VSCode](https://marketplace.visualstudio.com/items?itemName=marimo-team.vscode-marimo)
121
+
122
+ Click on `examples/notebook.py` in VSCode and click on the caret next to the Run icon above the code (looks like a pencil) > "Start in marimo editor" (edit).
97
123
 
98
124
  ## Command Line Interface (CLI)
99
125
 
@@ -34,11 +34,14 @@ project_name_snake_case_upper:
34
34
  project_description:
35
35
  type: str
36
36
  help: What does project {{ project_name }} do in one sentence?
37
- placeholder: Python project complying with operational excellence practices.
37
+ placeholder: "Python project complying with operational excellence practices."
38
38
  validator: >-
39
- {% if not project_description.strip() %}
40
- Invalid project description
41
- {% endif %}
39
+ {% if not project_description.strip() %}
40
+ Project description must not be empty.
41
+ {% endif %}
42
+ {% if not project_description.strip().endswith('.') %}
43
+ Project description must end with a dot.
44
+ {% endif %}
42
45
 
43
46
  author_name:
44
47
  type: str
@@ -190,12 +193,12 @@ streamlit_project_key:
190
193
  # - application
191
194
  # - shared library
192
195
  # default: package
193
- #
196
+ #
194
197
  # python_version:
195
198
  # type: str
196
199
  # help: "{% if project_type == 'app' %}Which Python version should your app use?{% else %}What is the minimum Python version your package should support?{% endif %}"
197
200
  # default: "{% if project_type == 'app' %}3.12{% else %}3.10{% endif %}"
198
- #
201
+ #
199
202
  # ci:
200
203
  # type: str
201
204
  # help: Which CI/CD provider would you like to use?
@@ -204,7 +207,7 @@ streamlit_project_key:
204
207
  # GitLab CI/CD: gitlab
205
208
  # default: "{% if 'github' in project_url %}github{% else %}gitlab{% endif %}"
206
209
  # when: "{{ 'github' not in project_url and 'gitlab' not in project_url }}"
207
- #
210
+ #
208
211
  # typing:
209
212
  # type: str
210
213
  # help: Do you want to use optional or strict typing and linting?
@@ -212,18 +215,18 @@ streamlit_project_key:
212
215
  # Optional: optional
213
216
  # Strict: strict
214
217
  # default: optional
215
- #
218
+ #
216
219
  # with_conventional_commits:
217
220
  # type: bool
218
221
  # help: Do you want to follow the Conventional Commits standard (https://www.conventionalcommits.org) for your commit messages?
219
222
  # default: true
220
- #
223
+ #
221
224
  # with_fastapi_api:
222
225
  # type: bool
223
226
  # help: Does your app need a FastAPI API?
224
227
  # default: false
225
228
  # when: "{{ project_type == 'app' }}"
226
- #
229
+ #
227
230
  # with_typer_cli:
228
231
  # type: bool
229
232
  # help: Does your {{ project_type }} need a Typer CLI?
@@ -25,7 +25,7 @@ extensions = [
25
25
  project = "oe-python-template"
26
26
  author = "Helmut Hoffer von Ankershoffen"
27
27
  copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
28
- version = "0.1.3"
28
+ version = "0.2.0"
29
29
  release = version
30
30
  github_username = "helmut-hoffer-von-ankershoffen"
31
31
  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
+ }
@@ -0,0 +1,18 @@
1
+ import marimo
2
+
3
+ __generated_with = "0.11.13"
4
+ app = marimo.App()
5
+
6
+
7
+ @app.cell
8
+ def _():
9
+ from oe_python_template import Service
10
+
11
+ service = Service()
12
+ message = service.get_hello_world()
13
+ message
14
+ return Service, message, service
15
+
16
+
17
+ if __name__ == "__main__":
18
+ app.run()
@@ -14,7 +14,7 @@ from oe_python_template import (
14
14
 
15
15
  sidebar = st.sidebar
16
16
  sidebar.write(
17
- f" [OE Python Template v{__version__}](https://oe-python-template.readthedocs.io/)",
17
+ f" [OE Python Template v{__version__}](https://oe-python-template.readthedocs.io/en/latest/)",
18
18
  )
19
19
  sidebar.write("Built with love in Berlin 🐻")
20
20
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.1.3"
3
+ version = "0.2.0"
4
4
  description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -50,8 +50,8 @@ dependencies = [
50
50
  oe-python-template = "oe_python_template.cli:cli"
51
51
 
52
52
  [project.urls]
53
- Homepage = "https://oe-python-template.readthedocs.io/"
54
- Documentation = "https://oe-python-template.readthedocs.io/"
53
+ Homepage = "https://oe-python-template.readthedocs.io/en/latest/"
54
+ Documentation = "https://oe-python-template.readthedocs.io/en/latest/"
55
55
  Source = "https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template"
56
56
  Changelog = "https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/releases"
57
57
  Issues = "https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/issues"
@@ -104,7 +104,7 @@ target-version = "py311"
104
104
  preview = true
105
105
  fix = true
106
106
  line-length = 120
107
- exclude = [".fixme"]
107
+ exclude = [".fixme","notebook.py"]
108
108
 
109
109
 
110
110
  [tool.ruff.lint]
@@ -156,6 +156,10 @@ ignore = [
156
156
  ]
157
157
 
158
158
  [tool.ruff.lint.extend-per-file-ignores]
159
+ "examples/notebook.py" = [
160
+ # we are more relaxed in notebooks, while sill applying hundreds of rules
161
+ "B018", # notebooks surface variable without print
162
+ ]
159
163
 
160
164
  [tool.ruff.format]
161
165
  docstring-code-format = true
@@ -189,7 +193,7 @@ source = ["src/"]
189
193
 
190
194
 
191
195
  [tool.bumpversion]
192
- current_version = "0.1.3"
196
+ current_version = "0.2.0"
193
197
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
194
198
  serialize = ["{major}.{minor}.{patch}"]
195
199
  search = "{current_version}"
@@ -236,7 +240,7 @@ output = "CHANGELOG.md"
236
240
  render = true
237
241
  # template for the changelog header
238
242
  header = """
239
- [🧠 OE Python Template](https://oe-python-template.readthedocs.io/)\n
243
+ [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)\n
240
244
  """
241
245
  # template for the changelog body
242
246
  # https://keats.github.io/tera/docs/#introduction
@@ -1,8 +1,8 @@
1
1
  sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template
2
2
  sonar.organization=helmut-hoffer-von-ankershoffen
3
- sonar.projectVersion=0.1.3
3
+ sonar.projectVersion=0.2.0
4
4
  sonar.projectDescription=OE Python Template
5
- sonar.links.homepage=https://oe-python-template.readthedocs.io
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
7
7
  sonar.links.ci=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions
8
8
  sonar.links.issues=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/issues
@@ -29,6 +29,7 @@
29
29
  "gruntfuggly.todo-tree",
30
30
  "joshrmosier.streamlit-runner",
31
31
  "kaih2o.python-resource-monitor",
32
+ "marimo-team.vscode-marimo",
32
33
  "mikestead.dotenv",
33
34
  "ms-azuretools.vscode-docker",
34
35
  "ms-python.debugpy",
@@ -11,6 +11,7 @@
11
11
  "gruntfuggly.todo-tree",
12
12
  "joshrmosier.streamlit-runner",
13
13
  "kaih2o.python-resource-monitor",
14
+ "marimo-team.vscode-marimo",
14
15
  "mikestead.dotenv",
15
16
  "ms-azuretools.vscode-docker",
16
17
  "ms-python.debugpy",
@@ -42,7 +42,8 @@ tests/ # Unit and E2E tests
42
42
  └── fixtures/ # Fixtures and mock data
43
43
  examples/ # Example code demonstrating use of the project
44
44
  ├── streamlit.py # Streamlit App, deployed in Streamlit Community Cloud
45
- ├── jupyter.ipynb # Jupyter notebook
45
+ ├── notebook.py # Marimo notebook
46
+ ├── notebook.ipynb # Jupyter notebook
46
47
  └── script.py # Minimal script
47
48
  ```
48
49
 
@@ -0,0 +1 @@
1
+ Will be generated from readme_*.md partials.