oe-python-template 0.6.26__tar.gz → 0.6.28__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 (167) hide show
  1. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/PKG-INFO +4 -3
  2. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/README.md +3 -2
  3. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/pyproject.toml +9 -3
  4. oe_python_template-0.6.26/.act-env-public +0 -1
  5. oe_python_template-0.6.26/.copier-answers.yml +0 -23
  6. oe_python_template-0.6.26/.devcontainer/Dockerfile +0 -7
  7. oe_python_template-0.6.26/.devcontainer/devcontainer.json +0 -51
  8. oe_python_template-0.6.26/.devcontainer/onCreateCommand +0 -9
  9. oe_python_template-0.6.26/.devcontainer/postAttachCommand +0 -4
  10. oe_python_template-0.6.26/.devcontainer/postCreateCommand +0 -4
  11. oe_python_template-0.6.26/.env.example +0 -1
  12. oe_python_template-0.6.26/.github/copilot-instructions.md +0 -5
  13. oe_python_template-0.6.26/.github/dependabot.yml +0 -13
  14. oe_python_template-0.6.26/.github/prompts/.keep +0 -0
  15. oe_python_template-0.6.26/.github/workflows/codeql.yml +0 -100
  16. oe_python_template-0.6.26/.github/workflows/docker-image-build-publish.yml +0 -93
  17. oe_python_template-0.6.26/.github/workflows/package-build-publish-release.yml +0 -63
  18. oe_python_template-0.6.26/.github/workflows/test-and-report.yml +0 -113
  19. oe_python_template-0.6.26/.pre-commit-config.yaml +0 -76
  20. oe_python_template-0.6.26/.python-version +0 -1
  21. oe_python_template-0.6.26/.readthedocs.yml +0 -36
  22. oe_python_template-0.6.26/.secrets.baseline +0 -127
  23. oe_python_template-0.6.26/.vscode/extensions.json +0 -27
  24. oe_python_template-0.6.26/.vscode/settings.json +0 -76
  25. oe_python_template-0.6.26/CHANGELOG.md +0 -631
  26. oe_python_template-0.6.26/CODEOWNERS +0 -3
  27. oe_python_template-0.6.26/CODE_STYLE.md +0 -284
  28. oe_python_template-0.6.26/CONTRIBUTING.md +0 -155
  29. oe_python_template-0.6.26/Dockerfile +0 -42
  30. oe_python_template-0.6.26/RELEASE_NOTES.md +0 -8
  31. oe_python_template-0.6.26/SECURITY.md +0 -59
  32. oe_python_template-0.6.26/SERVICE_CONNECTIONS.md +0 -85
  33. oe_python_template-0.6.26/VERSION +0 -1
  34. oe_python_template-0.6.26/bin/git-cliff +0 -0
  35. oe_python_template-0.6.26/codecov.yml +0 -11
  36. oe_python_template-0.6.26/compose.yaml +0 -35
  37. oe_python_template-0.6.26/copier.yml +0 -210
  38. oe_python_template-0.6.26/docs/Makefile +0 -20
  39. oe_python_template-0.6.26/docs/make.bat +0 -35
  40. oe_python_template-0.6.26/docs/partials/README_footer.md +0 -15
  41. oe_python_template-0.6.26/docs/partials/README_header.md +0 -37
  42. oe_python_template-0.6.26/docs/partials/README_main.md +0 -305
  43. oe_python_template-0.6.26/docs/source/_static/.keep +0 -0
  44. oe_python_template-0.6.26/docs/source/_static/openapi_v1.json +0 -262
  45. oe_python_template-0.6.26/docs/source/_static/openapi_v1.yaml +0 -38
  46. oe_python_template-0.6.26/docs/source/_static/openapi_v2.json +0 -262
  47. oe_python_template-0.6.26/docs/source/_static/openapi_v2.yaml +0 -188
  48. oe_python_template-0.6.26/docs/source/api_v1.rst +0 -9
  49. oe_python_template-0.6.26/docs/source/api_v1.rst.jinja +0 -9
  50. oe_python_template-0.6.26/docs/source/api_v2.rst +0 -9
  51. oe_python_template-0.6.26/docs/source/api_v2.rst.jinja +0 -9
  52. oe_python_template-0.6.26/docs/source/code-style.rst +0 -1
  53. oe_python_template-0.6.26/docs/source/conf.py +0 -128
  54. oe_python_template-0.6.26/docs/source/contributing.rst +0 -1
  55. oe_python_template-0.6.26/docs/source/index.rst +0 -40
  56. oe_python_template-0.6.26/docs/source/latexmkrc +0 -11
  57. oe_python_template-0.6.26/docs/source/main.rst +0 -1
  58. oe_python_template-0.6.26/docs/source/reference.rst +0 -5
  59. oe_python_template-0.6.26/docs/source/release-notes.rst +0 -4
  60. oe_python_template-0.6.26/docs/source/security.rst +0 -1
  61. oe_python_template-0.6.26/examples/__init__.py +0 -1
  62. oe_python_template-0.6.26/examples/notebook.ipynb +0 -46
  63. oe_python_template-0.6.26/examples/notebook.py +0 -18
  64. oe_python_template-0.6.26/examples/script.py +0 -13
  65. oe_python_template-0.6.26/examples/streamlit.py +0 -30
  66. oe_python_template-0.6.26/git-cliff-2.7.0/CHANGELOG.md +0 -1513
  67. oe_python_template-0.6.26/git-cliff-2.7.0/LICENSE-APACHE +0 -176
  68. oe_python_template-0.6.26/git-cliff-2.7.0/LICENSE-MIT +0 -22
  69. oe_python_template-0.6.26/git-cliff-2.7.0/README.md +0 -95
  70. oe_python_template-0.6.26/git-cliff-2.7.0/completions/_git-cliff +0 -86
  71. oe_python_template-0.6.26/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -84
  72. oe_python_template-0.6.26/git-cliff-2.7.0/completions/git-cliff.bash +0 -190
  73. oe_python_template-0.6.26/git-cliff-2.7.0/completions/git-cliff.elv +0 -78
  74. oe_python_template-0.6.26/git-cliff-2.7.0/completions/git-cliff.fish +0 -39
  75. oe_python_template-0.6.26/git-cliff-2.7.0/git-cliff-completions +0 -0
  76. oe_python_template-0.6.26/git-cliff-2.7.0/git-cliff-mangen +0 -0
  77. oe_python_template-0.6.26/git-cliff-2.7.0/man/git-cliff.1 +0 -214
  78. oe_python_template-0.6.26/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  79. oe_python_template-0.6.26/github-action-run +0 -5
  80. oe_python_template-0.6.26/logo.png +0 -0
  81. oe_python_template-0.6.26/n +0 -28
  82. oe_python_template-0.6.26/noxfile.py +0 -235
  83. oe_python_template-0.6.26/renovate.json +0 -9
  84. oe_python_template-0.6.26/reports/.keep +0 -0
  85. oe_python_template-0.6.26/sonar-project.properties +0 -12
  86. oe_python_template-0.6.26/template/.act-env-public.jinja +0 -1
  87. oe_python_template-0.6.26/template/.devcontainer/Dockerfile.jinja +0 -7
  88. oe_python_template-0.6.26/template/.devcontainer/devcontainer.json.jinja +0 -51
  89. oe_python_template-0.6.26/template/.devcontainer/onCreateCommand.jinja +0 -9
  90. oe_python_template-0.6.26/template/.devcontainer/postAttachCommand.jinja +0 -4
  91. oe_python_template-0.6.26/template/.devcontainer/postCreateCommand.jinja +0 -4
  92. oe_python_template-0.6.26/template/.env.example.jinja +0 -1
  93. oe_python_template-0.6.26/template/.github/copilot-instructions.md +0 -5
  94. oe_python_template-0.6.26/template/.github/dependabot.yml +0 -13
  95. oe_python_template-0.6.26/template/.github/workflows/codeql.yml +0 -100
  96. oe_python_template-0.6.26/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -98
  97. oe_python_template-0.6.26/template/.github/workflows/package-build-publish-release.yml.jinja +0 -63
  98. oe_python_template-0.6.26/template/.github/workflows/test-and-report.yml.jinja +0 -113
  99. oe_python_template-0.6.26/template/.gitignore.jinja +0 -78
  100. oe_python_template-0.6.26/template/.pre-commit-config.yaml.jinja +0 -76
  101. oe_python_template-0.6.26/template/.python-version +0 -1
  102. oe_python_template-0.6.26/template/.readthedocs.yml.jinja +0 -36
  103. oe_python_template-0.6.26/template/.vscode/extensions.json +0 -27
  104. oe_python_template-0.6.26/template/.vscode/settings.json.jinja +0 -76
  105. oe_python_template-0.6.26/template/CHANGELOG.md +0 -0
  106. oe_python_template-0.6.26/template/CODEOWNERS.jinja +0 -3
  107. oe_python_template-0.6.26/template/CODE_STYLE.md.jinja +0 -284
  108. oe_python_template-0.6.26/template/CONTRIBUTING.md.jinja +0 -155
  109. oe_python_template-0.6.26/template/Dockerfile.jinja +0 -42
  110. oe_python_template-0.6.26/template/LICENSE.jinja +0 -21
  111. oe_python_template-0.6.26/template/README.md +0 -0
  112. oe_python_template-0.6.26/template/SECURITY.md.jinja +0 -59
  113. oe_python_template-0.6.26/template/SERVICE_CONNECTIONS.md.jinja +0 -85
  114. oe_python_template-0.6.26/template/VERSION +0 -1
  115. oe_python_template-0.6.26/template/codecov.yml.jinja +0 -11
  116. oe_python_template-0.6.26/template/compose.yaml.jinja +0 -35
  117. oe_python_template-0.6.26/template/docs/Makefile.jinja +0 -20
  118. oe_python_template-0.6.26/template/docs/make.bat.jinja +0 -35
  119. oe_python_template-0.6.26/template/docs/partials/README_footer.md.jinja +0 -15
  120. oe_python_template-0.6.26/template/docs/partials/README_header.md.jinja +0 -40
  121. oe_python_template-0.6.26/template/docs/partials/README_main.md.jinja +0 -305
  122. oe_python_template-0.6.26/template/docs/source/_static/.keep +0 -0
  123. oe_python_template-0.6.26/template/docs/source/api_v1.rst.jinja +0 -9
  124. oe_python_template-0.6.26/template/docs/source/api_v2.rst.jinja +0 -9
  125. oe_python_template-0.6.26/template/docs/source/code-style.rst.jinja +0 -1
  126. oe_python_template-0.6.26/template/docs/source/conf.py.jinja +0 -128
  127. oe_python_template-0.6.26/template/docs/source/contributing.rst.jinja +0 -1
  128. oe_python_template-0.6.26/template/docs/source/index.rst.jinja +0 -40
  129. oe_python_template-0.6.26/template/docs/source/main.rst.jinja +0 -1
  130. oe_python_template-0.6.26/template/docs/source/reference.rst.jinja +0 -5
  131. oe_python_template-0.6.26/template/docs/source/release-notes.rst.jinja +0 -4
  132. oe_python_template-0.6.26/template/docs/source/security.rst.jinja +0 -1
  133. oe_python_template-0.6.26/template/examples/__init__.py.jinja +0 -1
  134. oe_python_template-0.6.26/template/examples/notebook.ipynb.jinja +0 -46
  135. oe_python_template-0.6.26/template/examples/notebook.py.jinja +0 -18
  136. oe_python_template-0.6.26/template/examples/script.py.jinja +0 -13
  137. oe_python_template-0.6.26/template/examples/streamlit.py.jinja +0 -30
  138. oe_python_template-0.6.26/template/github-action-run.jinja +0 -5
  139. oe_python_template-0.6.26/template/logo.png +0 -0
  140. oe_python_template-0.6.26/template/n.jinja +0 -28
  141. oe_python_template-0.6.26/template/noxfile.py.jinja +0 -235
  142. oe_python_template-0.6.26/template/pyproject.toml.jinja +0 -409
  143. oe_python_template-0.6.26/template/renovate.json +0 -9
  144. oe_python_template-0.6.26/template/reports/.keep +0 -0
  145. oe_python_template-0.6.26/template/sonar-project.properties.jinja +0 -12
  146. oe_python_template-0.6.26/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -15
  147. oe_python_template-0.6.26/template/src/{{ project_name_snake_case }}/api.py.jinja +0 -239
  148. oe_python_template-0.6.26/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -133
  149. oe_python_template-0.6.26/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -10
  150. oe_python_template-0.6.26/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -35
  151. oe_python_template-0.6.26/template/tests/__init__.py.jinja +0 -1
  152. oe_python_template-0.6.26/template/tests/api_test.py.jinja +0 -132
  153. oe_python_template-0.6.26/template/tests/cli_test.py.jinja +0 -86
  154. oe_python_template-0.6.26/template/tests/fixtures/.keep +0 -0
  155. oe_python_template-0.6.26/template/{{_copier_conf.answers_file}}.jinja +0 -1
  156. oe_python_template-0.6.26/tests/__init__.py +0 -1
  157. oe_python_template-0.6.26/tests/api_test.py +0 -132
  158. oe_python_template-0.6.26/tests/cli_test.py +0 -86
  159. oe_python_template-0.6.26/tests/fixtures/.keep +0 -0
  160. oe_python_template-0.6.26/uv.lock +0 -4296
  161. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/.gitignore +0 -0
  162. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/LICENSE +0 -0
  163. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/src/oe_python_template/__init__.py +0 -0
  164. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/src/oe_python_template/api.py +0 -0
  165. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/src/oe_python_template/cli.py +0 -0
  166. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/src/oe_python_template/constants.py +0 -0
  167. {oe_python_template-0.6.26 → oe_python_template-0.6.28}/src/oe_python_template/service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.6.26
