pyspiral 0.4.0__pp310-pypy310_pp73-macosx_10_12_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.
- pyspiral-0.4.0.dist-info/METADATA +46 -0
- pyspiral-0.4.0.dist-info/RECORD +98 -0
- pyspiral-0.4.0.dist-info/WHEEL +4 -0
- pyspiral-0.4.0.dist-info/entry_points.txt +2 -0
- spiral/__init__.py +10 -0
- spiral/_lib.pypy310-pp73-darwin.so +0 -0
- spiral/adbc.py +393 -0
- spiral/api/__init__.py +64 -0
- spiral/api/admin.py +15 -0
- spiral/api/client.py +160 -0
- spiral/api/filesystems.py +153 -0
- spiral/api/organizations.py +77 -0
- spiral/api/projects.py +197 -0
- spiral/api/telemetry.py +19 -0
- spiral/api/types.py +20 -0
- spiral/api/workloads.py +52 -0
- spiral/arrow_.py +221 -0
- spiral/cli/__init__.py +79 -0
- spiral/cli/__main__.py +4 -0
- spiral/cli/admin.py +16 -0
- spiral/cli/app.py +65 -0
- spiral/cli/console.py +95 -0
- spiral/cli/fs.py +112 -0
- spiral/cli/iceberg/__init__.py +7 -0
- spiral/cli/iceberg/namespaces.py +47 -0
- spiral/cli/iceberg/tables.py +60 -0
- spiral/cli/indexes/__init__.py +19 -0
- spiral/cli/login.py +22 -0
- spiral/cli/orgs.py +90 -0
- spiral/cli/printer.py +53 -0
- spiral/cli/projects.py +136 -0
- spiral/cli/state.py +5 -0
- spiral/cli/tables/__init__.py +121 -0
- spiral/cli/telemetry.py +18 -0
- spiral/cli/types.py +51 -0
- spiral/cli/workloads.py +59 -0
- spiral/client.py +79 -0
- spiral/core/__init__.pyi +0 -0
- spiral/core/client/__init__.pyi +117 -0
- spiral/core/index/__init__.pyi +15 -0
- spiral/core/table/__init__.pyi +108 -0
- spiral/core/table/manifests/__init__.pyi +35 -0
- spiral/core/table/metastore/__init__.pyi +62 -0
- spiral/core/table/spec/__init__.pyi +214 -0
- spiral/datetime_.py +27 -0
- spiral/expressions/__init__.py +245 -0
- spiral/expressions/base.py +149 -0
- spiral/expressions/http.py +86 -0
- spiral/expressions/io.py +100 -0
- spiral/expressions/list_.py +68 -0
- spiral/expressions/mp4.py +62 -0
- spiral/expressions/png.py +18 -0
- spiral/expressions/qoi.py +18 -0
- spiral/expressions/refs.py +58 -0
- spiral/expressions/str_.py +39 -0
- spiral/expressions/struct.py +59 -0
- spiral/expressions/text.py +62 -0
- spiral/expressions/tiff.py +223 -0
- spiral/expressions/udf.py +46 -0
- spiral/grpc_.py +32 -0
- spiral/iceberg/__init__.py +3 -0
- spiral/iceberg/client.py +33 -0
- spiral/indexes/__init__.py +5 -0
- spiral/indexes/client.py +137 -0
- spiral/indexes/index.py +34 -0
- spiral/indexes/scan.py +22 -0
- spiral/project.py +46 -0
- spiral/protogen/_/__init__.py +0 -0
- spiral/protogen/_/arrow/__init__.py +0 -0
- spiral/protogen/_/arrow/flight/__init__.py +0 -0
- spiral/protogen/_/arrow/flight/protocol/__init__.py +0 -0
- spiral/protogen/_/arrow/flight/protocol/sql/__init__.py +1990 -0
- spiral/protogen/_/scandal/__init__.py +178 -0
- spiral/protogen/_/spiral/__init__.py +0 -0
- spiral/protogen/_/spiral/table/__init__.py +22 -0
- spiral/protogen/_/substrait/__init__.py +3399 -0
- spiral/protogen/_/substrait/extensions/__init__.py +115 -0
- spiral/protogen/__init__.py +0 -0
- spiral/protogen/substrait/__init__.py +3399 -0
- spiral/protogen/substrait/extensions/__init__.py +115 -0
- spiral/protogen/util.py +41 -0
- spiral/py.typed +0 -0
- spiral/server.py +17 -0
- spiral/settings.py +101 -0
- spiral/substrait_.py +279 -0
- spiral/tables/__init__.py +12 -0
- spiral/tables/client.py +130 -0
- spiral/tables/dataset.py +250 -0
- spiral/tables/debug/__init__.py +0 -0
- spiral/tables/debug/manifests.py +70 -0
- spiral/tables/debug/metrics.py +56 -0
- spiral/tables/debug/scan.py +248 -0
- spiral/tables/maintenance.py +12 -0
- spiral/tables/scan.py +193 -0
- spiral/tables/snapshot.py +78 -0
- spiral/tables/table.py +157 -0
- spiral/tables/transaction.py +52 -0
- spiral/types_.py +6 -0
@@ -0,0 +1,178 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# sources: scandal/scandal.proto
|
3
|
+
# plugin: python-betterproto
|
4
|
+
# This file has been @generated
|
5
|
+
|
6
|
+
from dataclasses import dataclass
|
7
|
+
from typing import (
|
8
|
+
TYPE_CHECKING,
|
9
|
+
Dict,
|
10
|
+
List,
|
11
|
+
Optional,
|
12
|
+
)
|
13
|
+
|
14
|
+
import betterproto
|
15
|
+
import grpclib
|
16
|
+
from betterproto.grpc.grpclib_server import ServiceBase
|
17
|
+
|
18
|
+
|
19
|
+
if TYPE_CHECKING:
|
20
|
+
import grpclib.server
|
21
|
+
from betterproto.grpc.grpclib_client import MetadataLike
|
22
|
+
from grpclib.metadata import Deadline
|
23
|
+
|
24
|
+
|
25
|
+
@dataclass(eq=False, repr=False)
|
26
|
+
class Source(betterproto.Message):
|
27
|
+
url: str = betterproto.string_field(1)
|
28
|
+
content_type: Optional[str] = betterproto.string_field(2, optional=True)
|
29
|
+
size: Optional[int] = betterproto.int64_field(3, optional=True)
|
30
|
+
parquet: "MetadataParquet" = betterproto.message_field(10, group="metadata")
|
31
|
+
|
32
|
+
|
33
|
+
@dataclass(eq=False, repr=False)
|
34
|
+
class Metadata(betterproto.Message):
|
35
|
+
pass
|
36
|
+
|
37
|
+
|
38
|
+
@dataclass(eq=False, repr=False)
|
39
|
+
class MetadataParquet(betterproto.Message):
|
40
|
+
pass
|
41
|
+
|
42
|
+
|
43
|
+
@dataclass(eq=False, repr=False)
|
44
|
+
class Sink(betterproto.Message):
|
45
|
+
url: str = betterproto.string_field(1)
|
46
|
+
|
47
|
+
|
48
|
+
@dataclass(eq=False, repr=False)
|
49
|
+
class Connectivity(betterproto.Message):
|
50
|
+
"""
|
51
|
+
Information about the client's perceived connectivity to a FileSystem.
|
52
|
+
"""
|
53
|
+
|
54
|
+
unreachable: bool = betterproto.bool_field(1)
|
55
|
+
round_trip_time_us: Optional[int] = betterproto.int32_field(2, optional=True)
|
56
|
+
|
57
|
+
|
58
|
+
@dataclass(eq=False, repr=False)
|
59
|
+
class Fetch(betterproto.Message):
|
60
|
+
"""Let's make "fetch" happen."""
|
61
|
+
|
62
|
+
pass
|
63
|
+
|
64
|
+
|
65
|
+
@dataclass(eq=False, repr=False)
|
66
|
+
class FetchRequest(betterproto.Message):
|
67
|
+
"""TODO(ngates): include projection expression."""
|
68
|
+
|
69
|
+
uri: str = betterproto.string_field(1)
|
70
|
+
"""
|
71
|
+
A signed request to read an
|
72
|
+
spfs://<fsid>/path?token=<jwt> URI.
|
73
|
+
"""
|
74
|
+
|
75
|
+
connectivity: "Connectivity" = betterproto.message_field(2)
|
76
|
+
"""Declares whether the client has connectivity to the FileSystem."""
|
77
|
+
|
78
|
+
accepts: List[str] = betterproto.string_field(3)
|
79
|
+
"""Declares the MIME types the client can read directly."""
|
80
|
+
|
81
|
+
|
82
|
+
@dataclass(eq=False, repr=False)
|
83
|
+
class FetchResponse(betterproto.Message):
|
84
|
+
sources: List["Source"] = betterproto.message_field(1)
|
85
|
+
"""
|
86
|
+
The sources the client should use to attempt to read the file.
|
87
|
+
The client should try each source in order until it finds one that works.
|
88
|
+
"""
|
89
|
+
|
90
|
+
|
91
|
+
@dataclass(eq=False, repr=False)
|
92
|
+
class Put(betterproto.Message):
|
93
|
+
pass
|
94
|
+
|
95
|
+
|
96
|
+
@dataclass(eq=False, repr=False)
|
97
|
+
class PutRequest(betterproto.Message):
|
98
|
+
uri: str = betterproto.string_field(1)
|
99
|
+
connectivity: "Connectivity" = betterproto.message_field(2)
|
100
|
+
|
101
|
+
|
102
|
+
@dataclass(eq=False, repr=False)
|
103
|
+
class PutResponse(betterproto.Message):
|
104
|
+
sinks: List["Sink"] = betterproto.message_field(1)
|
105
|
+
|
106
|
+
|
107
|
+
class ScandalServiceStub(betterproto.ServiceStub):
|
108
|
+
async def fetch(
|
109
|
+
self,
|
110
|
+
fetch_request: "FetchRequest",
|
111
|
+
*,
|
112
|
+
timeout: Optional[float] = None,
|
113
|
+
deadline: Optional["Deadline"] = None,
|
114
|
+
metadata: Optional["MetadataLike"] = None
|
115
|
+
) -> "FetchResponse":
|
116
|
+
return await self._unary_unary(
|
117
|
+
"/scandal.ScandalService/Fetch",
|
118
|
+
fetch_request,
|
119
|
+
FetchResponse,
|
120
|
+
timeout=timeout,
|
121
|
+
deadline=deadline,
|
122
|
+
metadata=metadata,
|
123
|
+
)
|
124
|
+
|
125
|
+
async def put(
|
126
|
+
self,
|
127
|
+
put_request: "PutRequest",
|
128
|
+
*,
|
129
|
+
timeout: Optional[float] = None,
|
130
|
+
deadline: Optional["Deadline"] = None,
|
131
|
+
metadata: Optional["MetadataLike"] = None
|
132
|
+
) -> "PutResponse":
|
133
|
+
return await self._unary_unary(
|
134
|
+
"/scandal.ScandalService/Put",
|
135
|
+
put_request,
|
136
|
+
PutResponse,
|
137
|
+
timeout=timeout,
|
138
|
+
deadline=deadline,
|
139
|
+
metadata=metadata,
|
140
|
+
)
|
141
|
+
|
142
|
+
|
143
|
+
class ScandalServiceBase(ServiceBase):
|
144
|
+
async def fetch(self, fetch_request: "FetchRequest") -> "FetchResponse":
|
145
|
+
raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
146
|
+
|
147
|
+
async def put(self, put_request: "PutRequest") -> "PutResponse":
|
148
|
+
raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
149
|
+
|
150
|
+
async def __rpc_fetch(
|
151
|
+
self, stream: "grpclib.server.Stream[FetchRequest, FetchResponse]"
|
152
|
+
) -> None:
|
153
|
+
request = await stream.recv_message()
|
154
|
+
response = await self.fetch(request)
|
155
|
+
await stream.send_message(response)
|
156
|
+
|
157
|
+
async def __rpc_put(
|
158
|
+
self, stream: "grpclib.server.Stream[PutRequest, PutResponse]"
|
159
|
+
) -> None:
|
160
|
+
request = await stream.recv_message()
|
161
|
+
response = await self.put(request)
|
162
|
+
await stream.send_message(response)
|
163
|
+
|
164
|
+
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
|
165
|
+
return {
|
166
|
+
"/scandal.ScandalService/Fetch": grpclib.const.Handler(
|
167
|
+
self.__rpc_fetch,
|
168
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
169
|
+
FetchRequest,
|
170
|
+
FetchResponse,
|
171
|
+
),
|
172
|
+
"/scandal.ScandalService/Put": grpclib.const.Handler(
|
173
|
+
self.__rpc_put,
|
174
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
175
|
+
PutRequest,
|
176
|
+
PutResponse,
|
177
|
+
),
|
178
|
+
}
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# sources: spiral/table/statistics.proto
|
3
|
+
# plugin: python-betterproto
|
4
|
+
# This file has been @generated
|
5
|
+
|
6
|
+
from dataclasses import dataclass
|
7
|
+
|
8
|
+
import betterproto
|
9
|
+
|
10
|
+
|
11
|
+
@dataclass(eq=False, repr=False)
|
12
|
+
class ApproximateSetMembership(betterproto.Message):
|
13
|
+
bloom_filter: "BloomFilter" = betterproto.message_field(
|
14
|
+
2, group="membership_strategy"
|
15
|
+
)
|
16
|
+
|
17
|
+
|
18
|
+
@dataclass(eq=False, repr=False)
|
19
|
+
class BloomFilter(betterproto.Message):
|
20
|
+
bit_vec: bytes = betterproto.bytes_field(1)
|
21
|
+
bitmap_bits: int = betterproto.uint64_field(2)
|
22
|
+
k_num: int = betterproto.uint32_field(3)
|