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.
Files changed (81) hide show
  1. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.act-env +1 -1
  2. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.copier-answers.yml +1 -1
  3. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/devcontainer.json +0 -1
  4. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/onCreateCommand +1 -1
  5. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/package-build-publish-release.yml +1 -1
  6. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/test-and-report.yml +5 -10
  7. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.gitignore +1 -0
  8. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.pre-commit-config.yaml +17 -2
  9. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.vscode/extensions.json +0 -1
  10. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.vscode/settings.json +3 -8
  11. oe_python_template_example-0.0.4/RELEASE_NOTES.md → oe_python_template_example-0.0.7/CHANGELOG.md +7 -0
  12. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/CODEOWNERS +1 -1
  13. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/CONTRIBUTING.md +14 -0
  14. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/PKG-INFO +10 -5
  15. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/README.md +5 -1
  16. oe_python_template_example-0.0.7/RELEASE_NOTES.md +8 -0
  17. oe_python_template_example-0.0.7/VERSION +1 -0
  18. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_header.md +5 -1
  19. oe_python_template_example-0.0.7/bump +7 -0
  20. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/compose.yaml +1 -1
  21. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/conf.py +2 -2
  22. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/index.rst +3 -3
  23. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/noxfile.py +21 -13
  24. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/pyproject.toml +88 -39
  25. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/sonar-project.properties +2 -2
  26. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/uv.lock +88 -45
  27. oe_python_template_example-0.0.4/CHANGELOG.md +0 -32
  28. oe_python_template_example-0.0.4/VERSION +0 -1
  29. oe_python_template_example-0.0.4/bump +0 -3
  30. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.act-secret +0 -0
  31. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/Dockerfile +0 -0
  32. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/postAttachCommand +0 -0
  33. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.devcontainer/postCreateCommand +0 -0
  34. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.env.example +0 -0
  35. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.github/workflows/docker-image-build-publish.yml +0 -0
  36. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.python-version +0 -0
  37. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.readthedocs.yml +0 -0
  38. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/.secrets.baseline +0 -0
  39. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/Dockerfile +0 -0
  40. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/LICENSE +0 -0
  41. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/SERVICE_CONNECTIONS.md +0 -0
  42. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_footer.md +0 -0
  43. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/_readme_main.md +0 -0
  44. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/bin/git-cliff +0 -0
  45. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/codecov.yml +0 -0
  46. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/Makefile +0 -0
  47. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/make.bat +0 -0
  48. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/_static/.keep +0 -0
  49. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/contributing.rst +0 -0
  50. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/latexmkrc +0 -0
  51. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/main.rst +0 -0
  52. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/reference.rst +0 -0
  53. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/docs/source/release-notes.rst +0 -0
  54. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/__init__.py +0 -0
  55. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/notebook.ipynb +0 -0
  56. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/notebook.py +0 -0
  57. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/script.py +0 -0
  58. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/examples/streamlit.py +0 -0
  59. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  60. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  61. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  62. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/README.md +0 -0
  63. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  64. {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
  65. {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
  66. {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
  67. {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
  68. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/git-cliff-completions +0 -0
  69. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  70. {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
  71. {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
  72. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/github-action-run +0 -0
  73. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/latexmkrc +0 -0
  74. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/logo.png +0 -0
  75. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/__init__.py +0 -0
  76. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/cli.py +0 -0
  77. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/constants.py +0 -0
  78. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/src/oe_python_template_example/service.py +0 -0
  79. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/tests/__init__.py +0 -0
  80. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/tests/cli_test.py +0 -0
  81. {oe_python_template_example-0.0.4 → oe_python_template_example-0.0.7}/tests/fixtures/.keep +0 -0
@@ -1,2 +1,2 @@
1
- GITLAB_WORKFLOW_RUNTIME=ACT
1
+ GITHUB_WORKFLOW_RUNTIME=ACT
2
2
  ACTIONS_RUNTIME_TOKEN=TOKEN
@@ -1,4 +1,4 @@
1
- _commit: v0.2.2
1
+ _commit: v0.3.0
2
2
  _src_path: gh:helmut-hoffer-von-ankershoffen/oe-python-template
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -21,7 +21,6 @@
21
21
  "charliermarsh.ruff",
22
22
  "codecov.codecov",
23
23
  "donjayamanne.python-environment-manager",
24
- "elagil.pre-commit-helper",
25
24
  "fill-labs.dependi",
26
25
  "github.vscode-github-actions",
27
26
  "github.copilot",
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  echo "onCreateCommand: start"
4
- git config --global --add safe.directory /workspaces/
4
+ git config --global --add safe.directory /workspaces/oe-python-template-example
5
5
  rm -rf .nox
6
6
  rm -rf .venv
7
7
  uv sync --frozen
@@ -25,7 +25,7 @@ jobs:
25
25
  id: git-cliff
26
26
  with:
27
27
  config: pyproject.toml
28
- args: --verbose
28
+ args: --verbose --latest --strip header
29
29
  env:
30
30
  OUTPUT: RELEASE_NOTES.md
31
31
  GITHUB_REPO: ${{ github.repository }}
@@ -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: s${{ !startsWith(github.ref, 'refs/tags/v') }}
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.GITLAB_WORKFLOW_RUNTIME != 'ACT') }}
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.GITLAB_WORKFLOW_RUNTIME != 'ACT') }}
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.GITLAB_WORKFLOW_RUNTIME != 'ACT') }}
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.GITLAB_WORKFLOW_RUNTIME != 'ACT') }}
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 }}
@@ -43,6 +43,7 @@ vulnerabilities.json
43
43
  licenses.json
