parquet-engine 0.1.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,235 @@
1
+ # Originally generated by maturin v1.13.3 (maturin generate-ci github --pytest),
2
+ # then adapted by hand:
3
+ # - added `workflow_call` so release.yml can reuse this build matrix,
4
+ # - dropped the tag trigger and the token-based `release` job (publishing now
5
+ # lives in release.yml via PyPI Trusted Publishing).
6
+ # Re-running `maturin generate-ci` will overwrite these edits — re-apply them.
7
+ name: CI
8
+
9
+ on:
10
+ push:
11
+ branches:
12
+ - main
13
+ - master
14
+ pull_request:
15
+ workflow_dispatch:
16
+ workflow_call:
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ linux:
23
+ runs-on: ${{ matrix.platform.runner }}
24
+ strategy:
25
+ matrix:
26
+ platform:
27
+ - runner: ubuntu-22.04
28
+ target: x86_64
29
+ - runner: ubuntu-22.04
30
+ target: x86
31
+ - runner: ubuntu-22.04
32
+ target: aarch64
33
+ - runner: ubuntu-22.04
34
+ target: armv7
35
+ - runner: ubuntu-22.04
36
+ target: s390x
37
+ - runner: ubuntu-22.04
38
+ target: ppc64le
39
+ steps:
40
+ - uses: actions/checkout@v6
41
+ - uses: actions/setup-python@v6
42
+ with:
43
+ python-version: "3.10"
44
+ - name: Build wheels
45
+ uses: PyO3/maturin-action@v1
46
+ with:
47
+ target: ${{ matrix.platform.target }}
48
+ args: --release --out dist
49
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
50
+ manylinux: auto
51
+ - name: Build free-threaded wheels
52
+ uses: PyO3/maturin-action@v1
53
+ with:
54
+ target: ${{ matrix.platform.target }}
55
+ args: --release --out dist -i python3.14t
56
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
57
+ manylinux: auto
58
+ - name: Upload wheels
59
+ uses: actions/upload-artifact@v6
60
+ with:
61
+ name: wheels-linux-${{ matrix.platform.target }}
62
+ path: dist
63
+ - uses: astral-sh/setup-uv@v7
64
+ if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
65
+ - name: pytest
66
+ if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
67
+ shell: bash
68
+ run: |
69
+ set -e
70
+ uv venv .venv
71
+ source .venv/bin/activate
72
+ uv pip install parquet-engine --no-index --no-deps --find-links dist --reinstall
73
+ uv pip install parquet-engine pytest
74
+ pytest
75
+
76
+ musllinux:
77
+ runs-on: ${{ matrix.platform.runner }}
78
+ strategy:
79
+ matrix:
80
+ platform:
81
+ - runner: ubuntu-22.04
82
+ target: x86_64
83
+ - runner: ubuntu-22.04
84
+ target: x86
85
+ - runner: ubuntu-22.04
86
+ target: aarch64
87
+ - runner: ubuntu-22.04
88
+ target: armv7
89
+ steps:
90
+ - uses: actions/checkout@v6
91
+ - uses: actions/setup-python@v6
92
+ with:
93
+ python-version: "3.10"
94
+ - name: Build wheels
95
+ uses: PyO3/maturin-action@v1
96
+ with:
97
+ target: ${{ matrix.platform.target }}
98
+ args: --release --out dist
99
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
100
+ manylinux: musllinux_1_2
101
+ - name: Build free-threaded wheels
102
+ uses: PyO3/maturin-action@v1
103
+ with:
104
+ target: ${{ matrix.platform.target }}
105
+ args: --release --out dist -i python3.14t
106
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
107
+ manylinux: musllinux_1_2
108
+ - name: Upload wheels
109
+ uses: actions/upload-artifact@v6
110
+ with:
111
+ name: wheels-musllinux-${{ matrix.platform.target }}
112
+ path: dist
113
+ - name: pytest
114
+ if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
115
+ run: |
116
+ set -e
117
+ docker run --rm -v ${{ github.workspace }}:/io -w /io alpine:latest sh -c '
118
+ apk add py3-pip py3-virtualenv
119
+ python3 -m virtualenv .venv
120
+ source .venv/bin/activate
121
+ pip install parquet-engine --no-index --no-deps --find-links dist --force-reinstall
122
+ pip install parquet-engine pytest
123
+ pytest
124
+ '
125
+
126
+ windows:
127
+ runs-on: ${{ matrix.platform.runner }}
128
+ strategy:
129
+ matrix:
130
+ platform:
131
+ - runner: windows-latest
132
+ target: x64
133
+ python_arch: x64
134
+ - runner: windows-latest
135
+ target: x86
136
+ python_arch: x86
137
+ - runner: windows-11-arm
138
+ target: aarch64
139
+ python_arch: arm64
140
+ steps:
141
+ - uses: actions/checkout@v6
142
+ - uses: actions/setup-python@v6
143
+ with:
144
+ python-version: "3.13"
145
+ architecture: ${{ matrix.platform.python_arch }}
146
+ - name: Build wheels
147
+ uses: PyO3/maturin-action@v1
148
+ with:
149
+ target: ${{ matrix.platform.target }}
150
+ args: --release --out dist
151
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
152
+ - uses: actions/setup-python@v6
153
+ with:
154
+ python-version: "3.14t"
155
+ architecture: ${{ matrix.platform.python_arch }}
156
+ - name: Build free-threaded wheels
157
+ uses: PyO3/maturin-action@v1
158
+ with:
159
+ target: ${{ matrix.platform.target }}
160
+ args: --release --out dist -i python3.14t
161
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
162
+ - name: Upload wheels
163
+ uses: actions/upload-artifact@v6
164
+ with:
165
+ name: wheels-windows-${{ matrix.platform.target }}
166
+ path: dist
167
+ - uses: astral-sh/setup-uv@v7
168
+ - name: pytest
169
+ shell: bash
170
+ run: |
171
+ set -e
172
+ uv venv .venv
173
+ source .venv/Scripts/activate
174
+ uv pip install parquet-engine --no-index --no-deps --find-links dist --reinstall
175
+ uv pip install parquet-engine pytest
176
+ pytest
177
+
178
+ macos:
179
+ runs-on: ${{ matrix.platform.runner }}
180
+ strategy:
181
+ matrix:
182
+ platform:
183
+ - runner: macos-15-intel
184
+ target: x86_64
185
+ - runner: macos-latest
186
+ target: aarch64
187
+ steps:
188
+ - uses: actions/checkout@v6
189
+ - uses: actions/setup-python@v6
190
+ with:
191
+ python-version: "3.10"
192
+ - name: Build wheels
193
+ uses: PyO3/maturin-action@v1
194
+ with:
195
+ target: ${{ matrix.platform.target }}
196
+ args: --release --out dist
197
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
198
+ - uses: actions/setup-python@v6
199
+ with:
200
+ python-version: "3.14t"
201
+ - name: Build free-threaded wheels
202
+ uses: PyO3/maturin-action@v1
203
+ with:
204
+ target: ${{ matrix.platform.target }}
205
+ args: --release --out dist -i python3.14t
206
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
207
+ - name: Upload wheels
208
+ uses: actions/upload-artifact@v6
209
+ with:
210
+ name: wheels-macos-${{ matrix.platform.target }}
211
+ path: dist
212
+ - uses: astral-sh/setup-uv@v7
213
+ - name: pytest
214
+ run: |
215
+ set -e
216
+ uv venv .venv
217
+ source .venv/bin/activate
218
+ uv pip install parquet-engine --no-index --no-deps --find-links dist --reinstall
219
+ uv pip install parquet-engine pytest
220
+ pytest
221
+
222
+ sdist:
223
+ runs-on: ubuntu-latest
224
+ steps:
225
+ - uses: actions/checkout@v6
226
+ - name: Build sdist
227
+ uses: PyO3/maturin-action@v1
228
+ with:
229
+ command: sdist
230
+ args: --out dist
231
+ - name: Upload sdist
232
+ uses: actions/upload-artifact@v6
233
+ with:
234
+ name: wheels-sdist
235
+ path: dist
@@ -0,0 +1,105 @@
1
+ name: Publish to PyPI & Draft Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ tag:
10
+ description: "Existing tag to publish (e.g. v0.1.0 or v0.1.0b1)"
11
+ required: true
12
+ type: string
13
+
14
+ # Minimal default for all jobs; the `build` job calls CI.yml (which requests
15
+ # `contents: read`), so the caller must grant at least that. The `publish` job
16
+ # overrides with its own elevated permissions below.
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ version-check:
22
+ runs-on: ubuntu-latest
23
+ outputs:
24
+ tag: ${{ steps.vars.outputs.tag }}
25
+ steps:
26
+ - uses: actions/checkout@v6
27
+ with:
28
+ fetch-depth: 0
29
+
30
+ - uses: actions/setup-python@v6
31
+ with:
32
+ python-version: "3.13"
33
+
34
+ - name: Resolve tag name
35
+ id: vars
36
+ shell: bash
37
+ run: |
38
+ set -euo pipefail
39
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
40
+ TAG="${{ inputs.tag }}"
41
+ else
42
+ TAG="${{ github.ref_name }}"
43
+ fi
44
+ echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
45
+
46
+ - name: Ensure tag matches package version
47
+ shell: bash
48
+ env:
49
+ TAG_NAME: ${{ steps.vars.outputs.tag }}
50
+ run: |
51
+ set -euo pipefail
52
+ PYPROJECT="$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")"
53
+ CARGO="$(python -c "import tomllib; print(tomllib.load(open('Cargo.toml','rb'))['package']['version'])")"
54
+ if [[ "${TAG_NAME}" != "v${PYPROJECT}" ]]; then
55
+ echo "::error::Tag ${TAG_NAME} does not match pyproject version v${PYPROJECT}"
56
+ exit 1
57
+ fi
58
+ if [[ "${PYPROJECT}" != "${CARGO}" ]]; then
59
+ echo "::error::pyproject version ${PYPROJECT} != Cargo.toml version ${CARGO}"
60
+ exit 1
61
+ fi
62
+ echo "Releasing ${TAG_NAME}"
63
+
64
+ # Reuse the full wheel/sdist build matrix from CI.yml (linux, musllinux,
65
+ # windows, macos, sdist) so the release publishes the same artifacts CI builds.
66
+ build:
67
+ needs: version-check
68
+ uses: ./.github/workflows/CI.yml
69
+
70
+ publish:
71
+ name: Publish to PyPI & Draft Release
72
+ needs: [version-check, build]
73
+ runs-on: ubuntu-latest
74
+ environment: pypi
75
+ permissions:
76
+ contents: write # create release + upload assets
77
+ id-token: write # PyPI Trusted Publishing
78
+ steps:
79
+ - name: Download build artifacts
80
+ uses: actions/download-artifact@v7
81
+ with:
82
+ path: artifacts
83
+
84
+ - name: Collect distributions
85
+ shell: bash
86
+ run: |
87
+ set -euo pipefail
88
+ mkdir -p dist
89
+ find artifacts -type f \( -name '*.whl' -o -name '*.tar.gz' \) -exec cp -n {} dist/ \;
90
+ ls -l dist
91
+
92
+ - uses: astral-sh/setup-uv@v7
93
+
94
+ - name: Publish to PyPI (Trusted Publishing)
95
+ run: uv publish dist/*
96
+
97
+ - name: Create draft GitHub Release
98
+ uses: softprops/action-gh-release@v2
99
+ with:
100
+ tag_name: ${{ needs.version-check.outputs.tag }}
101
+ name: ${{ needs.version-check.outputs.tag }}
102
+ draft: true
103
+ files: |
104
+ dist/*.whl
105
+ dist/*.tar.gz
@@ -0,0 +1,36 @@
1
+ # Generated by Cargo
2
+ # will have compiled files and executables
3
+ debug
4
+ target
5
+
6
+ # These are backup files generated by rustfmt
7
+ **/*.rs.bk
8
+
9
+ # MSVC Windows builds of rustc generate these, which store debugging information
10
+ *.pdb
11
+
12
+ # Generated by cargo mutants
13
+ # Contains mutation testing data
14
+ **/mutants.out*/
15
+
16
+ # RustRover
17
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
18
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
19
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
20
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
21
+ #.idea/
22
+
23
+
24
+ # Added by cargo
25
+
26
+ /target
27
+
28
+ # Python / maturin / uv
29
+ .venv/
30
+ __pycache__/
31
+ *.py[cod]
32
+ *.so
33
+ *.pyd
34
+ .pytest_cache/
35
+ dist/
36
+ *.egg-info/
@@ -0,0 +1 @@
1
+ 3.14