zarrista 0.1.0b1__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.
Files changed (44) hide show
  1. zarrista-0.1.0b1/.github/workflows/python-wheels.yml +158 -0
  2. zarrista-0.1.0b1/.github/workflows/test-python.yml +53 -0
  3. zarrista-0.1.0b1/.github/workflows/test.yml +34 -0
  4. zarrista-0.1.0b1/.gitignore +36 -0
  5. zarrista-0.1.0b1/Cargo.lock +3283 -0
  6. zarrista-0.1.0b1/Cargo.toml +41 -0
  7. zarrista-0.1.0b1/LICENSE +21 -0
  8. zarrista-0.1.0b1/PKG-INFO +47 -0
  9. zarrista-0.1.0b1/README.md +29 -0
  10. zarrista-0.1.0b1/dev-docs/specs/2026-06-16-pyo3-scaffold-design.md +64 -0
  11. zarrista-0.1.0b1/dev-docs/specs/2026-06-16-readonly-zarrs-api-design.md +131 -0
  12. zarrista-0.1.0b1/pyproject.toml +48 -0
  13. zarrista-0.1.0b1/python/zarrista/__init__.py +27 -0
  14. zarrista-0.1.0b1/python/zarrista/_array.pyi +116 -0
  15. zarrista-0.1.0b1/python/zarrista/_chunks.pyi +12 -0
  16. zarrista-0.1.0b1/python/zarrista/_codec.pyi +9 -0
  17. zarrista-0.1.0b1/python/zarrista/_data.pyi +25 -0
  18. zarrista-0.1.0b1/python/zarrista/_dtype.pyi +15 -0
  19. zarrista-0.1.0b1/python/zarrista/_group.pyi +40 -0
  20. zarrista-0.1.0b1/python/zarrista/_store.pyi +14 -0
  21. zarrista-0.1.0b1/python/zarrista/py.typed +0 -0
  22. zarrista-0.1.0b1/src/array/async.rs +189 -0
  23. zarrista-0.1.0b1/src/array/mod.rs +6 -0
  24. zarrista-0.1.0b1/src/array/selection.rs +463 -0
  25. zarrista-0.1.0b1/src/array/sync.rs +188 -0
  26. zarrista-0.1.0b1/src/chunks.rs +35 -0
  27. zarrista-0.1.0b1/src/codec.rs +36 -0
  28. zarrista-0.1.0b1/src/data.rs +254 -0
  29. zarrista-0.1.0b1/src/dtype.rs +186 -0
  30. zarrista-0.1.0b1/src/error.rs +105 -0
  31. zarrista-0.1.0b1/src/group/async.rs +109 -0
  32. zarrista-0.1.0b1/src/group/mod.rs +15 -0
  33. zarrista-0.1.0b1/src/group/sync.rs +78 -0
  34. zarrista-0.1.0b1/src/lib.rs +45 -0
  35. zarrista-0.1.0b1/src/metadata.rs +65 -0
  36. zarrista-0.1.0b1/src/node/mod.rs +6 -0
  37. zarrista-0.1.0b1/src/node/node.rs +68 -0
  38. zarrista-0.1.0b1/src/node/node_path.rs +47 -0
  39. zarrista-0.1.0b1/src/storage/async.rs +12 -0
  40. zarrista-0.1.0b1/src/storage/mod.rs +8 -0
  41. zarrista-0.1.0b1/src/storage/sync.rs +74 -0
  42. zarrista-0.1.0b1/tests/test_indexing.py +116 -0
  43. zarrista-0.1.0b1/tests/test_smoke.py +6 -0
  44. zarrista-0.1.0b1/uv.lock +964 -0
