pyspiral 0.7.0__cp312-abi3-manylinux_2_28_x86_64.whl → 0.7.1__cp312-abi3-manylinux_2_28_x86_64.whl
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.
Potentially problematic release.
This version of pyspiral might be problematic. Click here for more details.
- {pyspiral-0.7.0.dist-info → pyspiral-0.7.1.dist-info}/METADATA +1 -1
- {pyspiral-0.7.0.dist-info → pyspiral-0.7.1.dist-info}/RECORD +8 -8
- spiral/_lib.abi3.so +0 -0
- spiral/client.py +2 -0
- spiral/enrichment.py +6 -5
- spiral/table.py +3 -3
- {pyspiral-0.7.0.dist-info → pyspiral-0.7.1.dist-info}/WHEEL +0 -0
- {pyspiral-0.7.0.dist-info → pyspiral-0.7.1.dist-info}/entry_points.txt +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
pyspiral-0.7.
|
|
2
|
-
pyspiral-0.7.
|
|
3
|
-
pyspiral-0.7.
|
|
1
|
+
pyspiral-0.7.1.dist-info/METADATA,sha256=WQ0LCz8jtz9qHpU6Zim1I_134EwD3Ve8V4bW0nU_t-0,1874
|
|
2
|
+
pyspiral-0.7.1.dist-info/WHEEL,sha256=ydlpo1_yEJ2g1Axq3LoOd_OfioJa2swc2j5IDCa4uho,107
|
|
3
|
+
pyspiral-0.7.1.dist-info/entry_points.txt,sha256=R96Y3FpYX6XbQu9qMPfUTgiCcf4qM9OBQQZTDdBkZwA,74
|
|
4
4
|
spiral/__init__.py,sha256=gAysTwG_oEeKVMdCOfOzDhl0bM2miiK8Ds2vvUihBWw,1153
|
|
5
|
-
spiral/_lib.abi3.so,sha256=
|
|
5
|
+
spiral/_lib.abi3.so,sha256=WqIyQu2RIN27T4K326ZBRMIVXysE6p-GW2ENnNueOm0,67478232
|
|
6
6
|
spiral/adbc.py,sha256=7IxfWIeQN-fh0W5OdN_PP2x3pzQYg6ZUOLsHg3jktqw,14842
|
|
7
7
|
spiral/api/__init__.py,sha256=ULBlVq3PnfNOO6T5naE_ULmmii-83--qTuN2PpAUQN0,2241
|
|
8
8
|
spiral/api/admin.py,sha256=A1iVR1XYJSObZivPAD5UzmPuMgupXc9kaHNYYa_kwfs,585
|
|
@@ -35,7 +35,7 @@ spiral/cli/telemetry.py,sha256=Uxo1Q1FkKJ6n6QNGOUmL3j_pRRWRx0qWIhoP-U9BuR0,589
|
|
|
35
35
|
spiral/cli/text.py,sha256=DlWGe4JrkdERAiqyITNpk91Wqb63Re99rNYlIFsIamc,4031
|
|
36
36
|
spiral/cli/types.py,sha256=XYzo1GgX7dBBItoBSrHI4vO5C2lLmS2sktb-2GnGH3E,1362
|
|
37
37
|
spiral/cli/workloads.py,sha256=2_SLfQTFN6y73R9H0i9dk8VIOVagKxSxOpHXC56yptY,2015
|
|
38
|
-
spiral/client.py,sha256=
|
|
38
|
+
spiral/client.py,sha256=53dVv8wxYMmozUfR8MVcUufKGqdVIdb0yZ0gchczBoQ,6426
|
|
39
39
|
spiral/core/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
40
|
spiral/core/_tools/__init__.pyi,sha256=b2KLfTOQ67pjfbYt07o0IGiTu5o2bZw69lllV8v0Dps,143
|
|
41
41
|
spiral/core/authn/__init__.pyi,sha256=z_GWyIS62fuiYQrYO8hzw4W8oGaiciqS1u5qtAt54VY,769
|
|
@@ -60,7 +60,7 @@ spiral/debug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
60
60
|
spiral/debug/manifests.py,sha256=7f1O3ba9mrA5nXpOF9cEIQuUAteP5wiBkFy_diQJ7No,3216
|
|
61
61
|
spiral/debug/metrics.py,sha256=XdRDcjggtsLNGCAjam6IxG9072pz_d2C8iLApNRFUtk,2044
|
|
62
62
|
spiral/debug/scan.py,sha256=UEm_aRnql5pwDPTpZgakMLNjlzkKL4RurBFFqH_BLAQ,9526
|
|
63
|
-
spiral/enrichment.py,sha256=
|
|
63
|
+
spiral/enrichment.py,sha256=4j5W68YEJOABw5CXrt0A5gMILdR8KaXPjeMLlAQ4Gi4,6072
|
|
64
64
|
spiral/expressions/__init__.py,sha256=vMNFeeozkWph3dBpEkHPThUhZdT9ZZzxHe71HnkWlDU,8020
|
|
65
65
|
spiral/expressions/base.py,sha256=PvhJkcUSsPSIaxirHVzM9zlqyBXiaiia1HXohXdOmL4,5377
|
|
66
66
|
spiral/expressions/file.py,sha256=HRzGjc3goIlUlKjysoirexDaflNdnj9OoZ6j2uTKZnA,388
|
|
@@ -102,8 +102,8 @@ spiral/streaming_/__init__.py,sha256=s7MlW2ERsuZmZGExLFL6RcZon2e0tNBocBg5ANgki7k
|
|
|
102
102
|
spiral/streaming_/reader.py,sha256=tl_lC9xgh1-QFhsZn4xQT7It3PVTzHCEUT2BG2dWBRQ,4166
|
|
103
103
|
spiral/streaming_/stream.py,sha256=DM1hBDHnWm1ZFKZ-hZ4zxeSXITcUI6kWzwdJZvywI8o,5915
|
|
104
104
|
spiral/substrait_.py,sha256=AKeOD4KIXvz2J4TYxnIneOiHddtBIyOhuNxVO_uH0eg,12592
|
|
105
|
-
spiral/table.py,sha256=
|
|
105
|
+
spiral/table.py,sha256=ep8ZYtl6POebkPViR2FrekhFazNmAbOAESoLUODlup8,12242
|
|
106
106
|
spiral/text_index.py,sha256=FQ9rgIEGLSJryS9lFdMhKtPFey18BXoWbPXyvZPJJ04,442
|
|
107
107
|
spiral/transaction.py,sha256=KQhx3DvQyxG2C8md-YGsF_PgBRfayI0r_7ebMItDHdI,3938
|
|
108
108
|
spiral/types_.py,sha256=W_jyO7F6rpPiH69jhgSgV7OxQZbOlb1Ho3InpKUP6Eo,155
|
|
109
|
-
pyspiral-0.7.
|
|
109
|
+
pyspiral-0.7.1.dist-info/RECORD,,
|
spiral/_lib.abi3.so
CHANGED
|
Binary file
|
spiral/client.py
CHANGED
|
@@ -116,6 +116,8 @@ class Spiral:
|
|
|
116
116
|
asof = timestamp_micros(asof)
|
|
117
117
|
|
|
118
118
|
# Combine all projections into a single struct.
|
|
119
|
+
if not projections:
|
|
120
|
+
raise ValueError("At least one projection is required.")
|
|
119
121
|
projection = se.merge(*projections)
|
|
120
122
|
if where is not None:
|
|
121
123
|
where = se.lift(where)
|
spiral/enrichment.py
CHANGED
|
@@ -8,7 +8,7 @@ from spiral.core.table.spec import Operation
|
|
|
8
8
|
from spiral.expressions import Expr
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
|
-
from spiral import KeySpaceIndex, Table
|
|
11
|
+
from spiral import KeySpaceIndex, Scan, Table
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
@@ -47,16 +47,17 @@ class Enrichment:
|
|
|
47
47
|
"""The filter expression."""
|
|
48
48
|
return self._where
|
|
49
49
|
|
|
50
|
+
def _scan(self) -> "Scan":
|
|
51
|
+
return self._table.spiral.scan(self._projection, where=self._where)
|
|
52
|
+
|
|
50
53
|
def apply(self, *, batch_readahead: int | None = None, partition_size_bytes: int | None = None) -> None:
|
|
51
54
|
"""Apply the enrichment onto the table in a streaming fashion.
|
|
52
55
|
|
|
53
56
|
For large tables, consider using `apply_dask` for distributed execution.
|
|
54
57
|
"""
|
|
55
|
-
scan = self._table.spiral.scan(self._projection, where=self._where)
|
|
56
|
-
|
|
57
58
|
with self._table.txn() as txn:
|
|
58
59
|
txn.writeback(
|
|
59
|
-
|
|
60
|
+
self._scan(),
|
|
60
61
|
partition_size_bytes=partition_size_bytes,
|
|
61
62
|
batch_readahead=batch_readahead,
|
|
62
63
|
)
|
|
@@ -99,7 +100,7 @@ class Enrichment:
|
|
|
99
100
|
|
|
100
101
|
# Start a transaction BEFORE the planning scan.
|
|
101
102
|
tx = self._table.txn()
|
|
102
|
-
plan_scan = self.
|
|
103
|
+
plan_scan = self._scan()
|
|
103
104
|
|
|
104
105
|
# Determine the "tasks". Use the index if provided.
|
|
105
106
|
shards = plan_scan.shards()
|
spiral/table.py
CHANGED
|
@@ -134,9 +134,9 @@ class Table(Expr):
|
|
|
134
134
|
"""
|
|
135
135
|
from spiral import expressions as se
|
|
136
136
|
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
projection = se.merge(self, *projections)
|
|
137
|
+
# TODO(marko): This shouldn't need to happen. We should be able to read keys from writeback scan.
|
|
138
|
+
# Include key columns in the projection.
|
|
139
|
+
projection = se.merge(self.select(*self.key_schema.names), *projections)
|
|
140
140
|
if where is not None:
|
|
141
141
|
where = se.lift(where)
|
|
142
142
|
|
|
File without changes
|
|
File without changes
|