44
44
  licenses-inverted.json
45
45
  sbom.json
46
+ mypi_junit.xml
46
47
 
47
48
  # IDE
48
49
  .idea/
@@ -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
- - id: detect-secrets
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
  "charliermarsh.ruff",
4
4
  "codecov.codecov",
5
5
  "donjayamanne.python-environment-manager",
6
- "elagil.pre-commit-helper",
7
6
  "fill-labs.dependi",
8
7
  "github.vscode-github-actions",
9
8
  "github.copilot",
@@ -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={{ project_name_snake_case }}"
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
- "pre-commit-helper.runOnSave": "fixes",
72
- "pre-commit-helper.excludedHookIds": [
73
- "nox"
74
- ],
75
- }
69
+ }
70
+ }
@@ -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
@@ -1,3 +1,3 @@
1
- # oe_python_template_example code owners
1
+ # oe-python-template-example code owners
2
2
 
3
3
  [*] @helmut-hoffer-von-ankershoffen # noqa
@@ -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.4
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.13; extra == 'examples'
57
- Requires-Dist: streamlit>=1.42.2; extra == 'examples'
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
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template-example&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
72
73
  [![Coverage](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example/graph/badge.svg?token=SX34YRP30E)](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
73
74
  [![Ruff](https://img.shields.io/badge/style-Ruff-blue?color=D6FF65)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
75
+ [![MyPy](https://img.shields.io/badge/mypy-checked-blue)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
74
76
  [![GitHub - Version](https://img.shields.io/github/v/release/helmut-hoffer-von-ankershoffen/oe-python-template-example?label=GitHub&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
75
77
  [![GitHub - Commits](https://img.shields.io/github/commit-activity/m/helmut-hoffer-von-ankershoffen/oe-python-template-example/main?label=commits&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
76
78
  [![PyPI - Version](https://img.shields.io/pypi/v/oe-python-template-example.svg?label=PyPI&logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
77
79
  [![PyPI - Status](https://img.shields.io/pypi/status/oe-python-template-example?logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
78
80
  [![Docker - Version](https://img.shields.io/docker/v/helmuthva/oe-python-template-example?sort=semver&label=Docker&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
79
- [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-examplesort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
81
+ [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-example?sort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
80
82
  [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
83
+ [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE3IDE2VjdsLTYgNU0yIDlWOGwxLTFoMWw0IDMgOC04aDFsNCAyIDEgMXYxNGwtMSAxLTQgMmgtMWwtOC04LTQgM0gzbC0xLTF2LTFsMy0zIi8+PC9zdmc+)](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
+ [![Open in GitHub Codespaces](https://img.shields.io/static/v1?label=GitHub%20Codespaces&message=Open&color=blue&logo=github)](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
85
+
81
86
  <!---
82
87
  [![ghcr.io - Version](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/tags?color=%2344cc11&ignore=0.0%2C0%2Clatest&n=3&label=ghcr.io&trim=)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
83
88
  [![ghcr.io - Sze](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/size?color=%2344cc11&tag=latest&label=size&trim=)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
@@ -12,13 +12,17 @@
12
12
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template-example&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
13
13
  [![Coverage](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example/graph/badge.svg?token=SX34YRP30E)](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
14
14
  [![Ruff](https://img.shields.io/badge/style-Ruff-blue?color=D6FF65)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
15
+ [![MyPy](https://img.shields.io/badge/mypy-checked-blue)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
15
16
  [![GitHub - Version](https://img.shields.io/github/v/release/helmut-hoffer-von-ankershoffen/oe-python-template-example?label=GitHub&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
16
17
  [![GitHub - Commits](https://img.shields.io/github/commit-activity/m/helmut-hoffer-von-ankershoffen/oe-python-template-example/main?label=commits&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
17
18
  [![PyPI - Version](https://img.shields.io/pypi/v/oe-python-template-example.svg?label=PyPI&logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
18
19
  [![PyPI - Status](https://img.shields.io/pypi/status/oe-python-template-example?logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
19
20
  [![Docker - Version](https://img.shields.io/docker/v/helmuthva/oe-python-template-example?sort=semver&label=Docker&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
20
- [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-examplesort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
21
+ [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-example?sort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
21
22
  [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
23
+ [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE3IDE2VjdsLTYgNU0yIDlWOGwxLTFoMWw0IDMgOC04aDFsNCAyIDEgMXYxNGwtMSAxLTQgMmgtMWwtOC04LTQgM0gzbC0xLTF2LTFsMy0zIi8+PC9zdmc+)](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
+ [![Open in GitHub Codespaces](https://img.shields.io/static/v1?label=GitHub%20Codespaces&message=Open&color=blue&logo=github)](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
25
+
22
26
  <!---
23
27
  [![ghcr.io - Version](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/tags?color=%2344cc11&ignore=0.0%2C0%2Clatest&n=3&label=ghcr.io&trim=)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
24
28
  [![ghcr.io - Sze](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/size?color=%2344cc11&tag=latest&label=size&trim=)](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
  [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=helmut-hoffer-von-ankershoffen_oe-python-template-example&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
13
13
  [![Coverage](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example/graph/badge.svg?token=SX34YRP30E)](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
14
14
  [![Ruff](https://img.shields.io/badge/style-Ruff-blue?color=D6FF65)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
15
+ [![MyPy](https://img.shields.io/badge/mypy-checked-blue)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
15
16
  [![GitHub - Version](https://img.shields.io/github/v/release/helmut-hoffer-von-ankershoffen/oe-python-template-example?label=GitHub&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases)
16
17
  [![GitHub - Commits](https://img.shields.io/github/commit-activity/m/helmut-hoffer-von-ankershoffen/oe-python-template-example/main?label=commits&style=flat&labelColor=1C2C2E&color=blue&logo=GitHub&logoColor=white)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/commits/main/)
17
18
  [![PyPI - Version](https://img.shields.io/pypi/v/oe-python-template-example.svg?label=PyPI&logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
18
19
  [![PyPI - Status](https://img.shields.io/pypi/status/oe-python-template-example?logo=pypi&logoColor=%23FFD243&labelColor=%230073B7&color=FDFDFD)](https://pypi.python.org/pypi/oe-python-template-example)
19
20
  [![Docker - Version](https://img.shields.io/docker/v/helmuthva/oe-python-template-example?sort=semver&label=Docker&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/tags)
20
- [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-examplesort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
21
+ [![Docker - Size](https://img.shields.io/docker/image-size/helmuthva/oe-python-template-example?sort=semver&arch=arm64&label=image&logo=docker&logoColor=white&labelColor=1354D4&color=10151B)](https://hub.docker.com/r/helmuthva/oe-python-template-example/)
21
22
  [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template)
23
+ [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE3IDE2VjdsLTYgNU0yIDlWOGwxLTFoMWw0IDMgOC04aDFsNCAyIDEgMXYxNGwtMSAxLTQgMmgtMWwtOC04LTQgM0gzbC0xLTF2LTFsMy0zIi8+PC9zdmc+)](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
+ [![Open in GitHub Codespaces](https://img.shields.io/static/v1?label=GitHub%20Codespaces&message=Open&color=blue&logo=github)](https://github.com/codespaces/new/helmut-hoffer-von-ankershoffen/oe-python-template-example)
25
+
22
26
  <!---
23
27
  [![ghcr.io - Version](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/tags?color=%2344cc11&ignore=0.0%2C0%2Clatest&n=3&label=ghcr.io&trim=)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
24
28
  [![ghcr.io - Sze](https://ghcr-badge.egpl.dev/helmut-hoffer-von-ankershoffen/oe-python-template-example/size?color=%2344cc11&tag=latest&label=size&trim=)](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/pkgs/container/oe-python-template-example)
@@ -0,0 +1,7 @@
1
+ #!/bin/sh
2
+ VERSION_PART=${1:-patch}
3
+ if echo "$VERSION_PART" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
4
+ uv run bump-my-version bump --new-version "$VERSION_PART" && git push
5
+ else
6
+ uv run bump-my-version bump "$VERSION_PART" && git push
7
+ fi
@@ -1,5 +1,5 @@
1
1
  services:
2
- oe_python_template_example:
2
+ oe-python-template-example:
3
3
  build: .
4
4
  env_file:
5
5
  - path: .env
@@ -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.4"
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://.readthedocs.io/en/latest/_static/logo.png"
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
- :hidden:
6
+ :hidden:
7
7
 
8
- Home<self>
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 GitLab ACT environment.""" # noqa: DOC201
29
- return os.environ.get("GITLAB_WORKFLOW_RUNTIME") == "ACT"
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 formatting checks."""
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.run("ruff", "check", ".", external=True)
108
+ _setup_venv(session)
104
109
  session.run("ruff", "format", ".", external=True)
105
- session.run("uv", "run", "pre-commit", "install", external=True)
106
- with Path(".secrets.baseline").open("w", encoding="utf-8") as out:
107
- session.run("detect-secrets", "scan", stdout=out, external=True)
108
- session.run("git", "add", ".", external=True)
109
- try:
110
- session.run("pre-commit", external=True)
111
- except Exception: # noqa: BLE001
112
- session.log("pre-commit run failed, continuing anyway")
113
- session.run("git", "add", ".", external=True)
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.4"
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,<4.0"
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 = ["streamlit>=1.42.2", "marimo>=0.11.13","jupyter>=1.1.1"]
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.32.2",
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
- "nox[uv]>=2025.2.9",
76
- "pip-audit>=2.8.0",
77
- "pip-licenses>=5.0.0",
78
- "pre-commit>=4.1.0",
79
- "pyright>=1.1.396",
80
- "pytest>=8.3.5",
81
- "pytest-asyncio>=0.25.3",
82
- "pytest-cov>=6.0.0",
83
- "pytest-docker>=3.2.0",
84
- "pytest-env>=1.1.5",
85
- "pytest-xdist[psutil]>=3.6.1",
86
- "ruff>=0.9.7",
87
- "sphinx>=8.2.1",
88
- "sphinx-autobuild>=2024.10.3",
89
- "sphinx-copybutton>=0.5.2",
90
- "sphinx-inline-tabs>=2023.4.21",
91
- "sphinx-mdinclude>=0.6.2",
92
- "sphinxext.opengraph>=0.9.1",
93
- "sphinx-pydantic>=0.1.1",
94
- "sphinx-rtd-theme>=3.0.2",
95
- "sphinx-toolbox>=3.8.3",
96
- "sphinxext-opengraph>=0.9.1",
97
- "tomli>=2.1.0",
98
- "matplotlib>=3.10.0",
99
- "pytest-regressions>=2.7.0",
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 = [".fixme","notebook.py"]
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.4"
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}"