oe-python-template-example 0.0.4__tar.gz → 0.0.7__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.7}/.act-env +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.copier-answers.yml +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/devcontainer.json +0 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/onCreateCommand +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/package-build-publish-release.yml +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/test-and-report.yml +5 -10
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.gitignore +1 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.pre-commit-config.yaml +17 -2
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.vscode/extensions.json +0 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.vscode/settings.json +3 -8
- oe_python_template_example-0.0.4/RELEASE_NOTES.md → oe_python_template_example-0.0.7/CHANGELOG.md +7 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/CODEOWNERS +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/CONTRIBUTING.md +14 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/PKG-INFO +10 -5
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/README.md +5 -1
- oe_python_template_example-0.0.7/RELEASE_NOTES.md +8 -0
- oe_python_template_example-0.0.7/VERSION +1 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_header.md +5 -1
- oe_python_template_example-0.0.7/bump +7 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/compose.yaml +1 -1
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/conf.py +2 -2
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/index.rst +3 -3
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/noxfile.py +21 -13
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/pyproject.toml +88 -39
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/sonar-project.properties +2 -2
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/uv.lock +88 -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 → oe_python_template_example-0.0.7}/.act-secret +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/Dockerfile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.env.example +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/docker-image-build-publish.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.python-version +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.readthedocs.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.secrets.baseline +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/Dockerfile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/LICENSE +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/SERVICE_CONNECTIONS.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_footer.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_main.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/bin/git-cliff +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/codecov.yml +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/Makefile +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/make.bat +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/_static/.keep +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/contributing.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/latexmkrc +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/main.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/reference.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/release-notes.rst +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/notebook.ipynb +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/notebook.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/script.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/streamlit.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/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.7}/github-action-run +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/latexmkrc +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/logo.png +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/cli.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/service.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/tests/__init__.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/tests/cli_test.py +0 -0
- {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/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.7}/.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:
|
@@ -40,10 +56,9 @@ repos:
|
|
40
56
|
- repo: https://github.com/Yelp/detect-secrets
|
41
57
|
rev: v1.5.0
|
42
58
|
hooks:
|
43
|
-
|
59
|
+
- id: detect-secrets
|
44
60
|
args: ['--baseline', '.secrets.baseline']
|
45
61
|
additional_dependencies: ["gibberish-detector"]
|
46
|
-
exclude: package.lock.json
|
47
62
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
48
63
|
# uv version.
|
49
64
|
rev: 0.5.8
|
@@ -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.7/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..0.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
|
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.7
|
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
|
@@ -52,9 +52,10 @@ Requires-Dist: pydantic>=2.10.6
|
|
52
52
|
Requires-Dist: python-dotenv>=1.0.1
|
53
53
|
Requires-Dist: typer>=0.15.1
|
54
54
|
Provides-Extra: examples
|
55
|
+
Requires-Dist: jinja2>=3.1.6; extra == 'examples'
|
55
56
|
Requires-Dist: jupyter>=1.1.1; extra == 'examples'
|
56
|
-
Requires-Dist: marimo>=0.11.
|
57
|
-
Requires-Dist: streamlit>=1.
|
57
|
+
Requires-Dist: marimo>=0.11.17; extra == 'examples'
|
58
|
+
Requires-Dist: streamlit>=1.43.1; extra == 'examples'
|
58
59
|
Description-Content-Type: text/markdown
|
59
60
|
|
60
61
|
# 🧠 OE Python Template Example
|
@@ -71,13 +72,17 @@ Description-Content-Type: text/markdown
|
|
71
72
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
72
73
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
73
74
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
75
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
74
76
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
|
75
77
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
|
76
78
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
77
79
|
[](https://pypi.python.org/pypi/oe-python-template-example)
|
78
80
|
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
|
79
|
-
[](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
|
80
82
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
|
83
|
+
[](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
84
|
+
[](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
85
|
+
|
81
86
|
<!---
|
82
87
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
83
88
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
|
@@ -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)
|
@@ -0,0 +1,8 @@
|
|
1
|
+
## [0.0.7](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/compare/v0.0.4..v0.0.7) - 2025-03-08
|
2
|
+
|
3
|
+
### ⚙️ Miscellaneous Tasks
|
4
|
+
|
5
|
+
- *(template)* Bump - ([355683b](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commit/355683b69c3ef67461b9d7a562c71fcd5e048ad9))
|
6
|
+
|
7
|
+
|
8
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
0.0.7
|
@@ -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)
|
@@ -25,7 +25,7 @@ extensions = [
|
|
25
25
|
project = "oe-python-template-example"
|
26
26
|
author = "Helmut Hoffer von Ankershoffen"
|
27
27
|
copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
|
28
|
-
version = "0.0.
|
28
|
+
version = "0.0.7"
|
29
29
|
release = version
|
30
30
|
github_username = "helmut-hoffer-von-ankershoffen"
|
31
31
|
github_repository = "oe-python-template-example"
|
@@ -33,7 +33,7 @@ github_repository = "oe-python-template-example"
|
|
33
33
|
language = "en"
|
34
34
|
|
35
35
|
ogp_site_name = "OE Python Template Example"
|
36
|
-
ogp_image = "https
|
36
|
+
ogp_image = "https://oe-python-template-example.readthedocs.io/en/latest/_static/logo.png"
|
37
37
|
ogp_custom_meta_tags = [
|
38
38
|
'<meta name="twitter:card" content="OE Python Template Example" />',
|
39
39
|
]
|
@@ -3,9 +3,9 @@
|
|
3
3
|
.. include:: main.rst
|
4
4
|
|
5
5
|
.. toctree::
|
6
|
-
|
6
|
+
:hidden:
|
7
7
|
|
8
|
-
|
8
|
+
Home<self>
|
9
9
|
|
10
10
|
.. toctree::
|
11
11
|
:maxdepth: 2
|
@@ -21,7 +21,7 @@
|
|
21
21
|
:pypi: oe-python-template-example
|
22
22
|
|
23
23
|
Docker <https://hub.docker.com/r/helmuthva/oe-python-template-example/tags>
|
24
|
-
SonarQube <https://sonarcloud.io/summary/new_code?id
|
24
|
+
SonarQube <https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example>
|
25
25
|
Codecov <https://app.codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example>
|
26
26
|
ghcr.io <https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example>
|
27
27
|
License <https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/LICENSE>
|
@@ -25,13 +25,17 @@ def _setup_venv(session: nox.Session, all_extras: bool = True) -> None:
|
|
25
25
|
|
26
26
|
|
27
27
|
def _is_act_environment() -> bool:
|
28
|
-
"""Check if running in
|
29
|
-
|
28
|
+
"""Check if running in GitHub ACT environment.
|
29
|
+
|
30
|
+
Returns:
|
31
|
+
bool: True if running in ACT environment, False otherwise.
|
32
|
+
"""
|
33
|
+
return os.environ.get("GITHUB_WORKFLOW_RUNTIME") == "ACT"
|
30
34
|
|
31
35
|
|
32
36
|
@nox.session(python=["3.13"])
|
33
37
|
def lint(session: nox.Session) -> None:
|
34
|
-
"""Run code linting and
|
38
|
+
"""Run code formatting checks, linting, and static type checking."""
|
35
39
|
_setup_venv(session)
|
36
40
|
session.run("ruff", "check", ".")
|
37
41
|
session.run(
|
@@ -40,6 +44,7 @@ def lint(session: nox.Session) -> None:
|
|
40
44
|
"--check",
|
41
45
|
".",
|
42
46
|
)
|
47
|
+
session.run("mypy", "src")
|
43
48
|
|
44
49
|
|
45
50
|
@nox.session(python=["3.13"])
|
@@ -100,14 +105,17 @@ def test(session: nox.Session) -> None:
|
|
100
105
|
@nox.session(python=["3.13"], default=False)
|
101
106
|
def setup_dev(session: nox.Session) -> None:
|
102
107
|
"""Setup dev environment post project creation."""
|
103
|
-
session
|
108
|
+
_setup_venv(session)
|
104
109
|
session.run("ruff", "format", ".", external=True)
|
105
|
-
|
106
|
-
|
107
|
-
session.run("
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
git_dir = Path(".git")
|
111
|
+
if git_dir.is_dir():
|
112
|
+
session.run("echo", "found .git directory, running pre-commit install and hooks", external=True)
|
113
|
+
session.run("pre-commit", "install", external=True)
|
114
|
+
with Path(".secrets.baseline").open("w", encoding="utf-8") as out:
|
115
|
+
session.run("detect-secrets", "scan", stdout=out, external=True)
|
116
|
+
session.run("git", "add", ".", external=True)
|
117
|
+
try:
|
118
|
+
session.run("pre-commit", external=True)
|
119
|
+
except Exception: # noqa: BLE001
|
120
|
+
session.log("pre-commit run failed, continuing anyway")
|
121
|
+
session.run("git", "add", ".", external=True)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template-example"
|
3
|
-
version = "0.0.
|
3
|
+
version = "0.0.7"
|
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 = [
|
@@ -10,11 +10,32 @@ license = { file = "LICENSE" }
|
|
10
10
|
|
11
11
|
keywords = [
|
12
12
|
"oe-python-template-example",
|
13
|
+
"act",
|
13
14
|
"codecov",
|
15
|
+
"copier",
|
16
|
+
"cyclonedx",
|
17
|
+
"devcontainer",
|
18
|
+
"detect-secrets",
|
14
19
|
"docker",
|
20
|
+
"git-cliff",
|
21
|
+
"jupyter",
|
22
|
+
"marimo",
|
23
|
+
"mypy",
|
24
|
+
"nox",
|
25
|
+
"oe-python-template",
|
26
|
+
"pip-audit",
|
27
|
+
"pip-licenses",
|
28
|
+
"pre-commit",
|
15
29
|
"pydantic",
|
30
|
+
"pytest",
|
16
31
|
"python",
|
32
|
+
"pypi",
|
33
|
+
"readthedocs",
|
17
34
|
"ruff",
|
35
|
+
"sonarqube",
|
36
|
+
"sonarcloud",
|
37
|
+
"sphinx",
|
38
|
+
"streamlit",
|
18
39
|
"typer",
|
19
40
|
"uv",
|
20
41
|
]
|
@@ -38,12 +59,12 @@ classifiers = [
|
|
38
59
|
"Natural Language :: English",
|
39
60
|
]
|
40
61
|
|
41
|
-
requires-python = ">=3.11
|
62
|
+
requires-python = ">= 3.11, < 4.0"
|
42
63
|
|
43
64
|
dependencies = [
|
44
65
|
"pydantic >= 2.10.6",
|
45
|
-
"python-dotenv>=1.0.1",
|
46
|
-
"typer>=0.15.1",
|
66
|
+
"python-dotenv >= 1.0.1",
|
67
|
+
"typer >= 0.15.1",
|
47
68
|
]
|
48
69
|
|
49
70
|
[project.scripts]
|
@@ -61,42 +82,48 @@ requires = ["hatchling"]
|
|
61
82
|
build-backend = "hatchling.build"
|
62
83
|
|
63
84
|
[project.optional-dependencies]
|
64
|
-
examples = [
|
85
|
+
examples = [
|
86
|
+
"streamlit >= 1.43.1",
|
87
|
+
"marimo >= 0.11.17",
|
88
|
+
"jupyter >= 1.1.1",
|
89
|
+
"jinja2 >=3.1.6",
|
90
|
+
]
|
65
91
|
|
66
92
|
[dependency-groups]
|
67
93
|
dev = [
|
68
|
-
"autodoc-pydantic>=2.2.0",
|
69
|
-
"bump-my-version>=0.
|
70
|
-
"cyclonedx-py>=1.0.1",
|
71
|
-
"detect-secrets>=1.5.0",
|
72
|
-
"enum-tools>=0.12.0",
|
73
|
-
"furo>=2024.8.6",
|
74
|
-
"git-cliff>=2.8.0",
|
75
|
-
"
|
76
|
-
"
|
77
|
-
"pip-
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"
|
81
|
-
"pytest
|
82
|
-
"pytest-
|
83
|
-
"pytest-
|
84
|
-
"pytest-
|
85
|
-
"pytest-
|
86
|
-
"
|
87
|
-
"
|
88
|
-
"sphinx
|
89
|
-
"sphinx-
|
90
|
-
"sphinx-
|
91
|
-
"sphinx-
|
92
|
-
"
|
93
|
-
"
|
94
|
-
"sphinx-
|
95
|
-
"sphinx-
|
96
|
-
"
|
97
|
-
"
|
98
|
-
"
|
99
|
-
"
|
94
|
+
"autodoc-pydantic >= 2.2.0",
|
95
|
+
"bump-my-version >= 1.0.1",
|
96
|
+
"cyclonedx-py >= 1.0.1",
|
97
|
+
"detect-secrets >= 1.5.0",
|
98
|
+
"enum-tools >= 0.12.0",
|
99
|
+
"furo >= 2024.8.6",
|
100
|
+
"git-cliff >= 2.8.0",
|
101
|
+
"mypy >= 1.5.0",
|
102
|
+
"nox[uv] >= 2025.2.9",
|
103
|
+
"pip-audit >= 2.8.0",
|
104
|
+
"pip-licenses >= 5.0.0",
|
105
|
+
"pre-commit >= 4.1.0",
|
106
|
+
"pyright >= 1.1.396",
|
107
|
+
"pytest >= 8.3.5",
|
108
|
+
"pytest-asyncio >= 0.25.3",
|
109
|
+
"pytest-cov >= 6.0.0",
|
110
|
+
"pytest-docker >= 3.2.0",
|
111
|
+
"pytest-env >= 1.1.5",
|
112
|
+
"pytest-xdist[psutil] >= 3.6.1",
|
113
|
+
"ruff >= 0.9.10",
|
114
|
+
"sphinx >= 8.2.3",
|
115
|
+
"sphinx-autobuild >= 2024.10.3",
|
116
|
+
"sphinx-copybutton >= 0.5.2",
|
117
|
+
"sphinx-inline-tabs >= 2023.4.21",
|
118
|
+
"sphinx-mdinclude >= 0.6.2",
|
119
|
+
"sphinxext.opengraph >= 0.9.1",
|
120
|
+
"sphinx-pydantic >= 0.1.1",
|
121
|
+
"sphinx-rtd-theme >= 3.0.2",
|
122
|
+
"sphinx-toolbox >= 3.9.0",
|
123
|
+
"sphinxext-opengraph >= 0.9.1",
|
124
|
+
"tomli >= 2.1.0",
|
125
|
+
"matplotlib >= 3.10.1",
|
126
|
+
"pytest-regressions >= 2.7.0",
|
100
127
|
]
|
101
128
|
|
102
129
|
[tool.ruff]
|
@@ -104,7 +131,10 @@ target-version = "py311"
|
|
104
131
|
preview = true
|
105
132
|
fix = true
|
106
133
|
line-length = 120
|
107
|
-
exclude = [
|
134
|
+
extend-exclude = [
|
135
|
+
".fixme",
|
136
|
+
"notebook.py"
|
137
|
+
]
|
108
138
|
|
109
139
|
|
110
140
|
[tool.ruff.lint]
|
@@ -167,6 +197,25 @@ docstring-code-format = true
|
|
167
197
|
[tool.ruff.lint.pydocstyle]
|
168
198
|
convention = "google"
|
169
199
|
|
200
|
+
[tool.mypy] # https://mypy.readthedocs.io/en/latest/config_file.html
|
201
|
+
junit_xml = "mypi_junit.xml"
|
202
|
+
plugins = "pydantic.mypy"
|
203
|
+
strict = true
|
204
|
+
disallow_subclassing_any = false
|
205
|
+
disallow_untyped_decorators = false
|
206
|
+
ignore_missing_imports = true
|
207
|
+
pretty = true
|
208
|
+
show_column_numbers = true
|
209
|
+
show_error_codes = true
|
210
|
+
show_error_context = true
|
211
|
+
warn_unreachable = true
|
212
|
+
|
213
|
+
[tool.pydantic-mypy] # https://docs.pydantic.dev/latest/integrations/mypy/#configuring-the-plugin
|
214
|
+
init_forbid_extra = true
|
215
|
+
init_typed = true
|
216
|
+
warn_required_dynamic_aliases = true
|
217
|
+
warn_untyped_fields = true
|
218
|
+
|
170
219
|
[tool.pytest.ini_options]
|
171
220
|
addopts = "-v --cov=oe_python_template_example --cov-report=term-missing --cov-report=xml:coverage.xml --cov-report=html:coverage_html"
|
172
221
|
testpaths = ["tests"]
|
@@ -193,7 +242,7 @@ source = ["src/"]
|
|
193
242
|
|
194
243
|
|
195
244
|
[tool.bumpversion]
|
196
|
-
current_version = "0.0.
|
245
|
+
current_version = "0.0.7"
|
197
246
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
198
247
|
serialize = ["{major}.{minor}.{patch}"]
|
199
248
|
search = "{current_version}"
|