3
+ Version: 0.6.28
4
4
  Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
5
  Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
6
6
  Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
@@ -165,17 +165,18 @@ fi
165
165
  uv tool install copier # Install copier as global tool
166
166
  ```
167
167
 
168
- **Step 2**: [Create an empty repository on GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository), clone to your local machine, and change into it's directory.
168
+ **Step 2**: [Create a repository on GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository), clone to your local machine, and change into it's directory.
169
169
 
170
170
  **Step 3**: Generate the project. Copy
171
171
  ```shell
172
+ # ensure to stand in a git repository before executing the next command
172
173
  copier copy --trust gh:helmut-hoffer-von-ankershoffen/oe-python-template .
173
174
  ```
174
175
 
175
176
  **Step 4**: Perform initial commit and push. Copy the following code into your terminal and execute it.
176
177
  ```shell
177
178
  git add .
178
- git commit -m "feat: Initial commit"
179
+ git commit -m "chore: Initial commit"
179
180
  git push
180
181
  ```
181
182
 
@@ -104,17 +104,18 @@ fi
104
104
  uv tool install copier # Install copier as global tool
105
105
  ```
106
106
 
107
- **Step 2**: [Create an empty repository on GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository), clone to your local machine, and change into it's directory.
107
+ **Step 2**: [Create a repository on GitHub](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository), clone to your local machine, and change into it's directory.
108
108
 