@@ -0,0 +1,158 @@
1
+ name: Build wheels
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ linux:
18
+ runs-on: ${{ matrix.platform.runner }}
19
+ strategy:
20
+ matrix:
21
+ platform:
22
+ - runner: ubuntu-latest
23
+ target: x86_64
24
+ - runner: ubuntu-latest
25
+ target: aarch64
26
+ steps:
27
+ - uses: actions/checkout@v6
28
+
29
+ - name: Build abi3 wheel
30
+ uses: PyO3/maturin-action@v1
31
+ with:
32
+ target: ${{ matrix.platform.target }}
33
+ args: --release --out dist
34
+ sccache: "true"
35
+ manylinux: "2_28"
36
+
37
+ - name: Upload wheels
38
+ uses: actions/upload-artifact@v7
39
+ with:
40
+ name: wheels-linux-${{ matrix.platform.target }}
41
+ path: dist
42
+
43
+ musllinux:
44
+ runs-on: ${{ matrix.platform.runner }}
45
+ strategy:
46
+ matrix:
47
+ platform:
48
+ - runner: ubuntu-latest
49
+ target: x86_64
50
+ - runner: ubuntu-latest
51
+ target: aarch64
52
+ steps:
53
+ - uses: actions/checkout@v6
54
+
55
+ - name: Build abi3 wheel
56
+ uses: PyO3/maturin-action@v1
57
+ with:
58
+ target: ${{ matrix.platform.target }}
59
+ args: --release --out dist
60
+ sccache: "true"
61
+ manylinux: musllinux_1_2
62
+
63
+ - name: Upload wheels
64
+ uses: actions/upload-artifact@v7
65
+ with:
66
+ name: wheels-musllinux-${{ matrix.platform.target }}
67
+ path: dist
68
+
69
+ windows:
70
+ runs-on: windows-latest
71
+ steps:
72
+ - uses: actions/checkout@v6
73
+
74
+ # uv-provided Python has linking issues on Windows with maturin, so use
75
+ # the GitHub-actions-provided interpreter.
76
+ - uses: actions/setup-python@v6
77
+ with:
78
+ python-version: "3.12"
79
+
80
+ - name: Build abi3 wheel
81
+ uses: PyO3/maturin-action@v1
82
+ with:
83
+ target: x64
84
+ args: --release --out dist
85
+ sccache: "true"
86
+
87
+ - name: Upload wheels
88
+ uses: actions/upload-artifact@v7
89
+ with:
90
+ name: wheels-windows-x64
91
+ path: dist
92
+
93
+ macos:
94
+ runs-on: ${{ matrix.platform.runner }}
95
+ strategy:
96
+ matrix:
97
+ platform:
98
+ - runner: macos-15-intel
99
+ target: x86_64
100
+ - runner: macos-15
101
+ target: aarch64
102
+ steps:
103
+ - uses: actions/checkout@v6
104
+
105
+ - uses: actions/setup-python@v6
106
+ with:
107
+ python-version: "3.12"
108
+
109
+ - name: Build abi3 wheel
110
+ uses: PyO3/maturin-action@v1
111
+ with:
112
+ target: ${{ matrix.platform.target }}
113
+ args: --release --out dist
114
+ sccache: "true"
115
+
116
+ - name: Upload wheels
117
+ uses: actions/upload-artifact@v7
118
+ with:
119
+ name: wheels-macos-${{ matrix.platform.target }}
120
+ path: dist
121
+
122
+ sdist:
123
+ runs-on: ubuntu-latest
124
+ steps:
125
+ - uses: actions/checkout@v6
126
+
127
+ - name: Build sdist
128
+ uses: PyO3/maturin-action@v1
129
+ with:
130
+ command: sdist
131
+ args: --out dist
132
+
133
+ - name: Upload sdist
134
+ uses: actions/upload-artifact@v7
135
+ with:
136
+ name: wheels-sdist
137
+ path: dist
138
+
139
+ release:
140
+ name: Release
141
+ runs-on: ubuntu-latest
142
+ environment:
143
+ name: pypi-release
144
+ url: https://pypi.org/p/zarrista
145
+ permissions:
146
+ # IMPORTANT: this permission is mandatory for trusted publishing
147
+ id-token: write
148
+ if: startsWith(github.ref, 'refs/tags/')
149
+ needs: [linux, musllinux, windows, macos, sdist]
150
+ steps:
151
+ - uses: actions/download-artifact@v8
152
+ with:
153
+ pattern: wheels-*
154
+ merge-multiple: true
155
+ path: dist
156
+
157
+ - name: Publish package distributions to PyPI
158
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,53 @@
1
+ name: Python
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ name: Lint
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+
20
+ # Use ruff-action so we get annotations in the GitHub UI.
21
+ - uses: astral-sh/ruff-action@v3
22
+
23
+ pytest:
24
+ name: Pytest
25
+ runs-on: ubuntu-latest
26
+ strategy:
27
+ matrix:
28
+ python-version: ["3.11", "3.12", "3.13"]
29
+ steps:
30
+ - uses: actions/checkout@v6
31
+
32
+ - name: Install Rust
33
+ uses: dtolnay/rust-toolchain@stable
34
+
35
+ - uses: Swatinem/rust-cache@v2
36
+
37
+ - uses: actions/setup-python@v6
38
+ with:
39
+ python-version: ${{ matrix.python-version }}
40
+
41
+ - name: Install uv
42
+ uses: astral-sh/setup-uv@v7
43
+ with:
44
+ enable-cache: true
45
+
46
+ - name: uv sync
47
+ run: uv sync --no-install-package zarrista
48
+
49
+ - name: maturin develop
50
+ run: uv run --no-project maturin develop
51
+
52
+ - name: Run pytest
53
+ run: uv run --no-project pytest --verbose
@@ -0,0 +1,34 @@
1
+ name: Rust
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint-test:
15
+ name: Lint and test
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+
20
+ - name: Install Rust
21
+ uses: dtolnay/rust-toolchain@stable
22
+ with:
23
+ components: rustfmt, clippy
24
+
25
+ - uses: Swatinem/rust-cache@v2
26
+
27
+ - name: Cargo fmt
28
+ run: cargo fmt --all -- --check
29
+
30
+ - name: Clippy
31
+ run: cargo clippy --all-targets --all-features -- -D warnings
32
+
33
+ - name: Cargo test
34
+ run: cargo test --all-features
@@ -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
+ # Python
17
+ __pycache__/
18
+ *.py[cod]
19
+ .venv/
20
+ .pytest_cache/
21
+ .ruff_cache/
22
+
23
+ # maturin / compiled extension module
24
+ *.so
25
+ *.pyd
26
+ *.dylib
27
+ /python/zarrista/_zarrista.*
28
+ dist/
29
+ *.egg-info/
30
+
31
+ # RustRover
32
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
33
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
34
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
35
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
36
+ #.idea/