oe-python-template-example 0.2.1__tar.gz → 0.2.3__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_example-0.2.1 → oe_python_template_example-0.2.3}/.copier-answers.yml +1 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/CONTRIBUTING.md +9 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/PKG-INFO +2 -2
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/README.md +1 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/SECURITY.md +1 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/SERVICE_CONNECTIONS.md +1 -1
- oe_python_template_example-0.2.3/VERSION +1 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_header.md +1 -1
- oe_python_template_example-0.2.3/docs/source/_static/openapi_v1.yaml +14 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/openapi_v2.yaml +16 -32
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/api_v1.rst +4 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/api_v2.rst +4 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/conf.py +1 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/main.rst +0 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/n +1 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/noxfile.py +9 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/pyproject.toml +2 -2
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/sonar-project.properties +1 -1
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/src/oe_python_template_example/api.py +4 -3
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/uv.lock +1 -1
- oe_python_template_example-0.2.1/VERSION +0 -1
- oe_python_template_example-0.2.1/docs/source/_static/openapi_v1.yaml +0 -204
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.act-env-public +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/Dockerfile +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/devcontainer.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/onCreateCommand +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.env.example +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/copilot-instructions.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/dependabot.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/workflows/codeql.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/workflows/docker-image-build-publish.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/workflows/package-build-publish-release.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/workflows/test-and-report.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.gitignore +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.pre-commit-config.yaml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.python-version +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.readthedocs.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.secrets.baseline +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.vscode/extensions.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.vscode/settings.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/CHANGELOG.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/CODEOWNERS +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/CODE_STYLE.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/Dockerfile +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/LICENSE +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/RELEASE_NOTES.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/bin/git-cliff +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/codecov.yml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/compose.yaml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/Makefile +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/make.bat +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_footer.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_main.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/.keep +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/openapi.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/openapi.yaml +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/openapi_v1.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/openapi_v2.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/code-style.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/contributing.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/index.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/reference.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/release-notes.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/security.rst +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/__init__.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/notebook.ipynb +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/notebook.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/script.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/streamlit.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/github-action-run +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/logo.png +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/renovate.json +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/reports/.keep +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/src/oe_python_template_example/cli.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/src/oe_python_template_example/service.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/tests/__init__.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/tests/api_test.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/tests/cli_test.py +0 -0
- {oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/tests/fixtures/.keep +0 -0
@@ -131,12 +131,20 @@ docker run --env THE_VAR=THE_VALUE oe-python-template-example --help
|
|
131
131
|
|
132
132
|
### Copier
|
133
133
|
|
134
|
-
Update
|
134
|
+
Update from template
|
135
135
|
|
136
136
|
```shell
|
137
137
|
uv run nox -s update_from_template
|
138
138
|
```
|
139
139
|
|
140
|
+
### Generate PDF manual
|
141
|
+
|
142
|
+
```shell
|
143
|
+
brew install mactex # install MacTeX, will take a while and requires sudo
|
144
|
+
./n docs_pdf # build latex, then generate pdf from it. Output in docs/build/latex/oe-python-template-example.pdf
|
145
|
+
```
|
146
|
+
|
147
|
+
|
140
148
|
## Pull Request Guidelines
|
141
149
|
|
142
150
|
- Before starting to write code read the [code style guide](CODE_STYLE.md) document for mandatory coding style
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template-example
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.3
|
4
4
|
Summary: 🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template).
|
5
5
|
Project-URL: Homepage, https://oe-python-template-example.readthedocs.io/en/latest/
|
6
6
|
Project-URL: Documentation, https://oe-python-template-example.readthedocs.io/en/latest/
|
@@ -76,7 +76,7 @@ Description-Content-Type: text/markdown
|
|
76
76
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
77
77
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
78
78
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
79
|
-
[](https://
|
79
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
80
80
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
81
81
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
82
82
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -15,7 +15,7 @@
|
|
15
15
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
16
16
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
17
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
18
|
-
[](https://
|
18
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
19
19
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
20
20
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
21
21
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -21,7 +21,7 @@ OE Python Template Example employs several automated tools to continuously monit
|
|
21
21
|
### 1. Dependency Vulnerability Scanning
|
22
22
|
|
23
23
|
- **GitHub Dependabot**: Monitors dependencies for known vulnerabilities and automatically creates pull requests to update them when security issues are found. [Dependendabot alerts](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot) published.
|
24
|
-
- **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues) published.
|
24
|
+
- **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) published.
|
25
25
|
- **pip-audit**: Regularly scans Python dependencies for known vulnerabilities using data from the Python Advisory Database. `vulnerabilities.json` published [per release](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases).
|
26
26
|
|
27
27
|
### 2. Dependency Compliance
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/SERVICE_CONNECTIONS.md
RENAMED
@@ -31,7 +31,7 @@
|
|
31
31
|
|
32
32
|
1. Goto https://github.com/apps/renovate and click the "Configure" button
|
33
33
|
2. Select the owner of your project's repository and configure "Repository access"
|
34
|
-
3. Rennovate creates a [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues) as an issue in your repository
|
34
|
+
3. Rennovate creates a [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) as an issue in your repository
|
35
35
|
|
36
36
|
## Publishing package to Python Package Index (pypi.org)
|
37
37
|
|
@@ -0,0 +1 @@
|
|
1
|
+
0.2.3
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_header.md
RENAMED
@@ -12,7 +12,7 @@
|
|
12
12
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
13
13
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
14
14
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
15
|
-
[](https://
|
15
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
16
16
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
17
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
18
18
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Traceback (most recent call last):
|
2
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/bin/oe-python-template-example", line 4, in <module>
|
3
|
+
from oe_python_template_example.cli import cli
|
4
|
+
File "/Users/helmut/Code/oe-python-template-example/src/oe_python_template_example/cli.py", line 9, in <module>
|
5
|
+
import yaml
|
6
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/yaml/__init__.py", line 8, in <module>
|
7
|
+
from .loader import *
|
8
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/yaml/loader.py", line 8, in <module>
|
9
|
+
from .constructor import *
|
10
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/yaml/constructor.py", line 19, in <module>
|
11
|
+
class BaseConstructor:
|
12
|
+
...<149 lines>...
|
13
|
+
cls.yaml_multi_constructors[tag_prefix] = multi_constructor
|
14
|
+
KeyboardInterrupt
|
@@ -104,12 +104,9 @@ openapi: 3.1.0
|
|
104
104
|
paths:
|
105
105
|
/echo:
|
106
106
|
post:
|
107
|
-
description: "Echo back the provided utterance.\n\nArgs:\n request
|
108
|
-
|
109
|
-
\
|
110
|
-
EchoResponse:\
|
111
|
-
\ A response containing the echoed utterance.\n\nRaises:\n 422
|
112
|
-
Unprocessable\
|
107
|
+
description: "Echo back the provided utterance.\n\nArgs:\n request (Utterance):\
|
108
|
+
\ The request containing the utterance to echo back.\n\nReturns:\n EchoResponse:\
|
109
|
+
\ A response containing the echoed utterance.\n\nRaises:\n 422 Unprocessable\
|
113
110
|
\ Entity: If utterance is not provided or empty."
|
114
111
|
operationId: echo_v2_echo_post
|
115
112
|
requestBody:
|
@@ -136,18 +133,12 @@ Unprocessable\
|
|
136
133
|
- Basics
|
137
134
|
/health:
|
138
135
|
get:
|
139
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
140
|
-
the\
|
141
|
-
|
142
|
-
DOWN.\
|
143
|
-
|
144
|
-
unhealthy
|
145
|
-
\ the status will be DOWN and a reason will be provided.\nThe response
|
146
|
-
will\
|
147
|
-
\ have a 200 OK status code if the service is healthy,\nand a 500
|
148
|
-
Internal\
|
149
|
-
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
150
|
-
Health:\
|
136
|
+
description: "Check the health of the service.\n\nThis endpoint returns the\
|
137
|
+
\ health status of the service.\nThe health status can be either UP or DOWN.\n\
|
138
|
+
If the service is healthy, the status will be UP.\nIf the service is unhealthy,\
|
139
|
+
\ the status will be DOWN and a reason will be provided.\nThe response will\
|
140
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500 Internal\
|
141
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n Health:\
|
151
142
|
\ The health status of the service."
|
152
143
|
operationId: health_health_get
|
153
144
|
responses:
|
@@ -162,18 +153,12 @@ Health:\
|
|
162
153
|
- Observability
|
163
154
|
/healthz:
|
164
155
|
get:
|
165
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
166
|
-
the\
|
167
|
-
|
168
|
-
DOWN.\
|
169
|
-
|
170
|
-
unhealthy
|
171
|
-
\ the status will be DOWN and a reason will be provided.\nThe response
|
172
|
-
will\
|
173
|
-
\ have a 200 OK status code if the service is healthy,\nand a 500
|
174
|
-
Internal\
|
175
|
-
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
176
|
-
Health:\
|
156
|
+
description: "Check the health of the service.\n\nThis endpoint returns the\
|
157
|
+
\ health status of the service.\nThe health status can be either UP or DOWN.\n\
|
158
|
+
If the service is healthy, the status will be UP.\nIf the service is unhealthy,\
|
159
|
+
\ the status will be DOWN and a reason will be provided.\nThe response will\
|
160
|
+
\ have a 200 OK status code if the service is healthy,\nand a 500 Internal\
|
161
|
+
\ Server Error status code if the service is unhealthy.\n\nReturns:\n Health:\
|
177
162
|
\ The health status of the service."
|
178
163
|
operationId: health_healthz_get
|
179
164
|
responses:
|
@@ -188,8 +173,7 @@ Health:\
|
|
188
173
|
- Observability
|
189
174
|
/hello-world:
|
190
175
|
get:
|
191
|
-
description: "Return a hello world message.\n\nReturns:\n
|
192
|
-
HelloWorldResponse:\
|
176
|
+
description: "Return a hello world message.\n\nReturns:\n HelloWorldResponse:\
|
193
177
|
\ A response containing the hello world message."
|
194
178
|
operationId: hello_world_hello_world_get
|
195
179
|
responses:
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/api_v1.rst
RENAMED
@@ -6,6 +6,10 @@ API V1
|
|
6
6
|
.. swagger-plugin:: _static/openapi_v1.yaml
|
7
7
|
:full-page:
|
8
8
|
|
9
|
+
.. only:: singlehtml
|
10
|
+
|
11
|
+
Visit the `Interactive API Documentation <https://oe-python-template-example.readthedocs.io/en/latest/api_v1.html>`_
|
12
|
+
|
9
13
|
.. only:: latex
|
10
14
|
|
11
15
|
Visit the `Interactive API Documentation <https://oe-python-template-example.readthedocs.io/en/latest/api_v1.html>`_
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/api_v2.rst
RENAMED
@@ -6,6 +6,10 @@ API V2
|
|
6
6
|
.. swagger-plugin:: _static/openapi_v2.yaml
|
7
7
|
:full-page:
|
8
8
|
|
9
|
+
.. only:: singlehtml
|
10
|
+
|
11
|
+
Visit the `Interactive API Documentation <https://oe-python-template-example.readthedocs.io/en/latest/api_v2.html>`_
|
12
|
+
|
9
13
|
.. only:: latex
|
10
14
|
|
11
15
|
Visit the `Interactive API Documentation <https://oe-python-template-example.readthedocs.io/en/latest/api_v2.html>`_
|
@@ -29,7 +29,7 @@ extensions = [
|
|
29
29
|
project = "oe-python-template-example"
|
30
30
|
author = "Helmut Hoffer von Ankershoffen"
|
31
31
|
copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
|
32
|
-
version = "0.2.
|
32
|
+
version = "0.2.3"
|
33
33
|
release = version
|
34
34
|
github_username = "helmut-hoffer-von-ankershoffen"
|
35
35
|
github_repository = "oe-python-template-example"
|
@@ -78,6 +78,15 @@ def docs(session: nox.Session) -> None:
|
|
78
78
|
# Build docs
|
79
79
|
session.run("make", "-C", "docs", "clean", external=True)
|
80
80
|
session.run("make", "-C", "docs", "html", external=True)
|
81
|
+
session.run("make", "-C", "docs", "singlehtml", external=True)
|
82
|
+
session.run("make", "-C", "docs", "latex", external=True)
|
83
|
+
|
84
|
+
|
85
|
+
@nox.session(python=["3.13"], default=False)
|
86
|
+
def docs_pdf(session: nox.Session) -> None:
|
87
|
+
"""Setup dev environment post project creation."""
|
88
|
+
_setup_venv(session)
|
89
|
+
session.run("make", "-C", "docs", "latexpdf", external=True)
|
81
90
|
|
82
91
|
|
83
92
|
@nox.session(python=["3.13"])
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template-example"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.3"
|
4
4
|
description = "🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template)."
|
5
5
|
readme = "README.md"
|
6
6
|
authors = [
|
@@ -242,7 +242,7 @@ source = ["src/"]
|
|
242
242
|
|
243
243
|
|
244
244
|
[tool.bumpversion]
|
245
|
-
current_version = "0.2.
|
245
|
+
current_version = "0.2.3"
|
246
246
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
247
247
|
serialize = ["{major}.{minor}.{patch}"]
|
248
248
|
search = "{current_version}"
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/sonar-project.properties
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template-example
|
2
2
|
sonar.organization=helmut-hoffer-von-ankershoffen
|
3
|
-
sonar.projectVersion=0.2.
|
3
|
+
sonar.projectVersion=0.2.3
|
4
4
|
sonar.projectDescription=🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template).
|
5
5
|
sonar.links.homepage=https://oe-python-template-example.readthedocs.io/en/latest/
|
6
6
|
sonar.links.scm=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example
|
@@ -18,6 +18,7 @@ from pydantic import BaseModel, Field
|
|
18
18
|
|
19
19
|
from oe_python_template_example import Service
|
20
20
|
|
21
|
+
TITLE = "OE Python Template Example"
|
21
22
|
HELLO_WORLD_EXAMPLE = "Hello, world!"
|
22
23
|
UVICORN_HOST = os.environ.get("UVICORN_HOST", "127.0.0.1")
|
23
24
|
UVICORN_PORT = os.environ.get("UVICORN_PORT", "8000")
|
@@ -43,7 +44,7 @@ def get_service() -> Generator[Service, None, None]:
|
|
43
44
|
|
44
45
|
api = FastAPI(
|
45
46
|
root_path="/api",
|
46
|
-
title=
|
47
|
+
title=TITLE,
|
47
48
|
contact={
|
48
49
|
"name": CONTACT_NAME,
|
49
50
|
"email": CONTACT_EMAIL,
|
@@ -72,7 +73,7 @@ api = FastAPI(
|
|
72
73
|
|
73
74
|
api_v1 = FastAPI(
|
74
75
|
version="1.0.0",
|
75
|
-
title=
|
76
|
+
title=TITLE,
|
76
77
|
contact={
|
77
78
|
"name": CONTACT_NAME,
|
78
79
|
"email": CONTACT_EMAIL,
|
@@ -83,7 +84,7 @@ api_v1 = FastAPI(
|
|
83
84
|
|
84
85
|
api_v2 = FastAPI(
|
85
86
|
version="2.0.0",
|
86
|
-
title=
|
87
|
+
title=TITLE,
|
87
88
|
contact={
|
88
89
|
"name": CONTACT_NAME,
|
89
90
|
"email": CONTACT_EMAIL,
|
@@ -1 +0,0 @@
|
|
1
|
-
0.2.1
|
@@ -1,204 +0,0 @@
|
|
1
|
-
components:
|
2
|
-
schemas:
|
3
|
-
EchoRequest:
|
4
|
-
description: Request model for echo endpoint.
|
5
|
-
properties:
|
6
|
-
text:
|
7
|
-
description: The text to echo back
|
8
|
-
examples:
|
9
|
-
- Hello, world!
|
10
|
-
minLength: 1
|
11
|
-
title: Text
|
12
|
-
type: string
|
13
|
-
required:
|
14
|
-
- text
|
15
|
-
title: EchoRequest
|
16
|
-
type: object
|
17
|
-
EchoResponse:
|
18
|
-
description: Response model for echo endpoint.
|
19
|
-
properties:
|
20
|
-
message:
|
21
|
-
description: The message content
|
22
|
-
examples:
|
23
|
-
- Hello, world!
|
24
|
-
minLength: 1
|
25
|
-
title: Message
|
26
|
-
type: string
|
27
|
-
required:
|
28
|
-
- message
|
29
|
-
title: EchoResponse
|
30
|
-
type: object
|
31
|
-
HTTPValidationError:
|
32
|
-
properties:
|
33
|
-
detail:
|
34
|
-
items:
|
35
|
-
$ref: '#/components/schemas/ValidationError'
|
36
|
-
title: Detail
|
37
|
-
type: array
|
38
|
-
title: HTTPValidationError
|
39
|
-
type: object
|
40
|
-
Health:
|
41
|
-
description: Health status model.
|
42
|
-
properties:
|
43
|
-
reason:
|
44
|
-
anyOf:
|
45
|
-
- type: string
|
46
|
-
- type: 'null'
|
47
|
-
title: Reason
|
48
|
-
status:
|
49
|
-
$ref: '#/components/schemas/_HealthStatus'
|
50
|
-
required:
|
51
|
-
- status
|
52
|
-
title: Health
|
53
|
-
type: object
|
54
|
-
HelloWorldResponse:
|
55
|
-
description: Response model for hello-world endpoint.
|
56
|
-
properties:
|
57
|
-
message:
|
58
|
-
description: The hello world message
|
59
|
-
examples:
|
60
|
-
- Hello, world!
|
61
|
-
title: Message
|
62
|
-
type: string
|
63
|
-
required:
|
64
|
-
- message
|
65
|
-
title: HelloWorldResponse
|
66
|
-
type: object
|
67
|
-
ValidationError:
|
68
|
-
properties:
|
69
|
-
loc:
|
70
|
-
items:
|
71
|
-
anyOf:
|
72
|
-
- type: string
|
73
|
-
- type: integer
|
74
|
-
title: Location
|
75
|
-
type: array
|
76
|
-
msg:
|
77
|
-
title: Message
|
78
|
-
type: string
|
79
|
-
type:
|
80
|
-
title: Error Type
|
81
|
-
type: string
|
82
|
-
required:
|
83
|
-
- loc
|
84
|
-
- msg
|
85
|
-
- type
|
86
|
-
title: ValidationError
|
87
|
-
type: object
|
88
|
-
_HealthStatus:
|
89
|
-
description: Health status enumeration.
|
90
|
-
enum:
|
91
|
-
- UP
|
92
|
-
- DOWN
|
93
|
-
title: _HealthStatus
|
94
|
-
type: string
|
95
|
-
info:
|
96
|
-
contact:
|
97
|
-
email: helmuthva@gmail.com
|
98
|
-
name: Helmut Hoffer von Ankershoffen
|
99
|
-
url: https://github.com/helmut-hoffer-von-ankershoffen
|
100
|
-
termsOfService: https://oe-python-template-example.readthedocs.io/en/latest/
|
101
|
-
title: OE Python Template Example
|
102
|
-
version: 1.0.0
|
103
|
-
openapi: 3.1.0
|
104
|
-
paths:
|
105
|
-
/echo:
|
106
|
-
post:
|
107
|
-
description: "Echo back the provided text.\n\nArgs:\n request
|
108
|
-
(EchoRequest):\
|
109
|
-
\ The request containing the text to echo back.\n\nReturns:\n
|
110
|
-
EchoResponse:\
|
111
|
-
\ A response containing the echoed text.\n\nRaises:\n 422
|
112
|
-
Unprocessable\
|
113
|
-
\ Entity: If text is not provided or empty."
|
114
|
-
operationId: echo_echo_post
|
115
|
-
requestBody:
|
116
|
-
content:
|
117
|
-
application/json:
|
118
|
-
schema:
|
119
|
-
$ref: '#/components/schemas/EchoRequest'
|
120
|
-
required: true
|
121
|
-
responses:
|
122
|
-
'200':
|
123
|
-
content:
|
124
|
-
application/json:
|
125
|
-
schema:
|
126
|
-
$ref: '#/components/schemas/EchoResponse'
|
127
|
-
description: Successful Response
|
128
|
-
'422':
|
129
|
-
content:
|
130
|
-
application/json:
|
131
|
-
schema:
|
132
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
133
|
-
description: Validation Error
|
134
|
-
summary: Echo
|
135
|
-
tags:
|
136
|
-
- Basics
|
137
|
-
/health:
|
138
|
-
get:
|
139
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
140
|
-
the\
|
141
|
-
\ health status of the service.\nThe health status can be either UP or
|
142
|
-
DOWN.\n\
|
143
|
-
If the service is healthy, the status will be UP.\nIf the service is
|
144
|
-
unhealthy,\
|
145
|
-
\ the status will be DOWN and a reason will be provided.\nThe response
|
146
|
-
will\
|
147
|
-
\ have a 200 OK status code if the service is healthy,\nand a 500
|
148
|
-
Internal\
|
149
|
-
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
150
|
-
Health:\
|
151
|
-
\ The health status of the service."
|
152
|
-
operationId: health_health_get
|
153
|
-
responses:
|
154
|
-
'200':
|
155
|
-
content:
|
156
|
-
application/json:
|
157
|
-
schema:
|
158
|
-
$ref: '#/components/schemas/Health'
|
159
|
-
description: Successful Response
|
160
|
-
summary: Health
|
161
|
-
tags:
|
162
|
-
- Observability
|
163
|
-
/healthz:
|
164
|
-
get:
|
165
|
-
description: "Check the health of the service.\n\nThis endpoint returns
|
166
|
-
the\
|
167
|
-
\ health status of the service.\nThe health status can be either UP or
|
168
|
-
DOWN.\n\
|
169
|
-
If the service is healthy, the status will be UP.\nIf the service is
|
170
|
-
unhealthy,\
|
171
|
-
\ the status will be DOWN and a reason will be provided.\nThe response
|
172
|
-
will\
|
173
|
-
\ have a 200 OK status code if the service is healthy,\nand a 500
|
174
|
-
Internal\
|
175
|
-
\ Server Error status code if the service is unhealthy.\n\nReturns:\n
|
176
|
-
Health:\
|
177
|
-
\ The health status of the service."
|
178
|
-
operationId: health_healthz_get
|
179
|
-
responses:
|
180
|
-
'200':
|
181
|
-
content:
|
182
|
-
application/json:
|
183
|
-
schema:
|
184
|
-
$ref: '#/components/schemas/Health'
|
185
|
-
description: Successful Response
|
186
|
-
summary: Health
|
187
|
-
tags:
|
188
|
-
- Observability
|
189
|
-
/hello-world:
|
190
|
-
get:
|
191
|
-
description: "Return a hello world message.\n\nReturns:\n
|
192
|
-
HelloWorldResponse:\
|
193
|
-
\ A response containing the hello world message."
|
194
|
-
operationId: hello_world_hello_world_get
|
195
|
-
responses:
|
196
|
-
'200':
|
197
|
-
content:
|
198
|
-
application/json:
|
199
|
-
schema:
|
200
|
-
$ref: '#/components/schemas/HelloWorldResponse'
|
201
|
-
description: Successful Response
|
202
|
-
summary: Hello World
|
203
|
-
tags:
|
204
|
-
- Basics
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/Dockerfile
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.devcontainer/onCreateCommand
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/dependabot.yml
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.github/workflows/codeql.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.pre-commit-config.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/.vscode/extensions.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_footer.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/partials/README_main.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/_static/.keep
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/code-style.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/contributing.rst
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/reference.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/release-notes.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/docs/source/security.rst
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/examples/notebook.ipynb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/CHANGELOG.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/LICENSE-APACHE
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/LICENSE-MIT
RENAMED
File without changes
|
{oe_python_template_example-0.2.1 → oe_python_template_example-0.2.3}/git-cliff-2.7.0/README.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|