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.
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.copier-answers.yml +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/devcontainer.json +1 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.secrets.baseline +1 -1
- {oe_python_template-0.1.3/template → oe_python_template-0.2.0}/.vscode/extensions.json +1 -0
- oe_python_template-0.1.3/RELEASE_NOTES.md → oe_python_template-0.2.0/CHANGELOG.md +15 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/CONTRIBUTING.md +2 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/PKG-INFO +34 -8
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/README.md +31 -5
- oe_python_template-0.1.3/CHANGELOG.md → oe_python_template-0.2.0/RELEASE_NOTES.md +16 -2
- oe_python_template-0.2.0/SERVICE_CONNECTIONS.md +62 -0
- oe_python_template-0.2.0/VERSION +1 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_header.md +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_main.md +30 -4
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/copier.yml +13 -10
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/conf.py +1 -1
- oe_python_template-0.2.0/examples/notebook.ipynb +46 -0
- oe_python_template-0.2.0/examples/notebook.py +18 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/streamlit.py +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/pyproject.toml +10 -6
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/sonar-project.properties +2 -2
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/devcontainer.json.jinja +1 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0/template}/.vscode/extensions.json +1 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CONTRIBUTING.md.jinja +2 -1
- oe_python_template-0.2.0/template/README.md +1 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/SERVICE_CONNECTIONS.md.jinja +16 -8
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_header.md.jinja +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_main.md.jinja +86 -7
- oe_python_template-0.2.0/template/bump.jinja +3 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/conf.py.jinja +3 -3
- oe_python_template-0.2.0/template/examples/notebook.py.jinja +18 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/streamlit.py.jinja +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/pyproject.toml.jinja +8 -4
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/sonar-project.properties.jinja +1 -1
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/uv.lock +1 -1
- oe_python_template-0.1.3/VERSION +0 -1
- oe_python_template-0.1.3/template/bump.jinja +0 -3
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.act-env +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.act-secret +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/Dockerfile +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/onCreateCommand +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.env.example +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/docker-image-build-publish.yml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/package-build-publish-release.yml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.github/workflows/test-and-report.yml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.gitignore +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.pre-commit-config.yaml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.python-version +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.readthedocs.yml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/.vscode/settings.json +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/CODEOWNERS +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/Dockerfile +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/LICENSE +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/_readme_footer.md +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/bin/git-cliff +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/bump +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/codecov.yml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/compose.yaml +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/Makefile +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/make.bat +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/_static/.keep +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/contributing.rst +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/index.rst +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/latexmkrc +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/main.rst +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/reference.rst +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/docs/source/release-notes.rst +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/__init__.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/jupyter.ipynb +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/examples/script.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {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
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/github-action-run +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/latexmkrc +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/logo.png +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/noxfile.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/__init__.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/cli.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/constants.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/src/oe_python_template/service.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.act-env.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.act-secret.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/Dockerfile.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/onCreateCommand.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/postAttachCommand.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.devcontainer/postCreateCommand.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.env.example.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.github/workflows/test-and-report.yml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.gitignore.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.pre-commit-config.yaml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.python-version +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.readthedocs.yml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/.vscode/settings.json +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CHANGELOG.md +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/CODEOWNERS.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/Dockerfile.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/LICENSE.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/VERSION +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/_readme_footer.md.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/codecov.yml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/compose.yaml.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/Makefile.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/make.bat.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/_static/.keep +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/contributing.rst.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/index.rst.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/latexmkrc.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/main.rst.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/reference.rst.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/docs/source/release-notes.rst.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/__init__.py.jinja +0 -0
- /oe_python_template-0.1.3/template/examples/jupyter.ipynb.jinja → /oe_python_template-0.2.0/template/examples/notebook.ipynb.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/examples/script.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/github-action-run.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/latexmkrc.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/logo.png +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/noxfile.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/__init__.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/cli_test.py.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/tests/fixtures/.keep +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/template/{{_copier_conf.answers_file}}.jinja +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/__init__.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/cli_test.py +0 -0
- {oe_python_template-0.1.3 → oe_python_template-0.2.0}/tests/fixtures/.keep +0 -0
|
@@ -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
|
-
├──
|
|
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.
|
|
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
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
|
|
65
65
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
|
|
66
|
-
[](https://oe-python-template.readthedocs.io/)
|
|
66
|
+
[](https://oe-python-template.readthedocs.io/en/latest/)
|
|
67
67
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
68
68
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
69
69
|
[](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
|
|
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
|
-
##
|
|
175
|
+
## Notebooks
|
|
176
176
|
|
|
177
|
-
|
|
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/
|
|
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
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
|
|
6
6
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
|
|
7
|
-
[](https://oe-python-template.readthedocs.io/)
|
|
7
|
+
[](https://oe-python-template.readthedocs.io/en/latest/)
|
|
8
8
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
9
9
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
10
10
|
[](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
|
|
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
|
-
##
|
|
116
|
+
## Notebooks
|
|
117
117
|
|
|
118
|
-
|
|
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/
|
|
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.
|
|
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
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/blob/main/noxfile.py)
|
|
6
6
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/actions/workflows/test-and-report.yml)
|
|
7
|
-
[](https://oe-python-template.readthedocs.io/)
|
|
7
|
+
[](https://oe-python-template.readthedocs.io/en/latest/)
|
|
8
8
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
9
9
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template)
|
|
10
10
|
[](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
|
|
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
|
-
##
|
|
85
|
+
## Notebooks
|
|
86
86
|
|
|
87
|
-
|
|
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/
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
@@ -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
|
-
├──
|
|
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.
|