oe-python-template-example 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.copier-answers.yml +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/workflows/codeql.yml +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/workflows/docker-image-build-publish.yml +8 -8
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/workflows/package-build-publish-release.yml +4 -4
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/workflows/test-and-report.yml +7 -7
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/CONTRIBUTING.md +10 -2
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/PKG-INFO +2 -2
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/README.md +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/SECURITY.md +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/SERVICE_CONNECTIONS.md +1 -1
- oe_python_template_example-0.2.4/VERSION +1 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_header.md +1 -1
- oe_python_template_example-0.2.4/docs/source/_static/openapi_v1.yaml +14 -0
- oe_python_template_example-0.2.4/docs/source/api_v1.rst +9 -0
- oe_python_template_example-0.2.4/docs/source/api_v2.rst +9 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/conf.py +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/main.rst +0 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/notebook.py +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/n +1 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/noxfile.py +35 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/pyproject.toml +2 -2
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/sonar-project.properties +1 -1
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/uv.lock +1 -1
- oe_python_template_example-0.2.2/VERSION +0 -1
- oe_python_template_example-0.2.2/docs/source/_static/openapi_v1.yaml +0 -34
- oe_python_template_example-0.2.2/docs/source/api_v1.rst +0 -11
- oe_python_template_example-0.2.2/docs/source/api_v2.rst +0 -11
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.act-env-public +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/Dockerfile +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/devcontainer.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/onCreateCommand +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/postAttachCommand +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/postCreateCommand +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.env.example +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/copilot-instructions.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/dependabot.yml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.gitignore +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.pre-commit-config.yaml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.python-version +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.readthedocs.yml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.secrets.baseline +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.vscode/extensions.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.vscode/settings.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/CHANGELOG.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/CODEOWNERS +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/CODE_STYLE.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/Dockerfile +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/LICENSE +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/RELEASE_NOTES.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/bin/git-cliff +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/codecov.yml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/compose.yaml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/Makefile +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/make.bat +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_footer.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_main.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/.keep +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/openapi.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/openapi.yaml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/openapi_v1.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/openapi_v2.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/openapi_v2.yaml +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/code-style.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/contributing.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/index.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/reference.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/release-notes.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/security.rst +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/__init__.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/notebook.ipynb +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/script.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/streamlit.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/CHANGELOG.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/LICENSE-MIT +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/README.md +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/completions/_git-cliff +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/git-cliff-completions +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/git-cliff-mangen +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/github-action-run +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/logo.png +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/renovate.json +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/reports/.keep +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/src/oe_python_template_example/api.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/src/oe_python_template_example/cli.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/src/oe_python_template_example/service.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/tests/__init__.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/tests/api_test.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/tests/cli_test.py +0 -0
- {oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/tests/fixtures/.keep +0 -0
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/workflows/codeql.yml
RENAMED
@@ -76,7 +76,7 @@ jobs:
|
|
76
76
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
77
77
|
|
78
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
|
-
|
79
|
+
queries: security-extended,security-and-quality
|
80
80
|
|
81
81
|
# If the analyze step fails for one of the languages you are analyzing with
|
82
82
|
# "We were unable to automatically build your code", modify the matrix above
|
@@ -21,18 +21,18 @@ jobs:
|
|
21
21
|
id-token: write
|
22
22
|
steps:
|
23
23
|
- name: Checkout
|
24
|
-
uses: actions/checkout@v4
|
24
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
25
25
|
|
26
26
|
- name: Set up QEMU
|
27
|
-
uses: docker/setup-qemu-action@v3
|
27
|
+
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
28
28
|
|
29
29
|
- name: Set up Docker Buildx
|
30
|
-
uses: docker/setup-buildx-action@v3
|
30
|
+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
31
31
|
|
32
32
|
|
33
33
|
|
34
34
|
- name: Log in to Docker Hub
|
35
|
-
uses: docker/login-action@v3
|
35
|
+
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
36
36
|
with:
|
37
37
|
|
38
38
|
username: ${{ secrets.DOCKER_USERNAME }}
|
@@ -41,7 +41,7 @@ jobs:
|
|
41
41
|
|
42
42
|
|
43
43
|
- name: Log in to GitHub container registry
|
44
|
-
uses: docker/login-action@v3
|
44
|
+
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
45
45
|
with:
|
46
46
|
registry: ghcr.io
|
47
47
|
|
@@ -51,7 +51,7 @@ jobs:
|
|
51
51
|
|
52
52
|
- name: Extract metadata (tags, labels) for Docker
|
53
53
|
id: meta
|
54
|
-
uses: docker/metadata-action@v5
|
54
|
+
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
55
55
|
with:
|
56
56
|
|
57
57
|
|
@@ -73,7 +73,7 @@ jobs:
|
|
73
73
|
|
74
74
|
- name: Build and push Docker image
|
75
75
|
id: push
|
76
|
-
uses: docker/build-push-action@v6
|
76
|
+
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
77
77
|
with:
|
78
78
|
context: .
|
79
79
|
file: ./Dockerfile
|
@@ -86,7 +86,7 @@ jobs:
|
|
86
86
|
|
87
87
|
|
88
88
|
- name: Generate artifact attestation
|
89
|
-
uses: actions/attest-build-provenance@v2
|
89
|
+
uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
|
90
90
|
with:
|
91
91
|
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
92
92
|
subject-digest: ${{ steps.push.outputs.digest }}
|
@@ -15,12 +15,12 @@ jobs:
|
|
15
15
|
packages: read
|
16
16
|
steps:
|
17
17
|
- name: Checkout
|
18
|
-
uses: actions/checkout@v4
|
18
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
19
19
|
with:
|
20
20
|
fetch-depth: 0
|
21
21
|
|
22
22
|
- name: Generate release notes
|
23
|
-
uses: orhun/git-cliff-action@v4
|
23
|
+
uses: orhun/git-cliff-action@4a4a951bc43fafe41cd2348d181853f52356bee7 # v4.4.2
|
24
24
|
id: git-cliff
|
25
25
|
with:
|
26
26
|
config: pyproject.toml
|
@@ -34,9 +34,9 @@ jobs:
|
|
34
34
|
|
35
35
|
|
36
36
|
- name: Install uv
|
37
|
-
uses: astral-sh/setup-uv@v5
|
37
|
+
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
|
38
38
|
with:
|
39
|
-
version: "0.
|
39
|
+
version: "0.6.7"
|
40
40
|
cache-dependency-glob: uv.lock
|
41
41
|
enable-cache: true
|
42
42
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
17
17
|
id-token: write
|
18
18
|
steps:
|
19
19
|
- name: Checkout
|
20
|
-
uses: actions/checkout@v4
|
20
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
21
21
|
with:
|
22
22
|
fetch-depth: 0
|
23
23
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
30
30
|
sudo apt-get install -y curl jq xsltproc gnupg2 libcairo2
|
31
31
|
|
32
32
|
- name: Install uv (python package manager)
|
33
|
-
uses: astral-sh/setup-uv@v5
|
33
|
+
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
|
34
34
|
with:
|
35
35
|
version: "0.5.9"
|
36
36
|
enable-cache: true
|
@@ -58,7 +58,7 @@ jobs:
|
|
58
58
|
echo "Development build - Current version in pyproject.toml: $TOML_VERSION"
|
59
59
|
|
60
60
|
- name: Create .env file
|
61
|
-
uses: SpicyPizza/create-envfile@v2.0
|
61
|
+
uses: SpicyPizza/create-envfile@ace6d4f5d7802b600276c23ca417e669f1a06f6f # v2.0.3
|
62
62
|
with:
|
63
63
|
envkey_ENV_KEY: "ENV_VALUE"
|
64
64
|
fail_on_empty: true
|
@@ -80,7 +80,7 @@ jobs:
|
|
80
80
|
uv run nox
|
81
81
|
|
82
82
|
- name: Upload test results
|
83
|
-
uses: actions/upload-artifact@v4
|
83
|
+
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
|
84
84
|
if: ${{ always() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
85
85
|
with:
|
86
86
|
name: test-results
|
@@ -94,7 +94,7 @@ jobs:
|
|
94
94
|
retention-days: 30
|
95
95
|
|
96
96
|
- name: Upload coverage reports to Codecov
|
97
|
-
uses: codecov/codecov-action@v5
|
97
|
+
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
|
98
98
|
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
99
99
|
with:
|
100
100
|
token: ${{ secrets.CODECOV_TOKEN }}
|
@@ -102,12 +102,12 @@ jobs:
|
|
102
102
|
|
103
103
|
- name: Upload test results to Codecov
|
104
104
|
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
105
|
-
uses: codecov/test-results-action@v1
|
105
|
+
uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 # v1.1.0
|
106
106
|
with:
|
107
107
|
token: ${{ secrets.CODECOV_TOKEN }}
|
108
108
|
- name: SonarQube Scan
|
109
109
|
if: ${{ !cancelled() && (env.GITHUB_WORKFLOW_RUNTIME != 'ACT') }}
|
110
|
-
uses: SonarSource/sonarqube-scan-action@v5
|
110
|
+
uses: SonarSource/sonarqube-scan-action@0303d6b62e310685c0e34d0b9cde218036885c4d # v5.0.0
|
111
111
|
env:
|
112
112
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
113
113
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
@@ -20,6 +20,7 @@ fi
|
|
20
20
|
which jq &> /dev/null || brew install jq
|
21
21
|
which xmllint &> /dev/null || brew install xmllint
|
22
22
|
which act &> /dev/null || brew install act
|
23
|
+
which pinact &> /dev/null || brew install pinact
|
23
24
|
uv run pre-commit install # install pre-commit hooks, see https://pre-commit.com/
|
24
25
|
```
|
25
26
|
|
@@ -88,9 +89,10 @@ uv run nox -s test # run tests
|
|
88
89
|
uv run nox -s lint # run formatting and linting
|
89
90
|
uv run nox -s audit # run security and license audit, inc. sbom generation
|
90
91
|
uv run nox -s docs # build documentation, output in docs/build/html
|
92
|
+
uv run nox -s docs_pdf # locally build pdf manual to docs/build/latex/oe-python-template-example.pdf
|
91
93
|
```
|
92
94
|
|
93
|
-
As a shortcut, you can run build steps using `./n
|
95
|
+
As a shortcut, you can run build steps using `./n`, e.g.
|
94
96
|
|
95
97
|
```shell
|
96
98
|
./n test
|
@@ -129,9 +131,15 @@ docker build -t oe-python-template-example .
|
|
129
131
|
docker run --env THE_VAR=THE_VALUE oe-python-template-example --help
|
130
132
|
```
|
131
133
|
|
134
|
+
### Pinning github actions
|
135
|
+
|
136
|
+
```shell
|
137
|
+
pinact run # See https://dev.to/suzukishunsuke/pin-github-actions-to-a-full-length-commit-sha-for-security-2n7p
|
138
|
+
```
|
139
|
+
|
132
140
|
### Copier
|
133
141
|
|
134
|
-
Update
|
142
|
+
Update from template
|
135
143
|
|
136
144
|
```shell
|
137
145
|
uv run nox -s update_from_template
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template-example
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.4
|
4
4
|
Summary: 🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template).
|
5
5
|
Project-URL: Homepage, https://oe-python-template-example.readthedocs.io/en/latest/
|
6
6
|
Project-URL: Documentation, https://oe-python-template-example.readthedocs.io/en/latest/
|
@@ -76,7 +76,7 @@ Description-Content-Type: text/markdown
|
|
76
76
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
77
77
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
78
78
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
79
|
-
[](https://
|
79
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
80
80
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
81
81
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
82
82
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -15,7 +15,7 @@
|
|
15
15
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
16
16
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
17
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
18
|
-
[](https://
|
18
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
19
19
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
20
20
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
21
21
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -21,7 +21,7 @@ OE Python Template Example employs several automated tools to continuously monit
|
|
21
21
|
### 1. Dependency Vulnerability Scanning
|
22
22
|
|
23
23
|
- **GitHub Dependabot**: Monitors dependencies for known vulnerabilities and automatically creates pull requests to update them when security issues are found. [Dependendabot alerts](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot) published.
|
24
|
-
- **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues) published.
|
24
|
+
- **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) published.
|
25
25
|
- **pip-audit**: Regularly scans Python dependencies for known vulnerabilities using data from the Python Advisory Database. `vulnerabilities.json` published [per release](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/releases).
|
26
26
|
|
27
27
|
### 2. Dependency Compliance
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/SERVICE_CONNECTIONS.md
RENAMED
@@ -31,7 +31,7 @@
|
|
31
31
|
|
32
32
|
1. Goto https://github.com/apps/renovate and click the "Configure" button
|
33
33
|
2. Select the owner of your project's repository and configure "Repository access"
|
34
|
-
3. Rennovate creates a [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues) as an issue in your repository
|
34
|
+
3. Rennovate creates a [Dependency Dashboard](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) as an issue in your repository
|
35
35
|
|
36
36
|
## Publishing package to Python Package Index (pypi.org)
|
37
37
|
|
@@ -0,0 +1 @@
|
|
1
|
+
0.2.4
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_header.md
RENAMED
@@ -12,7 +12,7 @@
|
|
12
12
|
[](https://sonarcloud.io/summary/new_code?id=helmut-hoffer-von-ankershoffen_oe-python-template-example)
|
13
13
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/code-scanning)
|
14
14
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/security/dependabot)
|
15
|
-
[](https://
|
15
|
+
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard)
|
16
16
|
[](https://codecov.io/gh/helmut-hoffer-von-ankershoffen/oe-python-template-example)
|
17
17
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
18
18
|
[](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example/blob/main/noxfile.py)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Traceback (most recent call last):
|
2
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/bin/oe-python-template-example", line 4, in <module>
|
3
|
+
from oe_python_template_example.cli import cli
|
4
|
+
File "/Users/helmut/Code/oe-python-template-example/src/oe_python_template_example/cli.py", line 7, in <module>
|
5
|
+
import typer
|
6
|
+
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/typer/__init__.py", line 29, in <module>
|
7
|
+
from .main import Typer as Typer
|
8
|
+
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
|
9
|
+
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
|
10
|
+
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
|
11
|
+
File "<frozen importlib._bootstrap_external>", line 1022, in exec_module
|
12
|
+
File "<frozen importlib._bootstrap_external>", line 1118, in get_code
|
13
|
+
File "<frozen importlib._bootstrap_external>", line 1218, in get_data
|
14
|
+
KeyboardInterrupt
|
@@ -29,7 +29,7 @@ extensions = [
|
|
29
29
|
project = "oe-python-template-example"
|
30
30
|
author = "Helmut Hoffer von Ankershoffen"
|
31
31
|
copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
|
32
|
-
version = "0.2.
|
32
|
+
version = "0.2.4"
|
33
33
|
release = version
|
34
34
|
github_username = "helmut-hoffer-von-ankershoffen"
|
35
35
|
github_repository = "oe-python-template-example"
|
@@ -7,11 +7,13 @@ from pathlib import Path
|
|
7
7
|
|
8
8
|
import nox
|
9
9
|
import tomli
|
10
|
+
from nox.command import CommandFailed
|
10
11
|
|
11
12
|
nox.options.reuse_existing_virtualenvs = True
|
12
13
|
nox.options.default_venv_backend = "uv"
|
13
14
|
|
14
15
|
NOT_SKIP_WITH_ACT = "not skip_with_act"
|
16
|
+
LATEXMK_VERSION_MIN = 4.86
|
15
17
|
|
16
18
|
|
17
19
|
def _setup_venv(session: nox.Session, all_extras: bool = True) -> None:
|
@@ -78,6 +80,39 @@ def docs(session: nox.Session) -> None:
|
|
78
80
|
# Build docs
|
79
81
|
session.run("make", "-C", "docs", "clean", external=True)
|
80
82
|
session.run("make", "-C", "docs", "html", external=True)
|
83
|
+
session.run("make", "-C", "docs", "singlehtml", external=True)
|
84
|
+
session.run("make", "-C", "docs", "latex", external=True)
|
85
|
+
|
86
|
+
|
87
|
+
@nox.session(python=["3.13"], default=False)
|
88
|
+
def docs_pdf(session: nox.Session) -> None:
|
89
|
+
"""Setup dev environment post project creation.""" # noqa: DOC501
|
90
|
+
_setup_venv(session)
|
91
|
+
try:
|
92
|
+
out = session.run("latexmk", "--version", external=True, silent=True)
|
93
|
+
|
94
|
+
version_match = re.search(r"Version (\d+\.\d+\w*)", str(out))
|
95
|
+
if not version_match:
|
96
|
+
session.error("Could not determine latexmk version")
|
97
|
+
|
98
|
+
version_str = version_match.group(1)
|
99
|
+
|
100
|
+
# Parse version (handle cases like "4.86a")
|
101
|
+
match = re.match(r"(\d+\.\d+)", version_str)
|
102
|
+
if not match:
|
103
|
+
session.error(f"Could not parse version number from '{version_str}'")
|
104
|
+
base_version = match.group(1)
|
105
|
+
|
106
|
+
if float(base_version) < LATEXMK_VERSION_MIN:
|
107
|
+
message = f"latexmk version {version_str} is outdated. Please run 'brew upgrade mactex' to upgrade."
|
108
|
+
raise ValueError(message) # noqa: TRY301
|
109
|
+
session.log(f"latexmk version {version_str} is sufficient")
|
110
|
+
session.run("make", "-C", "docs", "latexpdf", external=True)
|
111
|
+
|
112
|
+
except CommandFailed as e:
|
113
|
+
session.error(f"latexmk is not installed or not in PATH: {e}. Please run 'brew install mactex' to install")
|
114
|
+
except (ValueError, AttributeError) as e:
|
115
|
+
session.error(f"Failed to parse latexmk version information: {e}")
|
81
116
|
|
82
117
|
|
83
118
|
@nox.session(python=["3.13"])
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template-example"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.4"
|
4
4
|
description = "🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template)."
|
5
5
|
readme = "README.md"
|
6
6
|
authors = [
|
@@ -242,7 +242,7 @@ source = ["src/"]
|
|
242
242
|
|
243
243
|
|
244
244
|
[tool.bumpversion]
|
245
|
-
current_version = "0.2.
|
245
|
+
current_version = "0.2.4"
|
246
246
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
247
247
|
serialize = ["{major}.{minor}.{patch}"]
|
248
248
|
search = "{current_version}"
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/sonar-project.properties
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template-example
|
2
2
|
sonar.organization=helmut-hoffer-von-ankershoffen
|
3
|
-
sonar.projectVersion=0.2.
|
3
|
+
sonar.projectVersion=0.2.4
|
4
4
|
sonar.projectDescription=🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template).
|
5
5
|
sonar.links.homepage=https://oe-python-template-example.readthedocs.io/en/latest/
|
6
6
|
sonar.links.scm=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example
|
@@ -1 +0,0 @@
|
|
1
|
-
0.2.2
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Traceback (most recent call last):
|
2
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/bin/oe-python-template-example", line 4, in <module>
|
3
|
-
from oe_python_template_example.cli import cli
|
4
|
-
File "/Users/helmut/Code/oe-python-template-example/src/oe_python_template_example/cli.py", line 13, in <module>
|
5
|
-
from oe_python_template_example.api import api_v1, api_v2
|
6
|
-
File "/Users/helmut/Code/oe-python-template-example/src/oe_python_template_example/api.py", line 16, in <module>
|
7
|
-
from fastapi import Depends, FastAPI, Response, status
|
8
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/__init__.py", line 7, in <module>
|
9
|
-
from .applications import FastAPI as FastAPI
|
10
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/applications.py", line 16, in <module>
|
11
|
-
from fastapi import routing
|
12
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/routing.py", line 34, in <module>
|
13
|
-
from fastapi.dependencies.models import Dependant
|
14
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/dependencies/models.py", line 5, in <module>
|
15
|
-
from fastapi.security.base import SecurityBase
|
16
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/security/__init__.py", line 1, in <module>
|
17
|
-
from .api_key import APIKeyCookie as APIKeyCookie
|
18
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/fastapi/security/api_key.py", line 6, in <module>
|
19
|
-
from starlette.requests import Request
|
20
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/starlette/requests.py", line 12, in <module>
|
21
|
-
from starlette.formparsers import FormParser, MultiPartException, MultiPartParser
|
22
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/starlette/formparsers.py", line 17, in <module>
|
23
|
-
import python_multipart as multipart
|
24
|
-
File "/Users/helmut/Code/oe-python-template-example/.nox/docs-3-13/lib/python3.13/site-packages/python_multipart/__init__.py", line 7, in <module>
|
25
|
-
from .multipart import (
|
26
|
-
...<7 lines>...
|
27
|
-
)
|
28
|
-
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
|
29
|
-
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
|
30
|
-
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
|
31
|
-
File "<frozen importlib._bootstrap_external>", line 1022, in exec_module
|
32
|
-
File "<frozen importlib._bootstrap_external>", line 1155, in get_code
|
33
|
-
File "<frozen importlib._bootstrap_external>", line 784, in _compile_bytecode
|
34
|
-
KeyboardInterrupt
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/Dockerfile
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.devcontainer/onCreateCommand
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.github/dependabot.yml
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.pre-commit-config.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/.vscode/extensions.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_footer.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/partials/README_main.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/_static/.keep
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/code-style.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/contributing.rst
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/reference.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/release-notes.rst
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/docs/source/security.rst
RENAMED
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/examples/notebook.ipynb
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/CHANGELOG.md
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/LICENSE-APACHE
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/LICENSE-MIT
RENAMED
File without changes
|
{oe_python_template_example-0.2.2 → oe_python_template_example-0.2.4}/git-cliff-2.7.0/README.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|