109
109
  **Step 3**: Generate the project. Copy
110
110
  ```shell
111
+ # ensure to stand in a git repository before executing the next command
111
112
  copier copy --trust gh:helmut-hoffer-von-ankershoffen/oe-python-template .
112
113
  ```
113
114
 
114
115
  **Step 4**: Perform initial commit and push. Copy the following code into your terminal and execute it.
115
116
  ```shell
116
117
  git add .
117
- git commit -m "feat: Initial commit"
118
+ git commit -m "chore: Initial commit"
118
119
  git push
119
120
  ```
120
121
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.6.26"
3
+ version = "0.6.28"
4
4
  description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -79,9 +79,15 @@ Changelog = "https://github.com/helmut-hoffer-von-ankershoffen/oe-python-templat
79
79
  Issues = "https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/issues"
80
80
 
81
81
  [build-system]
82
- requires = ["hatchling"]
82
+ requires = ["hatchling==1.27.0"]
83
83
  build-backend = "hatchling.build"
84
84
 
85
+ [tool.hatch.build]
86
+ include = ["src/*"]
87
+
88
+ [tool.hatch.build.targets.wheel]
89
+ packages = ["src/oe_python_template"]
90
+
85
91
  [project.optional-dependencies]
86
92
  examples = [
87
93
  "streamlit>=1.43.2",
@@ -242,7 +248,7 @@ source = ["src/"]
242
248
 
243
249
 
244
250
  [tool.bumpversion]
245
- current_version = "0.6.26"
251
+ current_version = "0.6.28"
246
252
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
247
253
  serialize = ["{major}.{minor}.{patch}"]
248
254
  search = "{current_version}"
@@ -1 +0,0 @@
1
- GITHUB_WORKFLOW_RUNTIME=ACT
@@ -1,23 +0,0 @@
1
- _commit: v0.6.25-1-gfb4e83c
2
- _src_path: .
3
- author_email: helmuthva@gmail.com
4
- author_github_username: helmut-hoffer-von-ankershoffen
5
- author_name: Helmut Hoffer von Ankershoffen
6
- docker_io_enabled: true
7
- docker_io_image_name: oe-python-template
8
- docker_io_owner: helmuthva
9
- github_repository_name: oe-python-template
10
- github_repository_owner: helmut-hoffer-von-ankershoffen
11
- github_repository_url_https: https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template
12
- github_repository_url_ssh: git@github.com:helmut-hoffer-von-ankershoffen/oe-python-template.git
13
- org_email: helmuthva@gmail.com
14
- org_name: Helmut Hoffer von Ankershoffen
15
- project_description: Copier template to scaffold Python projects compliant with best
16
- practices and modern tooling.
17
- project_icon: 🧠
18
- project_name: OE Python Template
19
- pypi_distribution_name: oe-python-template
20
- readthedocs_domain: readthedocs.org
21
- readthedocs_project_key: oe-python-template
22
- sonarqube_key: helmut-hoffer-von-ankershoffen_oe-python-template
23
- streamlit_project_key: oe-python-template
@@ -1,7 +0,0 @@
1
- FROM mcr.microsoft.com/devcontainers/python:1-3.11-bullseye
2
-
3
- RUN curl --proto '=https' --tlsv1.2 -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
4
- apt update -y && \
5
- apt install -y --no-install-recommends curl gnupg2 jq less nano nodejs procps psmisc && \
6
- apt-get clean && \
7
- rm -rf /var/lib/apt/lists/*
@@ -1,51 +0,0 @@
1
- {
2
- "build": {
3
- "dockerfile": "Dockerfile"
4
- },
5
- "features": {
6
- "ghcr.io/devcontainers/features/github-cli:1": {},
7
- "ghcr.io/va-h/devcontainers-features/uv:1": {},
8
- "ghcr.io/dhoeric/features/act:1": {},
9
- "ghcr.io/devcontainers/features/docker-in-docker:2": {},
10
- "ghcr.io/devcontainers/features/java:1": {},
11
- "ghcr.io/devcontainers/features/node:1": {}
12
- },
13
- "onCreateCommand": ".devcontainer/onCreateCommand",
14
- "postCreateCommand": ".devcontainer/postCreateCommand",
15
- "postAttachCommand": ".devcontainer/postAttachCommand",
16
- "customizations": {
17
- // Configure properties specific to VS Code.
18
- "vscode": {
19
- // Add the IDs of extensions you want installed when the container is created.
20
- "extensions": [
21
- "charliermarsh.ruff",
22
- "codecov.codecov",
23
- "donjayamanne.python-environment-manager",
24
- "fill-labs.dependi",
25
- "github.vscode-github-actions",
26
- "github.copilot",
27
- "github.copilot-chat",
28
- "gruntfuggly.todo-tree",
29
- "joshrmosier.streamlit-runner",
30
- "kaih2o.python-resource-monitor",
31
- "marimo-team.vscode-marimo",
32
- "mikestead.dotenv",
33
- "ms-azuretools.vscode-docker",
34
- "ms-python.debugpy",
35
- "ms-python.python",
36
- "ms-python.vscode-pylance",
37
- "ms-toolsai.jupyter",
38
- "oderwat.indent-rainbow",
39
- "samuelcolvin.jinjahtml",
40
- "sonarsource.sonarlint-vscode",
41
- "tamasfe.even-better-toml",
42
- "tomoki1207.pdf",
43
- "wayou.vscode-todo-highlight"
44
- ]
45
- }
46
- },
47
- "mounts": [
48
- "source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind,consistency=cached"
49
- ],
50
- "forwardPorts": []
51
- }
@@ -1,9 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "onCreateCommand: start"
4
- git config --global --add safe.directory /workspaces/oe-python-template
5
- rm -rf .nox
6
- rm -rf .venv
7
- uv sync --frozen
8
- uv run pre-commit install
9
- echo "onCreateCommand: end"
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "postAttachCommand:start"
4
- echo "postAttachCommand:end"
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "postCreateCommand:start"
4
- echo "postCreateCommand:end"
@@ -1 +0,0 @@
1
- THE_KEY=A value
@@ -1,5 +0,0 @@
1
- Always conform to the coding styles defined in CODE_STYLE.md in the root
2
- directory of this repository when generating code.
3
-
4
- Learn about tools to use in CONTRIBUTING.md in the root directory of this
5
- repository.
@@ -1,13 +0,0 @@
1
- # Please see the documentation for all configuration options:
2
- # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
3
-
4
- version: 2
5
- updates:
6
- - package-ecosystem: "pip"
7
- directory: "/"
8
- schedule:
9
- interval: "daily"
10
- - package-ecosystem: "github-actions"
11
- directory: "/"
12
- schedule:
13
- interval: "daily"
File without changes
@@ -1,100 +0,0 @@
1
- # For most projects, this workflow file will not need changing; you simply need
2
- # to commit it to your repository.
3
- #
4
- # You may wish to alter this file to override the set of languages analyzed,
5
- # or to provide custom queries or build logic.
6
- #
7
- # ******** NOTE ********
8
- # We have attempted to detect the languages in your repository. Please check
9
- # the `language` matrix defined below to confirm you have the correct set of
10
- # supported CodeQL languages.
11
- #
12
- name: "CodeQL Advanced"
13
-
14
- on:
15
- push:
16
- branches: ["main"]
17
- pull_request:
18
- branches: ["main"]
19
- schedule:
20
- - cron: "22 3 * * 2"
21
-
22
- jobs:
23
- analyze:
24
- name: Analyze (${{ matrix.language }})
25
- # Runner size impacts CodeQL analysis time. To learn more, please see:
26
- # - https://gh.io/recommended-hardware-resources-for-running-codeql
27
- # - https://gh.io/supported-runners-and-hardware-resources
28
- # - https://gh.io/using-larger-runners (GitHub.com only)
29
- # Consider using larger runners or machines with greater resources for possible analysis time improvements.
30
- runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
31
- permissions:
32
- # required for all workflows
33
- security-events: write
34
-
35
- # required to fetch internal or private CodeQL packs
36
- packages: read
37
-
38
- # only required for workflows in private repositories
39
- actions: read
40
- contents: read
41
-
42
- strategy:
43
- fail-fast: false
44
- matrix:
45
- include:
46
- - language: actions
47
- build-mode: none
48
- - language: python
49
- build-mode: none
50
- # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
51
- # Use `c-cpp` to analyze code written in C, C++ or both
52
- # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
53
- # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
54
- # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
55
- # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
56
- # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
57
- # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
58
- steps:
59
- - name: Checkout repository
60
- uses: actions/checkout@v4
61
-
62
- # Add any setup steps before running the `github/codeql-action/init` action.
63
- # This includes steps like installing compilers or runtimes (`actions/setup-node`
64
- # or others). This is typically only required for manual builds.
65
- # - name: Setup runtime (example)
66
- # uses: actions/setup-example@v1
67
-
68
- # Initializes the CodeQL tools for scanning.
69
- - name: Initialize CodeQL
70
- uses: github/codeql-action/init@v3
71
- with:
72
- languages: ${{ matrix.language }}
73
- build-mode: ${{ matrix.build-mode }}
74
- # If you wish to specify custom queries, you can do so here or in a config file.
75
- # By default, queries listed here will override any specified in a config file.
76
- # Prefix the list here with "+" to use these queries and those in the config file.
77
-
78
- # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
79
- queries: security-extended,security-and-quality
80
-
81
- # If the analyze step fails for one of the languages you are analyzing with
82
- # "We were unable to automatically build your code", modify the matrix above
83
- # to set the build mode to "manual" for that language. Then modify this step
84
- # to build your code.
85
- # ℹ️ Command-line programs to run using the OS shell.
86
- # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
87
- - if: matrix.build-mode == 'manual'
88
- shell: bash
89
- run: |
90
- echo 'If you are using a "manual" build mode for one or more of the' \
91
- 'languages you are analyzing, replace this with the commands to build' \
92
- 'your code, for example:'
93
- echo ' make bootstrap'
94
- echo ' make release'
95
- exit 1
96
-
97
- - name: Perform CodeQL Analysis
98
- uses: github/codeql-action/analyze@v3
99
- with:
100
- category: "/language:${{matrix.language}}"
@@ -1,93 +0,0 @@
1
- name: "Build and publish Docker image to docker.io and ghcr.io"
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*.*.*"
7
-
8
-
9
- env:
10
- REGISTRY: docker.io
11
- IMAGE_NAME: helmuthva/oe-python-template
12
-
13
-
14
- jobs:
15
- docker_image_build_publish:
16
- runs-on: ubuntu-latest
17
- permissions:
18
- packages: write
19
- contents: read
20
- attestations: write
21
- id-token: write
22
- steps:
23
- - name: Checkout
24
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25
-
26
- - name: Set up QEMU
27
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
28
-
29
- - name: Set up Docker Buildx
30
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
31
-
32
-
33
-
34
- - name: Log in to Docker Hub
35
- uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
36
- with:
37
-
38
- username: ${{ secrets.DOCKER_USERNAME }}
39
- password: ${{ secrets.DOCKER_PASSWORD }}
40
-
41
-
42
-
43
- - name: Log in to GitHub container registry
44
- uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
45
- with:
46
- registry: ghcr.io
47
-
48
- username: ${{ github.actor }}
49
- password: ${{ secrets.GITHUB_TOKEN }}
50
-
51
-
52
- - name: Extract metadata (tags, labels) for Docker
53
- id: meta
54
- uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
55
- with:
56
-
57
-
58
- images: |
59
- ${{ env.IMAGE_NAME }}
60
- ghcr.io/${{ github.repository }}
61
-
62
-
63
-
64
- tags: |
65
- # set latest tag for releases
66
- type=raw,value=latest
67
- # set semver tags from git tags (v1.2.3 -> 1.2.3, 1.2, 1)
68
- type=semver,pattern={{version}}
69
- type=semver,pattern={{major}}.{{minor}}
70
- type=semver,pattern={{major}}
71
-
72
-
73
-
74
- - name: Build and push Docker image
75
- id: push
76
- uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
77
- with:
78
- context: .
79
- file: ./Dockerfile
80
- platforms: linux/amd64,linux/arm64
81
- push: true
82
- tags: ${{ steps.meta.outputs.tags }}
83
- labels: ${{ steps.meta.outputs.labels }}
84
-
85
-
86
-
87
-
88
- - name: Generate artifact attestation
89
- uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
90
- with:
91
- subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
92
- subject-digest: ${{ steps.push.outputs.digest }}
93
- push-to-registry: true
@@ -1,63 +0,0 @@
1
- name: "Build package, publish to PyPI, create GitHub release"
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*.*.*"
7
-
8
-
9
- jobs:
10
- package_build_publish_release:
11
- environment: release
12
- runs-on: ubuntu-latest
13
- permissions:
14
- contents: write
15
- packages: read
16
- steps:
17
- - name: Checkout
18
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19
- with:
20
- fetch-depth: 0
21
-
22
- - name: Generate release notes
23
- uses: orhun/git-cliff-action@4a4a951bc43fafe41cd2348d181853f52356bee7 # v4.4.2
24
- id: git-cliff
25
- with:
26
- config: pyproject.toml
27
- args: --verbose --latest --strip header
28
- env:
29
- OUTPUT: RELEASE_NOTES.md
30
- GITHUB_REPO: ${{ github.repository }}
31
-
32
- - name: Print the release notes
33
- run: cat "${{ steps.git-cliff.outputs.changelog }}"
34
-
35
-
36
- - name: Install uv
37
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
38
- with:
39
- version: "0.6.3"
40
- cache-dependency-glob: uv.lock
41
- enable-cache: true
42
-
43
- - name: Build package into dist/
44
- run: uv build
45
-
46
- - name: Publish package to PyPI
47
- run: uv publish -t ${{ secrets.UV_PUBLISH_TOKEN }}
48
-
49
- - name: Build package into dist/
50
- run: uv run nox -s audit
51
-
52
- - name: Create GitHub release
53
- env:
54
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
- run: |
56
- gh release create ${{ github.ref_name }} ./dist/* ./reports/* --notes-file ${{ steps.git-cliff.outputs.changelog }}
57
-
58
- - name: Allow other workflows to trigger on release
59
- env:
60
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61
- run: |
62
- gh api repos/helmut-hoffer-von-ankershoffen/oe-python-template/dispatches \
63
- -f event_type=release_created_programatically
@@ -1,113 +0,0 @@
1
- name: "CI"
2
-
3
- on:
4
- push:
5
- branches:
6
- - "**"
7
- pull_request:
8
- branches: [main]
9
-
10
- jobs:
11
- test:
12
- runs-on: ubuntu-latest
13
- permissions:
14
- packages: write
15
- contents: read
16
- attestations: write
17
- id-token: write
18
- steps:
19
- - name: Checkout
20
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21
- with:
22
- fetch-depth: 0
23
-
24
- - name: Install dependencies
25
- run: |
26
- sudo apt-get update && sudo apt-get install -y libcairo2
27
-
28
- - name: Install dev tools
29
- run: |
30
- sudo apt-get install -y curl jq xsltproc gnupg2 libcairo2
31
-
32
- - name: Install uv (python package manager)
33
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
34
- with:
35
- version: "0.6.3"
36
- enable-cache: true
37
- cache-dependency-glob: uv.lock
38
-
39
- - name: Install Python, venv and dependencies
40
- run: |
41
- uv sync --all-extras --frozen --link-mode=copy
42
-
43
- - name: Release version check
44
- if: startsWith(github.ref, 'refs/tags/v')
45
- run: |
46
- TAG_VERSION=${GITHUB_REF#refs/tags/v}
47
- TOML_VERSION=$(uv run python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
48
-
49
- if [ "$TAG_VERSION" != "$TOML_VERSION" ]; then
50
- echo "Release version mismatch: Tag $TAG_VERSION != pyproject.toml $TOML_VERSION"
51
- exit 1
52
- fi
53
-
54
- - name: Print development version info
55
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
56
- run: |
57
- TOML_VERSION=$(uv run python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
58
- echo "Development build - Current version in pyproject.toml: $TOML_VERSION"
59
-
60
- - name: Create .env file
61
- uses: SpicyPizza/create-envfile@ace6d4f5d7802b600276c23ca417e669f1a06f6f # v2.0.3
62
- with:
63
- envkey_ENV_KEY: "ENV_VALUE"
64
- fail_on_empty: true
65
-
66
- - name: Validate installation
67
- run: |
68
- OUTPUT=$(uv run oe-python-template --help)
69
- if [[ "$OUTPUT" != *"built with love in Berlin"* ]]; then
70
- echo "Output does not contain 'built with love in Berlin'"
71
- exit 1
72
- fi
73
-
74
- - name: Smoke tests
75
- run: |
76
- uv run oe-python-template hello-world
77
-
78
- - name: Run unit tests, measure coverage, lint, and check vulnerabilities
79
- run: |
80
- uv run nox
81
-
82
- - name: Upload test results
83
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
84
- if: ${{ always() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
85
- with:
86
- name: test-results
87
- path: |
88
- junit.xml
89
- coverage.xml
90
- coverage_html/
91
- vulnerabilities.json
92
- licenses.json
93
- licenses-inverted.json
94
- retention-days: 30
95
-
96
- - name: Upload coverage reports to Codecov
97
- uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
98
- if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
99
- with:
100
- token: ${{ secrets.CODECOV_TOKEN }}
101
- slug: helmut-hoffer-von-ankershoffen/oe-python-template
102
-
103
- - name: Upload test results to Codecov
104
- if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
105
- uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 # v1.1.0
106
- with:
107
- token: ${{ secrets.CODECOV_TOKEN }}
108
- - name: SonarQube Scan
109
- if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
110
- uses: SonarSource/sonarqube-scan-action@0303d6b62e310685c0e34d0b9cde218036885c4d # v5.0.0
111
- env:
112
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
113
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -1,76 +0,0 @@
1
- # .pre-commit-config.yaml
2
- default_install_hook_types:
3
- - pre-commit
4
- - post-checkout
5
- - post-merge
6
- - post-rewrite
7
- fail_fast: true
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
- exclude: "^examples/notebook.py$"
18
- - id: python-check-mock-methods
19
- - id: python-no-eval
20
- - id: python-no-log-warn
21
- - id: python-use-type-annotations
22
- - id: rst-backticks
23
- - id: rst-directive-colons
24
- - id: rst-inline-touching-normal
25
- - id: text-unicode-replacement-char
26
- - repo: https://github.com/pre-commit/pre-commit-hooks
27
- rev: v5.0.0
28
- hooks:
29
- - id: check-added-large-files
30
- - id: check-case-conflict
31
- - id: check-illegal-windows-names
32
- - id: check-merge-conflict
33
- args: ["--assume-in-merge"]
34
- - id: check-shebang-scripts-are-executable
35
- - id: check-symlinks
36
- - id: check-toml
37
- - id: check-xml
38
- - id: check-yaml
39
- exclude: |
40
- (?x)^(
41
- test.*|
42
- mkdocs.yml
43
- )$
44
- args: [--allow-multiple-documents]
45
- - id: debug-statements
46
- - id: destroyed-symlinks
47
- - id: detect-private-key
48
- - id: end-of-file-fixer
49
- exclude: "^tests/fixtures/|.json$"
50
- - id: fix-byte-order-marker
51
- - id: fix-encoding-pragma
52
- args: ["--remove"]
53
- - id: mixed-line-ending
54
- - id: name-tests-test
55
- - id: requirements-txt-fixer
56
- - id: trailing-whitespace
57
- exclude: "docs/source/_static"
58
- - repo: https://github.com/Yelp/detect-secrets
59
- rev: v1.5.0
60
- hooks:
61
- - id: detect-secrets
62
- args: ['--baseline', '.secrets.baseline']
63
- additional_dependencies: ["gibberish-detector"]
64
- - repo: https://github.com/astral-sh/uv-pre-commit
65
- rev: 0.6.5
66
- hooks:
67
- - id: uv-lock
68
- - repo: local
69
- hooks:
70
- - id: nox
71
- name: nox
72
- entry: uv run nox
73
- language: system
74
- pass_filenames: false
75
- always_run: true
76
- verbose: true
@@ -1 +0,0 @@
1
- 3.11