page-validation 0.0.1__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,30 @@
1
+ name: Check Code Formatting
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ check-formatting:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout repository
15
+ uses: actions/checkout@v4
16
+ with:
17
+ persist-credentials: false
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ enable-cache: true
23
+
24
+ - name: Install the project
25
+ run: uv sync --all-groups
26
+
27
+ - name: Run Ruff formatter and linter
28
+ run: |
29
+ uv run ruff format --check .
30
+ uv run ruff check
@@ -0,0 +1,212 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ linux:
13
+ name: Linux ${{ matrix.target }}
14
+ runs-on: ubuntu-22.04
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ target:
19
+ - x86_64
20
+ - x86
21
+ - aarch64
22
+ - armv7
23
+ - s390x
24
+ - ppc64le
25
+
26
+ steps:
27
+ - uses: actions/checkout@v6
28
+
29
+ - uses: actions/setup-python@v6
30
+ with:
31
+ python-version: "3.x"
32
+
33
+ - name: Build wheels
34
+ uses: PyO3/maturin-action@v1
35
+ with:
36
+ target: ${{ matrix.target }}
37
+ args: --release --out dist --find-interpreter
38
+ manylinux: auto
39
+ sccache: false
40
+
41
+ - name: Upload wheels
42
+ uses: actions/upload-artifact@v6
43
+ with:
44
+ name: wheels-linux-${{ matrix.target }}
45
+ path: dist/*
46
+ if-no-files-found: error
47
+
48
+ musllinux:
49
+ name: Musllinux ${{ matrix.target }}
50
+ runs-on: ubuntu-22.04
51
+ strategy:
52
+ fail-fast: false
53
+ matrix:
54
+ target:
55
+ - x86_64
56
+ - x86
57
+ - aarch64
58
+ - armv7
59
+
60
+ steps:
61
+ - uses: actions/checkout@v6
62
+
63
+ - uses: actions/setup-python@v6
64
+ with:
65
+ python-version: "3.x"
66
+
67
+ - name: Build wheels
68
+ uses: PyO3/maturin-action@v1
69
+ with:
70
+ target: ${{ matrix.target }}
71
+ args: --release --out dist --find-interpreter
72
+ manylinux: musllinux_1_2
73
+ sccache: false
74
+
75
+ - name: Upload wheels
76
+ uses: actions/upload-artifact@v6
77
+ with:
78
+ name: wheels-musllinux-${{ matrix.target }}
79
+ path: dist/*
80
+ if-no-files-found: error
81
+
82
+ windows:
83
+ name: Windows ${{ matrix.target }}
84
+ runs-on: ${{ matrix.runner }}
85
+ strategy:
86
+ fail-fast: false
87
+ matrix:
88
+ include:
89
+ - runner: windows-latest
90
+ target: x64
91
+ python-architecture: x64
92
+ - runner: windows-latest
93
+ target: x86
94
+ python-architecture: x86
95
+ - runner: windows-11-arm
96
+ target: aarch64
97
+ python-architecture: arm64
98
+
99
+ steps:
100
+ - uses: actions/checkout@v6
101
+
102
+ - uses: actions/setup-python@v6
103
+ with:
104
+ python-version: "3.13"
105
+ architecture: ${{ matrix.python-architecture }}
106
+
107
+ - name: Build wheels
108
+ uses: PyO3/maturin-action@v1
109
+ with:
110
+ target: ${{ matrix.target }}
111
+ args: --release --out dist --find-interpreter
112
+ sccache: false
113
+
114
+ - name: Upload wheels
115
+ uses: actions/upload-artifact@v6
116
+ with:
117
+ name: wheels-windows-${{ matrix.target }}
118
+ path: dist/*
119
+ if-no-files-found: error
120
+
121
+ macos:
122
+ name: macOS ${{ matrix.target }}
123
+ runs-on: ${{ matrix.runner }}
124
+ strategy:
125
+ fail-fast: false
126
+ matrix:
127
+ include:
128
+ - runner: macos-15-intel
129
+ target: x86_64
130
+ - runner: macos-latest
131
+ target: aarch64
132
+
133
+ steps:
134
+ - uses: actions/checkout@v6
135
+
136
+ - uses: actions/setup-python@v6
137
+ with:
138
+ python-version: "3.x"
139
+
140
+ - name: Build wheels
141
+ uses: PyO3/maturin-action@v1
142
+ with:
143
+ target: ${{ matrix.target }}
144
+ args: --release --out dist --find-interpreter
145
+ sccache: false
146
+
147
+ - name: Upload wheels
148
+ uses: actions/upload-artifact@v6
149
+ with:
150
+ name: wheels-macos-${{ matrix.target }}
151
+ path: dist/*
152
+ if-no-files-found: error
153
+
154
+ sdist:
155
+ name: Source distribution
156
+ runs-on: ubuntu-latest
157
+
158
+ steps:
159
+ - uses: actions/checkout@v6
160
+
161
+ - name: Build source distribution
162
+ uses: PyO3/maturin-action@v1
163
+ with:
164
+ command: sdist
165
+ args: --out dist
166
+
167
+ - name: Upload source distribution
168
+ uses: actions/upload-artifact@v6
169
+ with:
170
+ name: wheels-sdist
171
+ path: dist/*
172
+ if-no-files-found: error
173
+
174
+ publish:
175
+ name: Publish to PyPI
176
+ runs-on: ubuntu-latest
177
+ needs:
178
+ - linux
179
+ - musllinux
180
+ - windows
181
+ - macos
182
+ - sdist
183
+
184
+ permissions:
185
+ contents: read
186
+ id-token: write
187
+ attestations: write
188
+
189
+ environment:
190
+ name: pypi
191
+
192
+ steps:
193
+ - name: Download distributions
194
+ uses: actions/download-artifact@v7
195
+ with:
196
+ pattern: wheels-*
197
+ path: dist
198
+ merge-multiple: true
199
+
200
+ - name: List distributions
201
+ run: ls -la dist
202
+
203
+ - name: Attest distributions
204
+ uses: actions/attest@v4
205
+ with:
206
+ subject-path: dist/*
207
+
208
+ - name: Install uv
209
+ uses: astral-sh/setup-uv@v7
210
+
211
+ - name: Publish distributions
212
+ run: uv publish --trusted-publishing always dist/*
@@ -0,0 +1,180 @@
1
+ name: Maturin build
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - "*"
9
+ pull_request:
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ linux:
17
+ runs-on: ${{ matrix.platform.runner }}
18
+ strategy:
19
+ matrix:
20
+ platform:
21
+ - runner: ubuntu-22.04
22
+ target: x86_64
23
+ - runner: ubuntu-22.04
24
+ target: x86
25
+ - runner: ubuntu-22.04
26
+ target: aarch64
27
+ - runner: ubuntu-22.04
28
+ target: armv7
29
+ - runner: ubuntu-22.04
30
+ target: s390x
31
+ - runner: ubuntu-22.04
32
+ target: ppc64le
33
+ steps:
34
+ - uses: actions/checkout@v6
35
+ - uses: actions/setup-python@v6
36
+ with:
37
+ python-version: "3.x"
38
+ - name: Build wheels
39
+ uses: PyO3/maturin-action@v1
40
+ with:
41
+ target: ${{ matrix.platform.target }}
42
+ args: --release --out dist --find-interpreter
43
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
44
+ manylinux: auto
45
+ - name: Upload wheels
46
+ uses: actions/upload-artifact@v6
47
+ with:
48
+ name: wheels-linux-${{ matrix.platform.target }}
49
+ path: dist
50
+
51
+ musllinux:
52
+ runs-on: ${{ matrix.platform.runner }}
53
+ strategy:
54
+ matrix:
55
+ platform:
56
+ - runner: ubuntu-22.04
57
+ target: x86_64
58
+ - runner: ubuntu-22.04
59
+ target: x86
60
+ - runner: ubuntu-22.04
61
+ target: aarch64
62
+ - runner: ubuntu-22.04
63
+ target: armv7
64
+ steps:
65
+ - uses: actions/checkout@v6
66
+ - uses: actions/setup-python@v6
67
+ with:
68
+ python-version: "3.x"
69
+ - name: Build wheels
70
+ uses: PyO3/maturin-action@v1
71
+ with:
72
+ target: ${{ matrix.platform.target }}
73
+ args: --release --out dist --find-interpreter
74
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
75
+ manylinux: musllinux_1_2
76
+ - name: Upload wheels
77
+ uses: actions/upload-artifact@v6
78
+ with:
79
+ name: wheels-musllinux-${{ matrix.platform.target }}
80
+ path: dist
81
+
82
+ windows:
83
+ runs-on: ${{ matrix.platform.runner }}
84
+ strategy:
85
+ matrix:
86
+ platform:
87
+ - runner: windows-latest
88
+ target: x64
89
+ python_arch: x64
90
+ - runner: windows-latest
91
+ target: x86
92
+ python_arch: x86
93
+ - runner: windows-11-arm
94
+ target: aarch64
95
+ python_arch: arm64
96
+ steps:
97
+ - uses: actions/checkout@v6
98
+ - uses: actions/setup-python@v6
99
+ with:
100
+ python-version: "3.13"
101
+ architecture: ${{ matrix.platform.python_arch }}
102
+ - name: Build wheels
103
+ uses: PyO3/maturin-action@v1
104
+ with:
105
+ target: ${{ matrix.platform.target }}
106
+ args: --release --out dist --find-interpreter
107
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
108
+ - name: Upload wheels
109
+ uses: actions/upload-artifact@v6
110
+ with:
111
+ name: wheels-windows-${{ matrix.platform.target }}
112
+ path: dist
113
+
114
+ macos:
115
+ runs-on: ${{ matrix.platform.runner }}
116
+ strategy:
117
+ matrix:
118
+ platform:
119
+ - runner: macos-15-intel
120
+ target: x86_64
121
+ - runner: macos-latest
122
+ target: aarch64
123
+ steps:
124
+ - uses: actions/checkout@v6
125
+ - uses: actions/setup-python@v6
126
+ with:
127
+ python-version: "3.x"
128
+ - name: Build wheels
129
+ uses: PyO3/maturin-action@v1
130
+ with:
131
+ target: ${{ matrix.platform.target }}
132
+ args: --release --out dist --find-interpreter
133
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
134
+ - name: Upload wheels
135
+ uses: actions/upload-artifact@v6
136
+ with:
137
+ name: wheels-macos-${{ matrix.platform.target }}
138
+ path: dist
139
+
140
+ sdist:
141
+ runs-on: ubuntu-latest
142
+ steps:
143
+ - uses: actions/checkout@v6
144
+ - name: Build sdist
145
+ uses: PyO3/maturin-action@v1
146
+ with:
147
+ command: sdist
148
+ args: --out dist
149
+ - name: Upload sdist
150
+ uses: actions/upload-artifact@v6
151
+ with:
152
+ name: wheels-sdist
153
+ path: dist
154
+
155
+ release:
156
+ name: Release
157
+ runs-on: ubuntu-latest
158
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
159
+ needs: [linux, musllinux, windows, macos, sdist]
160
+ permissions:
161
+ # Use to sign the release artifacts
162
+ id-token: write
163
+ # Used to upload release artifacts
164
+ contents: write
165
+ # Used to generate artifact attestation
166
+ attestations: write
167
+ steps:
168
+ - uses: actions/download-artifact@v7
169
+ - name: Generate artifact attestation
170
+ uses: actions/attest@v4
171
+ with:
172
+ subject-path: "wheels-*/*"
173
+ - name: Install uv
174
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
175
+ uses: astral-sh/setup-uv@v7
176
+ - name: Publish to PyPI
177
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
178
+ run: uv publish 'wheels-*/*'
179
+ env:
180
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,30 @@
1
+ name: Unit tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ python-version:
14
+ - "3.10"
15
+ - "3.14"
16
+ env:
17
+ UV_PYTHON: ${{ matrix.python-version }}
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v5
23
+ with:
24
+ enable-cache: true
25
+
26
+ - name: Install the project
27
+ run: uv sync --all-groups
28
+
29
+ - name: Run tests
30
+ run: uv run pytest
@@ -0,0 +1,31 @@
1
+ name: Check Static Typing
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ check-formatting:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout repository
15
+ uses: actions/checkout@v4
16
+ with:
17
+ persist-credentials: false
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ enable-cache: true
23
+
24
+ - name: Install the project
25
+ run: uv sync --all-groups
26
+
27
+ - name: ty
28
+ run: uv run ty check
29
+
30
+ - name: pyrefly
31
+ run: uv run pyrefly check
@@ -0,0 +1,89 @@
1
+ /target
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ .pytest_cache/
6
+ *.py[cod]
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ .venv/
14
+ env/
15
+ bin/
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ include/
26
+ man/
27
+ venv/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # Installer logs
33
+ pip-log.txt
34
+ pip-delete-this-directory.txt
35
+ pip-selfcheck.json
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+
45
+ # Translations
46
+ *.mo
47
+
48
+ # Mr Developer
49
+ .mr.developer.cfg
50
+ .project
51
+ .pydevproject
52
+
53
+ # Rope
54
+ .ropeproject
55
+
56
+ # Django stuff:
57
+ *.log
58
+ *.pot
59
+
60
+ .DS_Store
61
+
62
+ # Sphinx documentation
63
+ docs/_build/
64
+
65
+ # PyCharm
66
+ .idea/
67
+
68
+ # VSCode
69
+ .vscode/
70
+
71
+ # Pyenv
72
+ .python-version
73
+
74
+
75
+ .venv/
76
+ venv/
77
+ .env/
78
+ env/
79
+
80
+ .vscode/
81
+
82
+ .DS_Store
83
+
84
+ *cache*
85
+
86
+ *.zip
87
+ sandbox.*
88
+ release.sh
89
+ *.pdf