pyunderskrift 0.1.0__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.
@@ -0,0 +1,251 @@
1
+ name: ci
2
+ on:
3
+ pull_request:
4
+ paths:
5
+ - 'src/**'
6
+ - 'tests/**'
7
+ - 'Cargo.lock'
8
+ - 'Cargo.toml'
9
+ - 'pyproject.toml'
10
+ workflow_dispatch:
11
+ env:
12
+ FORCE_COLOR: "1"
13
+ UV_LINK_MODE: "copy"
14
+ jobs:
15
+
16
+ manylinux_x86_64:
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 15
19
+ steps:
20
+ - uses: actions/checkout@v5
21
+
22
+ - name: Pull the manylinux image
23
+ run: docker pull quay.io/pypa/manylinux_2_28_x86_64
24
+
25
+ - name: Build the wheel inside manylinux container
26
+ run: |
27
+ docker run --rm \
28
+ -v ${{ github.workspace }}:/io \
29
+ quay.io/pypa/manylinux_2_28_x86_64 \
30
+ /io/build-wheels.sh
31
+
32
+ - name: Install UV and set up test environment
33
+ run: |
34
+ curl -LsSf https://astral.sh/uv/install.sh | sh
35
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
36
+
37
+ - name: Install wheel and test dependencies
38
+ run: |
39
+ uv venv
40
+ source .venv/bin/activate
41
+ uv pip install pytest
42
+ # Install exactly the abi3 wheel (not any stale cp3XX wheels)
43
+ uv pip install dist/pyunderskrift-*-abi3-*.whl
44
+
45
+ - name: Generate test fixtures
46
+ run: |
47
+ cd tests/fixtures
48
+ bash ../../gen-test-fixtures.sh
49
+
50
+ - name: Run tests
51
+ run: |
52
+ source .venv/bin/activate
53
+ pytest tests/ -vvv
54
+
55
+ - name: Store wheels
56
+ uses: actions/upload-artifact@v4
57
+ with:
58
+ name: pyunderskrift_manylinux_x86_64
59
+ path: dist/
60
+ overwrite: true
61
+ retention-days: 1
62
+ if-no-files-found: "error"
63
+ compression-level: 0
64
+
65
+ #manylinux_aarch64:
66
+ #runs-on: ubuntu-24-arm
67
+ #timeout-minutes: 15
68
+ #steps:
69
+ #- uses: actions/checkout@v5
70
+
71
+ #- name: Pull the manylinux image
72
+ #run: docker pull quay.io/pypa/manylinux_2_28_aarch64
73
+
74
+ #- name: Build the wheel inside manylinux container
75
+ #run: |
76
+ #docker run --rm \
77
+ #-v ${{ github.workspace }}:/io \
78
+ #quay.io/pypa/manylinux_2_28_aarch64 \
79
+ #/io/build-wheels.sh
80
+
81
+ #- name: Install UV
82
+ #run: |
83
+ #curl -LsSf https://astral.sh/uv/install.sh | sh
84
+ #uv venv
85
+ #source .venv/bin/activate
86
+ #uv pip install pytest
87
+ #uv pip install ./dist/pyunderskrift-*.whl
88
+
89
+ #- name: Generate test fixtures
90
+ #run: |
91
+ #cd tests/fixtures
92
+ #bash ../../gen-test-fixtures.sh
93
+
94
+ #- name: Run tests
95
+ #run: |
96
+ #source .venv/bin/activate
97
+ #pytest tests/ -vvv
98
+
99
+ #- name: Store wheels
100
+ #uses: actions/upload-artifact@v4
101
+ #with:
102
+ #name: pyunderskrift_manylinux_aarch64
103
+ #path: dist/
104
+ #overwrite: true
105
+ #retention-days: 1
106
+ #if-no-files-found: "error"
107
+ #compression-level: 0
108
+
109
+ #macos_aarch64:
110
+ #runs-on: macos-15
111
+ #timeout-minutes: 15
112
+ #steps:
113
+ #- uses: actions/checkout@v5
114
+
115
+ #- uses: actions/setup-python@v6
116
+ #with:
117
+ #allow-prereleases: true
118
+ #python-version: "3.14"
119
+
120
+ #- uses: dtolnay/rust-toolchain@stable
121
+ #with:
122
+ #targets: "aarch64-apple-darwin"
123
+
124
+ #- name: Build environment
125
+ #run: |
126
+ #curl -LsSf https://astral.sh/uv/install.sh | sh
127
+ #uv venv --python python3.14
128
+ #source .venv/bin/activate
129
+ #uv pip install --upgrade "maturin>=1,<2" pytest
130
+
131
+ #- name: Build wheel
132
+ #run: |
133
+ #source .venv/bin/activate
134
+ #MACOSX_DEPLOYMENT_TARGET="11.0" \
135
+ #maturin build \
136
+ #--release \
137
+ #--strip \
138
+ #--interpreter python3.14 \
139
+ #--target=aarch64-apple-darwin
140
+
141
+ #- name: Generate test fixtures
142
+ #run: |
143
+ #cd tests/fixtures
144
+ #bash ../../gen-test-fixtures.sh
145
+
146
+ #- name: Run tests
147
+ #run: |
148
+ #source .venv/bin/activate
149
+ #uv pip install target/wheels/pyunderskrift-*.whl
150
+ #pytest tests/ -vvv
151
+
152
+ #- name: Store wheels
153
+ #uses: actions/upload-artifact@v4
154
+ #with:
155
+ #name: pyunderskrift_macos_aarch64
156
+ #path: target/wheels
157
+ #overwrite: true
158
+ #retention-days: 1
159
+ #if-no-files-found: "error"
160
+ #compression-level: 0
161
+
162
+ #windows_amd64:
163
+ #runs-on: windows-2025
164
+ #timeout-minutes: 15
165
+ #steps:
166
+ #- uses: actions/checkout@v5
167
+
168
+ #- uses: actions/setup-python@v6
169
+ #with:
170
+ #allow-prereleases: true
171
+ #python-version: "3.14"
172
+ #architecture: "x64"
173
+
174
+ #- uses: dtolnay/rust-toolchain@stable
175
+ #with:
176
+ #targets: "x86_64-pc-windows-msvc"
177
+
178
+ #- name: Build environment
179
+ #run: |
180
+ #python.exe -m pip install --upgrade pip "maturin>=1,<2" pytest
181
+
182
+ #- name: Build wheel
183
+ #run: |
184
+ #maturin.exe build --release --strip --target=x86_64-pc-windows-msvc
185
+
186
+ #- name: Run tests
187
+ #shell: pwsh
188
+ #run: |
189
+ #python -m venv venv
190
+ #.\venv\Scripts\Activate.ps1
191
+ #pip install pytest
192
+ #pip install pyunderskrift --no-index --find-links target\wheels
193
+ #pytest tests/ -vvv
194
+
195
+ #- name: Store wheels
196
+ #uses: actions/upload-artifact@v4
197
+ #with:
198
+ #name: pyunderskrift_windows_amd64
199
+ #path: target\wheels
200
+ #overwrite: true
201
+ #retention-days: 1
202
+ #if-no-files-found: "error"
203
+ #compression-level: 0
204
+
205
+ #windows_aarch64:
206
+ #runs-on: windows-11-arm
207
+ #timeout-minutes: 15
208
+ #env:
209
+ #TARGET: "aarch64-pc-windows-msvc"
210
+ #steps:
211
+ #- uses: actions/checkout@v5
212
+
213
+ #- uses: actions/setup-python@v6
214
+ #with:
215
+ #allow-prereleases: true
216
+ #python-version: "3.14"
217
+ #architecture: "arm64"
218
+
219
+ #- shell: pwsh
220
+ #run: |
221
+ #Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/$env:TARGET/rustup-init.exe" -OutFile rustup-init.exe
222
+ #.\rustup-init.exe --default-toolchain "stable-$env:TARGET" --profile minimal --component rust-src -y
223
+ #"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
224
+ #"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
225
+
226
+ #- name: Build environment
227
+ #run: |
228
+ #python.exe -m pip install --upgrade pip "maturin>=1,<2" pytest
229
+
230
+ #- name: Build wheel
231
+ #run: |
232
+ #maturin.exe build --release --strip --target="$env:TARGET"
233
+
234
+ #- name: Run tests
235
+ #shell: pwsh
236
+ #run: |
237
+ #python -m venv venv
238
+ #.\venv\Scripts\Activate.ps1
239
+ #pip install pytest
240
+ #pip install pyunderskrift --no-index --find-links target\wheels
241
+ #pytest tests/ -vvv
242
+
243
+ #- name: Store wheels
244
+ #uses: actions/upload-artifact@v4
245
+ #with:
246
+ #name: pyunderskrift_windows_aarch64
247
+ #path: target\wheels
248
+ #overwrite: true
249
+ #retention-days: 1
250
+ #if-no-files-found: "error"
251
+ #compression-level: 0
@@ -0,0 +1,263 @@
1
+ name: release
2
+ on:
3
+ push:
4
+ tags:
5
+ - 'v*'
6
+ workflow_dispatch:
7
+ env:
8
+ FORCE_COLOR: "1"
9
+ UV_LINK_MODE: "copy"
10
+ jobs:
11
+
12
+ manylinux_x86_64:
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 15
15
+ steps:
16
+ - uses: actions/checkout@v5
17
+
18
+ - name: Pull the manylinux image
19
+ run: docker pull quay.io/pypa/manylinux_2_28_x86_64
20
+
21
+ - name: Build the wheel inside manylinux container
22
+ run: |
23
+ docker run --rm \
24
+ -v ${{ github.workspace }}:/io \
25
+ quay.io/pypa/manylinux_2_28_x86_64 \
26
+ /io/build-wheels.sh
27
+
28
+ - name: Install UV and set up test environment
29
+ run: |
30
+ curl -LsSf https://astral.sh/uv/install.sh | sh
31
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
32
+
33
+ - name: Install wheel and test dependencies
34
+ run: |
35
+ uv venv
36
+ source .venv/bin/activate
37
+ uv pip install pytest
38
+ # Install exactly the abi3 wheel (not any stale cp3XX wheels)
39
+ uv pip install dist/pyunderskrift-*-abi3-*.whl
40
+
41
+ - name: Generate test fixtures
42
+ run: |
43
+ cd tests/fixtures
44
+ bash ../../gen-test-fixtures.sh
45
+
46
+ - name: Run tests
47
+ run: |
48
+ source .venv/bin/activate
49
+ pytest tests/ -vvv
50
+
51
+ - name: Store wheels
52
+ uses: actions/upload-artifact@v4
53
+ with:
54
+ name: pyunderskrift_manylinux_x86_64
55
+ path: dist/
56
+ overwrite: true
57
+ retention-days: 3
58
+ if-no-files-found: "error"
59
+ compression-level: 0
60
+
61
+ #manylinux_aarch64:
62
+ #runs-on: ubuntu-24-arm
63
+ #timeout-minutes: 15
64
+ #steps:
65
+ #- uses: actions/checkout@v5
66
+
67
+ #- name: Pull the manylinux image
68
+ #run: docker pull quay.io/pypa/manylinux_2_28_aarch64
69
+
70
+ #- name: Build the wheel inside manylinux container
71
+ #run: |
72
+ #docker run --rm \
73
+ #-v ${{ github.workspace }}:/io \
74
+ #quay.io/pypa/manylinux_2_28_aarch64 \
75
+ #/io/build-wheels.sh
76
+
77
+ #- name: Install UV and test
78
+ #run: |
79
+ #curl -LsSf https://astral.sh/uv/install.sh | sh
80
+ #uv venv
81
+ #source .venv/bin/activate
82
+ #uv pip install pytest
83
+ #uv pip install ./dist/pyunderskrift-*.whl
84
+
85
+ #- name: Generate test fixtures
86
+ #run: |
87
+ #cd tests/fixtures
88
+ #bash ../../gen-test-fixtures.sh
89
+
90
+ #- name: Run tests
91
+ #run: |
92
+ #source .venv/bin/activate
93
+ #pytest tests/ -vvv
94
+
95
+ #- name: Store wheels
96
+ #uses: actions/upload-artifact@v4
97
+ #with:
98
+ #name: pyunderskrift_manylinux_aarch64
99
+ #path: dist/
100
+ #overwrite: true
101
+ #retention-days: 3
102
+ #if-no-files-found: "error"
103
+ #compression-level: 0
104
+
105
+ #macos_aarch64:
106
+ #runs-on: macos-15
107
+ #timeout-minutes: 15
108
+ #steps:
109
+ #- uses: actions/checkout@v5
110
+
111
+ #- uses: actions/setup-python@v6
112
+ #with:
113
+ #allow-prereleases: true
114
+ #python-version: "3.14"
115
+
116
+ #- uses: dtolnay/rust-toolchain@stable
117
+ #with:
118
+ #targets: "aarch64-apple-darwin"
119
+
120
+ #- name: Build environment
121
+ #run: |
122
+ #curl -LsSf https://astral.sh/uv/install.sh | sh
123
+ #uv venv --python python3.14
124
+ #source .venv/bin/activate
125
+ #uv pip install --upgrade "maturin>=1,<2" pytest
126
+
127
+ #- name: Build wheel
128
+ #run: |
129
+ #source .venv/bin/activate
130
+ #MACOSX_DEPLOYMENT_TARGET="11.0" \
131
+ #maturin build \
132
+ #--release \
133
+ #--strip \
134
+ #--interpreter python3.14 \
135
+ #--target=aarch64-apple-darwin
136
+
137
+ #- name: Generate test fixtures
138
+ #run: |
139
+ #cd tests/fixtures
140
+ #bash ../../gen-test-fixtures.sh
141
+
142
+ #- name: Run tests
143
+ #run: |
144
+ #source .venv/bin/activate
145
+ #uv pip install target/wheels/pyunderskrift-*.whl
146
+ #pytest tests/ -vvv
147
+
148
+ #- name: Store wheels
149
+ #uses: actions/upload-artifact@v4
150
+ #with:
151
+ #name: pyunderskrift_macos_aarch64
152
+ #path: target/wheels
153
+ #overwrite: true
154
+ #retention-days: 3
155
+ #if-no-files-found: "error"
156
+ #compression-level: 0
157
+
158
+ #windows_amd64:
159
+ #runs-on: windows-2025
160
+ #timeout-minutes: 15
161
+ #steps:
162
+ #- uses: actions/checkout@v5
163
+
164
+ #- uses: actions/setup-python@v6
165
+ #with:
166
+ #allow-prereleases: true
167
+ #python-version: "3.14"
168
+ #architecture: "x64"
169
+
170
+ #- uses: dtolnay/rust-toolchain@stable
171
+ #with:
172
+ #targets: "x86_64-pc-windows-msvc"
173
+
174
+ #- name: Build wheel
175
+ #run: |
176
+ #python.exe -m pip install --upgrade pip "maturin>=1,<2"
177
+ #maturin.exe build --release --strip --target=x86_64-pc-windows-msvc
178
+
179
+ #- name: Run tests
180
+ #shell: pwsh
181
+ #run: |
182
+ #python -m venv venv
183
+ #.\venv\Scripts\Activate.ps1
184
+ #pip install pytest
185
+ #pip install pyunderskrift --no-index --find-links target\wheels
186
+ #pytest tests/ -vvv
187
+
188
+ #- name: Store wheels
189
+ #uses: actions/upload-artifact@v4
190
+ #with:
191
+ #name: pyunderskrift_windows_amd64
192
+ #path: target\wheels
193
+ #overwrite: true
194
+ #retention-days: 3
195
+ #if-no-files-found: "error"
196
+ #compression-level: 0
197
+
198
+ #windows_aarch64:
199
+ #runs-on: windows-11-arm
200
+ #timeout-minutes: 15
201
+ #env:
202
+ #TARGET: "aarch64-pc-windows-msvc"
203
+ #steps:
204
+ #- uses: actions/checkout@v5
205
+
206
+ #- uses: actions/setup-python@v6
207
+ #with:
208
+ #allow-prereleases: true
209
+ #python-version: "3.14"
210
+ #architecture: "arm64"
211
+
212
+ #- shell: pwsh
213
+ #run: |
214
+ #Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/$env:TARGET/rustup-init.exe" -OutFile rustup-init.exe
215
+ #.\rustup-init.exe --default-toolchain "stable-$env:TARGET" --profile minimal --component rust-src -y
216
+ #"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
217
+ #"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
218
+
219
+ #- name: Build wheel
220
+ #run: |
221
+ #python.exe -m pip install --upgrade pip "maturin>=1,<2"
222
+ #maturin.exe build --release --strip --target="$env:TARGET"
223
+
224
+ #- name: Run tests
225
+ #shell: pwsh
226
+ #run: |
227
+ #python -m venv venv
228
+ #.\venv\Scripts\Activate.ps1
229
+ #pip install pytest
230
+ #pip install pyunderskrift --no-index --find-links target\wheels
231
+ #pytest tests/ -vvv
232
+
233
+ #- name: Store wheels
234
+ #uses: actions/upload-artifact@v4
235
+ #with:
236
+ #name: pyunderskrift_windows_aarch64
237
+ #path: target\wheels
238
+ #overwrite: true
239
+ #retention-days: 3
240
+ #if-no-files-found: "error"
241
+ #compression-level: 0
242
+
243
+ publish:
244
+ runs-on: ubuntu-latest
245
+ needs: [manylinux_x86_64]
246
+ environment: pypi
247
+ permissions:
248
+ id-token: write
249
+ steps:
250
+ - name: Download all artifacts
251
+ uses: actions/download-artifact@v4
252
+ with:
253
+ path: dist
254
+ pattern: pyunderskrift_*
255
+ merge-multiple: true
256
+
257
+ - name: List artifacts
258
+ run: ls -lR dist/
259
+
260
+ - name: Publish to PyPI
261
+ uses: pypa/gh-action-pypi-publish@release/v1
262
+ with:
263
+ packages-dir: dist/
@@ -0,0 +1,61 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions / native modules
7
+ *.so
8
+ *.dylib
9
+ *.pyd
10
+
11
+ # Distribution / packaging
12
+ build/
13
+ dist/
14
+ *.egg-info/
15
+ *.egg
16
+ *.whl
17
+ MANIFEST
18
+
19
+ # Rust build artifacts
20
+ target/
21
+
22
+ # Virtual environments
23
+ .venv/
24
+ venv/
25
+ env/
26
+
27
+ # Unit test / coverage reports
28
+ htmlcov/
29
+ .tox/
30
+ .nox/
31
+ .coverage
32
+ .coverage.*
33
+ .cache
34
+ .pytest_cache/
35
+ coverage.xml
36
+ *.cover
37
+
38
+ # Environments
39
+ .env
40
+ .envrc
41
+
42
+ # mypy
43
+ .mypy_cache/
44
+
45
+ # Ruff
46
+ .ruff_cache/
47
+
48
+ # IDE
49
+ .idea/
50
+ .vscode/
51
+
52
+ # PyPI configuration
53
+ .pypirc
54
+
55
+ # Private keys and PKCS#12 bundles — NEVER commit these
56
+ tests/fixtures/ca_key.pem
57
+ tests/fixtures/intermediate_ca_key.pem
58
+ tests/fixtures/signer_key.pem
59
+ tests/fixtures/signer.p12
60
+ tests/fixtures/ca_cert.srl
61
+ tests/fixtures/intermediate_ca_cert.srl