orcsv 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.
- orcsv-0.1.0/.cargo/config.toml +5 -0
- orcsv-0.1.0/.github/workflows/CI.yml +230 -0
- orcsv-0.1.0/.gitignore +72 -0
- orcsv-0.1.0/Cargo.lock +680 -0
- orcsv-0.1.0/Cargo.toml +31 -0
- orcsv-0.1.0/LICENSE +21 -0
- orcsv-0.1.0/PKG-INFO +181 -0
- orcsv-0.1.0/README.md +165 -0
- orcsv-0.1.0/benches/parser.rs +68 -0
- orcsv-0.1.0/orcsv/__init__.py +22 -0
- orcsv-0.1.0/orcsv/__init__.pyi +67 -0
- orcsv-0.1.0/orcsv/py.typed +1 -0
- orcsv-0.1.0/pyproject.toml +20 -0
- orcsv-0.1.0/src/dialect.rs +101 -0
- orcsv-0.1.0/src/error.rs +72 -0
- orcsv-0.1.0/src/lib.rs +782 -0
- orcsv-0.1.0/src/reader/mod.rs +130 -0
- orcsv-0.1.0/src/reader/parser.rs +500 -0
- orcsv-0.1.0/src/reader/types.rs +487 -0
- orcsv-0.1.0/src/simd.rs +287 -0
- orcsv-0.1.0/src/writer/mod.rs +120 -0
- orcsv-0.1.0/src/writer/serializer.rs +217 -0
- orcsv-0.1.0/tests/run_quick.py +129 -0
- orcsv-0.1.0/tests/test_orcsv.py +314 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# This file is autogenerated by maturin v1.14.1
|
|
2
|
+
# To update, run
|
|
3
|
+
#
|
|
4
|
+
# maturin generate-ci github
|
|
5
|
+
#
|
|
6
|
+
name: CI
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
branches:
|
|
11
|
+
- main
|
|
12
|
+
- master
|
|
13
|
+
tags:
|
|
14
|
+
- '*'
|
|
15
|
+
pull_request:
|
|
16
|
+
workflow_dispatch:
|
|
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.x"
|
|
44
|
+
- name: Build wheels
|
|
45
|
+
uses: PyO3/maturin-action@v1
|
|
46
|
+
with:
|
|
47
|
+
target: ${{ matrix.platform.target }}
|
|
48
|
+
args: --release --out dist --find-interpreter
|
|
49
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
50
|
+
manylinux: auto
|
|
51
|
+
- name: Smoke test wheel
|
|
52
|
+
if: matrix.platform.target == 'x86_64'
|
|
53
|
+
run: |
|
|
54
|
+
python -m pip install --upgrade pip
|
|
55
|
+
python -m pip install orcsv --no-index --find-links dist
|
|
56
|
+
python - <<'PY'
|
|
57
|
+
import orcsv
|
|
58
|
+
assert orcsv.loads("a,b\n1,2") == [["a", "b"], ["1", "2"]]
|
|
59
|
+
PY
|
|
60
|
+
- name: Upload wheels
|
|
61
|
+
uses: actions/upload-artifact@v6
|
|
62
|
+
with:
|
|
63
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
64
|
+
path: dist
|
|
65
|
+
|
|
66
|
+
musllinux:
|
|
67
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
68
|
+
strategy:
|
|
69
|
+
matrix:
|
|
70
|
+
platform:
|
|
71
|
+
- runner: ubuntu-22.04
|
|
72
|
+
target: x86_64
|
|
73
|
+
- runner: ubuntu-22.04
|
|
74
|
+
target: x86
|
|
75
|
+
- runner: ubuntu-22.04
|
|
76
|
+
target: aarch64
|
|
77
|
+
- runner: ubuntu-22.04
|
|
78
|
+
target: armv7
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@v6
|
|
81
|
+
- uses: actions/setup-python@v6
|
|
82
|
+
with:
|
|
83
|
+
python-version: "3.x"
|
|
84
|
+
- name: Build wheels
|
|
85
|
+
uses: PyO3/maturin-action@v1
|
|
86
|
+
with:
|
|
87
|
+
target: ${{ matrix.platform.target }}
|
|
88
|
+
args: --release --out dist --find-interpreter
|
|
89
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
90
|
+
manylinux: musllinux_1_2
|
|
91
|
+
- name: Smoke test wheel
|
|
92
|
+
if: false
|
|
93
|
+
run: |
|
|
94
|
+
python -m pip install --upgrade pip
|
|
95
|
+
python -m pip install orcsv --no-index --find-links dist
|
|
96
|
+
python - <<'PY'
|
|
97
|
+
import orcsv
|
|
98
|
+
assert orcsv.loads("a,b\n1,2") == [["a", "b"], ["1", "2"]]
|
|
99
|
+
PY
|
|
100
|
+
- name: Upload wheels
|
|
101
|
+
uses: actions/upload-artifact@v6
|
|
102
|
+
with:
|
|
103
|
+
name: wheels-musllinux-${{ matrix.platform.target }}
|
|
104
|
+
path: dist
|
|
105
|
+
|
|
106
|
+
windows:
|
|
107
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
108
|
+
strategy:
|
|
109
|
+
matrix:
|
|
110
|
+
platform:
|
|
111
|
+
- runner: windows-latest
|
|
112
|
+
target: x64
|
|
113
|
+
python_arch: x64
|
|
114
|
+
- runner: windows-latest
|
|
115
|
+
target: x86
|
|
116
|
+
python_arch: x86
|
|
117
|
+
- runner: windows-11-arm
|
|
118
|
+
target: aarch64
|
|
119
|
+
python_arch: arm64
|
|
120
|
+
steps:
|
|
121
|
+
- uses: actions/checkout@v6
|
|
122
|
+
- uses: actions/setup-python@v6
|
|
123
|
+
with:
|
|
124
|
+
python-version: "3.13"
|
|
125
|
+
architecture: ${{ matrix.platform.python_arch }}
|
|
126
|
+
- name: Build wheels
|
|
127
|
+
uses: PyO3/maturin-action@v1
|
|
128
|
+
with:
|
|
129
|
+
target: ${{ matrix.platform.target }}
|
|
130
|
+
args: --release --out dist --find-interpreter
|
|
131
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
132
|
+
- name: Smoke test wheel
|
|
133
|
+
if: matrix.platform.target != 'aarch64'
|
|
134
|
+
shell: bash
|
|
135
|
+
run: |
|
|
136
|
+
python -m pip install --upgrade pip
|
|
137
|
+
python -m pip install orcsv --no-index --find-links dist
|
|
138
|
+
python - <<'PY'
|
|
139
|
+
import orcsv
|
|
140
|
+
assert orcsv.loads("a,b\n1,2") == [["a", "b"], ["1", "2"]]
|
|
141
|
+
PY
|
|
142
|
+
- name: Upload wheels
|
|
143
|
+
uses: actions/upload-artifact@v6
|
|
144
|
+
with:
|
|
145
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
146
|
+
path: dist
|
|
147
|
+
|
|
148
|
+
macos:
|
|
149
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
150
|
+
strategy:
|
|
151
|
+
matrix:
|
|
152
|
+
platform:
|
|
153
|
+
- runner: macos-15-intel
|
|
154
|
+
target: x86_64
|
|
155
|
+
- runner: macos-latest
|
|
156
|
+
target: aarch64
|
|
157
|
+
steps:
|
|
158
|
+
- uses: actions/checkout@v6
|
|
159
|
+
- uses: actions/setup-python@v6
|
|
160
|
+
with:
|
|
161
|
+
python-version: "3.x"
|
|
162
|
+
- name: Build wheels
|
|
163
|
+
uses: PyO3/maturin-action@v1
|
|
164
|
+
with:
|
|
165
|
+
target: ${{ matrix.platform.target }}
|
|
166
|
+
args: --release --out dist --find-interpreter
|
|
167
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
168
|
+
- name: Smoke test wheel
|
|
169
|
+
run: |
|
|
170
|
+
python -m pip install --upgrade pip
|
|
171
|
+
python -m pip install orcsv --no-index --find-links dist
|
|
172
|
+
python - <<'PY'
|
|
173
|
+
import orcsv
|
|
174
|
+
assert orcsv.loads("a,b\n1,2") == [["a", "b"], ["1", "2"]]
|
|
175
|
+
PY
|
|
176
|
+
- name: Upload wheels
|
|
177
|
+
uses: actions/upload-artifact@v6
|
|
178
|
+
with:
|
|
179
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
180
|
+
path: dist
|
|
181
|
+
|
|
182
|
+
sdist:
|
|
183
|
+
runs-on: ubuntu-latest
|
|
184
|
+
steps:
|
|
185
|
+
- uses: actions/checkout@v6
|
|
186
|
+
- name: Build sdist
|
|
187
|
+
uses: PyO3/maturin-action@v1
|
|
188
|
+
with:
|
|
189
|
+
command: sdist
|
|
190
|
+
args: --out dist
|
|
191
|
+
- name: Smoke test sdist
|
|
192
|
+
run: |
|
|
193
|
+
python -m pip install --upgrade pip
|
|
194
|
+
python -m pip install dist/*.tar.gz
|
|
195
|
+
python - <<'PY'
|
|
196
|
+
import orcsv
|
|
197
|
+
assert orcsv.loads("a,b\n1,2") == [["a", "b"], ["1", "2"]]
|
|
198
|
+
PY
|
|
199
|
+
- name: Upload sdist
|
|
200
|
+
uses: actions/upload-artifact@v6
|
|
201
|
+
with:
|
|
202
|
+
name: wheels-sdist
|
|
203
|
+
path: dist
|
|
204
|
+
|
|
205
|
+
release:
|
|
206
|
+
name: Release
|
|
207
|
+
runs-on: ubuntu-latest
|
|
208
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
|
|
209
|
+
needs: [linux, musllinux, windows, macos, sdist]
|
|
210
|
+
permissions:
|
|
211
|
+
# Use to sign the release artifacts
|
|
212
|
+
id-token: write
|
|
213
|
+
# Used to upload release artifacts
|
|
214
|
+
contents: write
|
|
215
|
+
# Used to generate artifact attestation
|
|
216
|
+
attestations: write
|
|
217
|
+
steps:
|
|
218
|
+
- uses: actions/download-artifact@v7
|
|
219
|
+
- name: Generate artifact attestation
|
|
220
|
+
uses: actions/attest@v4
|
|
221
|
+
with:
|
|
222
|
+
subject-path: 'wheels-*/*'
|
|
223
|
+
- name: Install uv
|
|
224
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
225
|
+
uses: astral-sh/setup-uv@v7
|
|
226
|
+
- name: Publish to PyPI
|
|
227
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
228
|
+
run: uv publish 'wheels-*/*'
|
|
229
|
+
env:
|
|
230
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
orcsv-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
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
|