oe-python-template-example 0.0.4__tar.gz → 0.0.8__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.0.4 → oe_python_template_example-0.0.8}/.act-env +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.copier-answers.yml +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.devcontainer/devcontainer.json +0 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.devcontainer/onCreateCommand +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.github/workflows/package-build-publish-release.yml +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.github/workflows/test-and-report.yml +5 -10
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.gitignore +1 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.pre-commit-config.yaml +19 -4
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.vscode/extensions.json +0 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.vscode/settings.json +3 -8
- oe_python_template_example-0.0.4/RELEASE_NOTES.md → oe_python_template_example-0.0.8/CHANGELOG.md +7 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/CODEOWNERS +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/CONTRIBUTING.md +14 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/PKG-INFO +14 -8
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/README.md +8 -4
- oe_python_template_example-0.0.8/RELEASE_NOTES.md +1 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/SERVICE_CONNECTIONS.md +11 -2
- oe_python_template_example-0.0.8/VERSION +1 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/_readme_header.md +5 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/_readme_main.md +3 -3
- oe_python_template_example-0.0.8/bump +7 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/compose.yaml +1 -1
- oe_python_template_example-0.0.8/docs/source/_static/openapi.json +185 -0
- oe_python_template_example-0.0.8/docs/source/_static/openapi.yaml +131 -0
- oe_python_template_example-0.0.8/docs/source/api.rst +5 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/conf.py +3 -2
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/index.rst +4 -3
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/noxfile.py +30 -14
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/pyproject.toml +65 -14
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/sonar-project.properties +2 -2
- oe_python_template_example-0.0.8/src/oe_python_template_example/api.py +87 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/src/oe_python_template_example/cli.py +33 -0
- oe_python_template_example-0.0.8/tests/api_test.py +48 -0
- oe_python_template_example-0.0.8/tests/cli_test.py +75 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/uv.lock +383 -45
- oe_python_template_example-0.0.4/CHANGELOG.md +0 -32
- oe_python_template_example-0.0.4/VERSION +0 -1
- oe_python_template_example-0.0.4/bump +0 -3
- oe_python_template_example-0.0.4/tests/cli_test.py +0 -39
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.act-secret +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.devcontainer/Dockerfile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.env.example +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.github/workflows/docker-image-build-publish.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.python-version +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.readthedocs.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.secrets.baseline +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/Dockerfile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/LICENSE +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/_readme_footer.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/bin/git-cliff +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/codecov.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/Makefile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/make.bat +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/_static/.keep +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/contributing.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/latexmkrc +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/main.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/reference.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/docs/source/release-notes.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/examples/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/examples/notebook.ipynb +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/examples/notebook.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/examples/script.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/examples/streamlit.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/github-action-run +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/latexmkrc +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/logo.png +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/src/oe_python_template_example/service.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/tests/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/tests/fixtures/.keep +0 -0
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
GITHUB_WORKFLOW_RUNTIME=ACT
|
2
2
|
ACTIONS_RUNTIME_TOKEN=TOKEN
|
@@ -31,11 +31,6 @@ jobs:
|
|
31
31
|
enable-cache: true
|
32
32
|
cache-dependency-glob: uv.lock
|
33
33
|
|
34
|
-
- uses: actions/setup-node@v4
|
35
|
-
with:
|
36
|
-
node-version: 18
|
37
|
-
- run: npm install @modelcontextprotocol/inspector@0.3.0
|
38
|
-
|
39
34
|
- name: Install Python, venv and dependencies
|
40
35
|
run: |
|
41
36
|
uv sync --all-extras --frozen --link-mode=copy
|
@@ -52,7 +47,7 @@ jobs:
|
|
52
47
|
fi
|
53
48
|
|
54
49
|
- name: Print development version info
|
55
|
-
if:
|
50
|
+
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
|
56
51
|
run: |
|
57
52
|
TOML_VERSION=$(uv run python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
58
53
|
echo "Development build - Current version in pyproject.toml: $TOML_VERSION"
|
@@ -81,7 +76,7 @@ jobs:
|
|
81
76
|
|
82
77
|
- name: Upload test results
|
83
78
|
uses: actions/upload-artifact@v4
|
84
|
-
if: ${{ always() && (env.
|
79
|
+
if: ${{ always() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
85
80
|
with:
|
86
81
|
name: test-results
|
87
82
|
path: |
|
@@ -95,18 +90,18 @@ jobs:
|
|
95
90
|
|
96
91
|
- name: Upload coverage reports to Codecov
|
97
92
|
uses: codecov/codecov-action@v5
|
98
|
-
if: ${{ !cancelled() && (env.
|
93
|
+
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
99
94
|
with:
|
100
95
|
token: ${{ secrets.CODECOV_TOKEN }}
|
101
96
|
slug: helmut-hoffer-von-ankershoffen/oe-python-template-example
|
102
97
|
|
103
98
|
- name: Upload test results to Codecov
|
104
|
-
if: ${{ !cancelled() && (env.
|
99
|
+
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
105
100
|
uses: codecov/test-results-action@v1
|
106
101
|
with:
|
107
102
|
token: ${{ secrets.CODECOV_TOKEN }}
|
108
103
|
- name: SonarQube Scan
|
109
|
-
if: ${{ !cancelled() && (env.
|
104
|
+
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
110
105
|
uses: SonarSource/sonarqube-scan-action@v4
|
111
106
|
env:
|
112
107
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
{oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/.pre-commit-config.yaml
RENAMED
@@ -6,6 +6,22 @@ default_install_hook_types:
|
|
6
6
|
- post-rewrite
|
7
7
|
fail_fast: true
|
8
8
|
repos:
|
9
|
+
- repo: meta
|
10
|
+
hooks:
|
11
|
+
- id: check-useless-excludes
|
12
|
+
- repo: https://github.com/pre-commit/pygrep-hooks
|
13
|
+
rev: v1.10.0
|
14
|
+
hooks:
|
15
|
+
- id: python-check-blanket-noqa
|
16
|
+
- id: python-check-blanket-type-ignore
|
17
|
+
- id: python-check-mock-methods
|
18
|
+
- id: python-no-eval
|
19
|
+
- id: python-no-log-warn
|
20
|
+
- id: python-use-type-annotations
|
21
|
+
- id: rst-backticks
|
22
|
+
- id: rst-directive-colons
|
23
|
+
- id: rst-inline-touching-normal
|
24
|
+
- id: text-unicode-replacement-char
|
9
25
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
10
26
|
rev: v5.0.0
|
11
27
|
hooks:
|
@@ -37,16 +53,15 @@ repos:
|
|
37
53
|
- id: name-tests-test
|
38
54
|
- id: requirements-txt-fixer
|
39
55
|
- id: trailing-whitespace
|
56
|
+
exclude: "docs/source/_static"
|
40
57
|
- repo: https://github.com/Yelp/detect-secrets
|
41
58
|
rev: v1.5.0
|
42
59
|
hooks:
|
43
|
-
|
60
|
+
- id: detect-secrets
|
44
61
|
args: ['--baseline', '.secrets.baseline']
|
45
62
|
additional_dependencies: ["gibberish-detector"]
|
46
|
-
exclude: package.lock.json
|
47
63
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
48
|
-
|
49
|
-
rev: 0.5.8
|
64
|
+
rev: 0.6.5
|
50
65
|
hooks:
|
51
66
|
- id: uv-lock
|
52
67
|
- repo: local
|
@@ -3,7 +3,6 @@
|
|
3
3
|
"**/__pycache__ ": true
|
4
4
|
},
|
5
5
|
"editor.formatOnSave": true,
|
6
|
-
"editor.defaultFormatter": "charliermarsh.ruff",
|
7
6
|
"terminal.integrated.scrollback": 100000,
|
8
7
|
"[python]": {
|
9
8
|
"editor.codeActionsOnSave": {
|
@@ -40,7 +39,7 @@
|
|
40
39
|
"python.testing.pytestEnabled": true,
|
41
40
|
"python.testing.pytestArgs": [
|
42
41
|
"-v",
|
43
|
-
"--cov=
|
42
|
+
"--cov=oe_python_template_example"
|
44
43
|
],
|
45
44
|
"github.copilot.selectedCompletionModel": "gpt-4o-copilot",
|
46
45
|
"github.copilot.nextEditSuggestions.enabled": true,
|
@@ -67,9 +66,5 @@
|
|
67
66
|
"sonarlint.connectedMode.project": {
|
68
67
|
"connectionId": "helmut-hoffer-von-ankershoffen",
|
69
68
|
"projectKey": "helmut-hoffer-von-ankershoffen_oe-python-template-example"
|
70
|
-
}
|
71
|
-
|
72
|
-
"pre-commit-helper.excludedHookIds": [
|
73
|
-
"nox"
|
74
|
-
],
|
75
|
-
}
|
69
|
+
}
|
70
|
+
}
|
oe_python_template_example-0.0.4/RELEASE_NOTES.md → oe_python_template_example-0.0.8/CHANGELOG.md
RENAMED
@@ -1,5 +1,12 @@
|
|
1
1
|
[🧠 OE Python Template Example](https://oe-python-template-example.readthedocs.io/en/latest/)
|
2
2
|
|
3
|
+
## [0.0.7](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/compare/v0.0.4..v0.0.7) - 2025-03-08
|
4
|
+
|
5
|
+
### ⚙️ Miscellaneous Tasks
|
6
|
+
|
7
|
+
- *(template)* Bump - ([355683b](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commit/355683b69c3ef67461b9d7a562c71fcd5e048ad9))
|
8
|
+
|
9
|
+
|
3
10
|
## [0.0.4](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/compare/v0.0.3..v0.0.4) - 2025-03-02
|
4
11
|
|
5
12
|
### 📚 Documentation
|
@@ -111,6 +111,20 @@ docker build -t oe-python-template-example .
|
|
111
111
|
docker run --env THE_VAR=THE_VALUE oe-python-template-example --help
|
112
112
|
```
|
113
113
|
|
114
|
+
### Copier
|
115
|
+
|
116
|
+
Update scaffold from template
|
117
|
+
|
118
|
+
```shell
|
119
|
+
copier update --trust --skip-tasks --skip-answered
|
120
|
+
```
|
121
|
+
|
122
|
+
### Updating demo application contained within oe-python-template-example
|
123
|
+
|
124
|
+
```shell
|
125
|
+
copier copy -r HEAD . . --force --trust
|
126
|
+
```
|
127
|
+
|
114
128
|
## Pull Request Guidelines
|
115
129
|
|
116
130
|
- **Pre-Commit Hooks:** We use pre-commit hooks to ensure code quality. Please install the pre-commit hooks by running `uv run pre-commit install`. This ensure all tests, linting etc. pass locally before you can commit.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template-example
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.8
|
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/
|
@@ -30,7 +30,7 @@ License: MIT License
|
|
30
30
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
31
31
|
SOFTWARE.
|
32
32
|
License-File: LICENSE
|
33
|
-
Keywords: codecov,docker,oe-python-template-example,pydantic,python,ruff,typer,uv
|
33
|
+
Keywords: act,codecov,copier,cyclonedx,detect-secrets,devcontainer,docker,git-cliff,jupyter,marimo,mypy,nox,oe-python-template,oe-python-template-example,pip-audit,pip-licenses,pre-commit,pydantic,pypi,pytest,python,readthedocs,ruff,sonarcloud,sonarqube,sphinx,streamlit,typer,uv
|
34
34
|
Classifier: Development Status :: 2 - Pre-Alpha
|
35
35
|
Classifier: Framework :: Pydantic
|
36
36
|
Classifier: Framework :: Pytest
|
@@ -48,13 +48,15 @@ Classifier: Programming Language :: Python :: 3.12
|
|
48
48
|
Classifier: Programming Language :: Python :: 3.13
|
49
49
|
Classifier: Typing :: Typed
|
50
50
|
Requires-Python: <4.0,>=3.11
|
51
|
+
Requires-Dist: fastapi[all,standard]>=0.115.11
|
51
52
|
Requires-Dist: pydantic>=2.10.6
|
52
53
|
Requires-Dist: python-dotenv>=1.0.1
|
53
54
|
Requires-Dist: typer>=0.15.1
|
54
55
|
Provides-Extra: examples
|
56
|
+
Requires-Dist: jinja2>=3.1.6; extra == 'examples'
|
55
57
|
Requires-Dist: jupyter>=1.1.1; extra == 'examples'
|
56
|
-
Requires-Dist: marimo>=0.11.
|
57
|
-
Requires-Dist: streamlit>=1.
|
58
|
+
Requires-Dist: marimo>=0.11.17; extra == 'examples'
|
59
|
+
Requires-Dist: streamlit>=1.43.1; extra == 'examples'
|
58
60
|
Description-Content-Type: text/markdown
|
59
61
|
|
60
62
|
# 🧠 OE Python Template Example
|
@@ -71,13 +73,17 @@ Description-Content-Type: text/markdown
|
|
71
73
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
72
74
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
73
75
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
76
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
74
77
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
|
75
78
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
|
76
79
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
77
80
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
78
81
|
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
|
79
|
-
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
|
80
83
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
|
84
|
+
[](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
85
|
+
[](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
86
|
+
|
81
87
|
<!---
|
82
88
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
83
89
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
@@ -122,7 +128,7 @@ copier copy gh:helmut-hoffer-von-ankershoffen/oe-python-template .
|
|
122
128
|
Step 4: Setup the local environment
|
123
129
|
|
124
130
|
```shell
|
125
|
-
uv run nox -s
|
131
|
+
uv run nox -s setup_dev
|
126
132
|
```
|
127
133
|
|
128
134
|
Step 5: Perform inital commit and push
|
@@ -169,8 +175,8 @@ uvx oe-python-template-example
|
|
169
175
|
The CLI provides extensive help:
|
170
176
|
|
171
177
|
```shell
|
172
|
-
uvx oe-python-template-example --help
|
173
|
-
uvx oe-python-template-example
|
178
|
+
uvx oe-python-template-example --help # all CLI commands
|
179
|
+
uvx oe-python-template-example hello-world --help # help for specific command
|
174
180
|
```
|
175
181
|
|
176
182
|
|
@@ -12,13 +12,17 @@
|
|
12
12
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
13
13
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
14
14
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
15
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
15
16
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
|
16
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
|
17
18
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
18
19
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
19
20
|
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
|
20
|
-
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
|
21
22
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
|
23
|
+
[](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
24
|
+
[](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
25
|
+
|
22
26
|
<!---
|
23
27
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
24
28
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
@@ -63,7 +67,7 @@ copier copy gh:helmut-hoffer-von-ankershoffen/oe-python-template .
|
|
63
67
|
Step 4: Setup the local environment
|
64
68
|
|
65
69
|
```shell
|
66
|
-
uv run nox -s
|
70
|
+
uv run nox -s setup_dev
|
67
71
|
```
|
68
72
|
|
69
73
|
Step 5: Perform inital commit and push
|
@@ -110,8 +114,8 @@ uvx oe-python-template-example
|
|
110
114
|
The CLI provides extensive help:
|
111
115
|
|
112
116
|
```shell
|
113
|
-
uvx oe-python-template-example --help
|
114
|
-
uvx oe-python-template-example
|
117
|
+
uvx oe-python-template-example --help # all CLI commands
|
118
|
+
uvx oe-python-template-example hello-world --help # help for specific command
|
115
119
|
```
|
116
120
|
|
117
121
|
|
@@ -0,0 +1 @@
|
|
1
|
+
|
{oe_python_template_example-0.0.4 → oe_python_template_example-0.0.8}/SERVICE_CONNECTIONS.md
RENAMED
@@ -29,10 +29,10 @@
|
|
29
29
|
|
30
30
|
## Publishing package to Python Package Index (pypi.org)
|
31
31
|
|
32
|
-
1. Execute `uv
|
32
|
+
1. Execute `uv build`. This will generate the build files (wheel and tar.gz) in the `dist` folder
|
33
33
|
2. Sign-Up at https://pypi.org/
|
34
34
|
3. Goto https://pypi.org/manage/account/ and create an API token of scope "Entire account", calling it oe-python-template-example. Copy the value of the token into your clipboard.
|
35
|
-
4. Execute `uv
|
35
|
+
4. Execute `uv 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
36
|
5. Goto https://pypi.org/manage/account/ again and delete the previously created token oe-python-template-example of scope "Entire account".
|
37
37
|
6. Now create an new API token, again called oe-python-template-example, but this time of scope "Project: oe-python-template-example". Copy the token into your clipboard.
|
38
38
|
7. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/settings/secrets/actions/new and delete the previously created token.
|
@@ -60,3 +60,12 @@
|
|
60
60
|
3. Goto https://share.streamlit.io/new and click "Deploy a public app from GitHub"
|
61
61
|
4. Select the oe-python-template-example repo, for "Main file path" select `examples/streamlit.py`, for App URL enter `oe-python-template-example`.streamlit.app. Click "Deploy"
|
62
62
|
5. Goto https://oe-python-template-example.streamlit.app
|
63
|
+
|
64
|
+
## Polishing GitHub repository
|
65
|
+
|
66
|
+
1. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example
|
67
|
+
2. Click on the cogs icon in the top right corner next to about
|
68
|
+
4. Copy oe-python-template-example.readthedocs.io into the website field
|
69
|
+
3. Copy the description from the pyproject.toml file into the description field
|
70
|
+
5. Copy up to 20 tags from the pyproject.toml file into the topics field
|
71
|
+
6. Goto https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/settings and upload a soclial media image (e.g. logo.png) into the "Social preview" field
|
@@ -0,0 +1 @@
|
|
1
|
+
0.0.8
|
@@ -12,13 +12,17 @@
|
|
12
12
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
13
13
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
14
14
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
15
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
15
16
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
|
16
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
|
17
18
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
18
19
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
19
20
|
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
|
20
|
-
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
|
21
22
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
|
23
|
+
[](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
24
|
+
[](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
25
|
+
|
22
26
|
<!---
|
23
27
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
24
28
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
@@ -32,7 +32,7 @@ copier copy gh:helmut-hoffer-von-ankershoffen/oe-python-template .
|
|
32
32
|
Step 4: Setup the local environment
|
33
33
|
|
34
34
|
```shell
|
35
|
-
uv run nox -s
|
35
|
+
uv run nox -s setup_dev
|
36
36
|
```
|
37
37
|
|
38
38
|
Step 5: Perform inital commit and push
|
@@ -79,8 +79,8 @@ uvx oe-python-template-example
|
|
79
79
|
The CLI provides extensive help:
|
80
80
|
|
81
81
|
```shell
|
82
|
-
uvx oe-python-template-example --help
|
83
|
-
uvx oe-python-template-example
|
82
|
+
uvx oe-python-template-example --help # all CLI commands
|
83
|
+
uvx oe-python-template-example hello-world --help # help for specific command
|
84
84
|
```
|
85
85
|
|
86
86
|
|
@@ -0,0 +1,185 @@
|
|
1
|
+
{
|
2
|
+
"openapi": "3.1.0",
|
3
|
+
"info": {
|
4
|
+
"title": "OE Python Template Example",
|
5
|
+
"termsOfService": "https://oe-python-template-example.readthedocs.io/en/latest/",
|
6
|
+
"contact": {
|
7
|
+
"name": "Helmut Hoffer von Ankershoffen",
|
8
|
+
"url": "https://github.com/helmut-hoffer-von-ankershoffen",
|
9
|
+
"email": "helmuthva@gmail.com"
|
10
|
+
},
|
11
|
+
"version": "1.0.0"
|
12
|
+
},
|
13
|
+
"paths": {
|
14
|
+
"/hello-world": {
|
15
|
+
"get": {
|
16
|
+
"tags": [
|
17
|
+
"Basics"
|
18
|
+
],
|
19
|
+
"summary": "Hello World",
|
20
|
+
"description": "Return a hello world message.\n\nReturns:\n HelloWorldResponse: A response containing the hello world message.",
|
21
|
+
"operationId": "hello_world_hello_world_get",
|
22
|
+
"responses": {
|
23
|
+
"200": {
|
24
|
+
"description": "Successful Response",
|
25
|
+
"content": {
|
26
|
+
"application/json": {
|
27
|
+
"schema": {
|
28
|
+
"$ref": "#/components/schemas/HelloWorldResponse"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
},
|
36
|
+
"/echo": {
|
37
|
+
"post": {
|
38
|
+
"tags": [
|
39
|
+
"Basics"
|
40
|
+
],
|
41
|
+
"summary": "Echo",
|
42
|
+
"description": "Echo back the provided text.\n\nArgs:\n request (EchoRequest): The request containing the text to echo back.\n\nReturns:\n EchoResponse: A response containing the echoed text.\n\nRaises:\n 422 Unprocessable Entity: If text is not provided or empty.",
|
43
|
+
"operationId": "echo_echo_post",
|
44
|
+
"requestBody": {
|
45
|
+
"content": {
|
46
|
+
"application/json": {
|
47
|
+
"schema": {
|
48
|
+
"$ref": "#/components/schemas/EchoRequest"
|
49
|
+
}
|
50
|
+
}
|
51
|
+
},
|
52
|
+
"required": true
|
53
|
+
},
|
54
|
+
"responses": {
|
55
|
+
"200": {
|
56
|
+
"description": "Successful Response",
|
57
|
+
"content": {
|
58
|
+
"application/json": {
|
59
|
+
"schema": {
|
60
|
+
"$ref": "#/components/schemas/EchoResponse"
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
},
|
65
|
+
"422": {
|
66
|
+
"description": "Validation Error",
|
67
|
+
"content": {
|
68
|
+
"application/json": {
|
69
|
+
"schema": {
|
70
|
+
"$ref": "#/components/schemas/HTTPValidationError"
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
},
|
79
|
+
"components": {
|
80
|
+
"schemas": {
|
81
|
+
"EchoRequest": {
|
82
|
+
"properties": {
|
83
|
+
"text": {
|
84
|
+
"type": "string",
|
85
|
+
"minLength": 1,
|
86
|
+
"title": "Text",
|
87
|
+
"description": "The text to echo back",
|
88
|
+
"examples": [
|
89
|
+
"Hello, world!"
|
90
|
+
]
|
91
|
+
}
|
92
|
+
},
|
93
|
+
"type": "object",
|
94
|
+
"required": [
|
95
|
+
"text"
|
96
|
+
],
|
97
|
+
"title": "EchoRequest",
|
98
|
+
"description": "Request model for echo endpoint."
|
99
|
+
},
|
100
|
+
"EchoResponse": {
|
101
|
+
"properties": {
|
102
|
+
"message": {
|
103
|
+
"type": "string",
|
104
|
+
"minLength": 1,
|
105
|
+
"title": "Message",
|
106
|
+
"description": "The message content",
|
107
|
+
"examples": [
|
108
|
+
"Hello, world!"
|
109
|
+
]
|
110
|
+
}
|
111
|
+
},
|
112
|
+
"type": "object",
|
113
|
+
"required": [
|
114
|
+
"message"
|
115
|
+
],
|
116
|
+
"title": "EchoResponse",
|
117
|
+
"description": "Response model for echo endpoint."
|
118
|
+
},
|
119
|
+
"HTTPValidationError": {
|
120
|
+
"properties": {
|
121
|
+
"detail": {
|
122
|
+
"items": {
|
123
|
+
"$ref": "#/components/schemas/ValidationError"
|
124
|
+
},
|
125
|
+
"type": "array",
|
126
|
+
"title": "Detail"
|
127
|
+
}
|
128
|
+
},
|
129
|
+
"type": "object",
|
130
|
+
"title": "HTTPValidationError"
|
131
|
+
},
|
132
|
+
"HelloWorldResponse": {
|
133
|
+
"properties": {
|
134
|
+
"message": {
|
135
|
+
"type": "string",
|
136
|
+
"title": "Message",
|
137
|
+
"description": "The hello world message",
|
138
|
+
"examples": [
|
139
|
+
"Hello, world!"
|
140
|
+
]
|
141
|
+
}
|
142
|
+
},
|
143
|
+
"type": "object",
|
144
|
+
"required": [
|
145
|
+
"message"
|
146
|
+
],
|
147
|
+
"title": "HelloWorldResponse",
|
148
|
+
"description": "Response model for hello-world endpoint."
|
149
|
+
},
|
150
|
+
"ValidationError": {
|
151
|
+
"properties": {
|
152
|
+
"loc": {
|
153
|
+
"items": {
|
154
|
+
"anyOf": [
|
155
|
+
{
|
156
|
+
"type": "string"
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"type": "integer"
|
160
|
+
}
|
161
|
+
]
|
162
|
+
},
|
163
|
+
"type": "array",
|
164
|
+
"title": "Location"
|
165
|
+
},
|
166
|
+
"msg": {
|
167
|
+
"type": "string",
|
168
|
+
"title": "Message"
|
169
|
+
},
|
170
|
+
"type": {
|
171
|
+
"type": "string",
|
172
|
+
"title": "Error Type"
|
173
|
+
}
|
174
|
+
},
|
175
|
+
"type": "object",
|
176
|
+
"required": [
|
177
|
+
"loc",
|
178
|
+
"msg",
|
179
|
+
"type"
|
180
|
+
],
|
181
|
+
"title": "ValidationError"
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|