pyspiral 0.6.6__cp312-abi3-macosx_11_0_arm64.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.
Files changed (102) hide show
  1. pyspiral-0.6.6.dist-info/METADATA +51 -0
  2. pyspiral-0.6.6.dist-info/RECORD +102 -0
  3. pyspiral-0.6.6.dist-info/WHEEL +4 -0
  4. pyspiral-0.6.6.dist-info/entry_points.txt +2 -0
  5. spiral/__init__.py +35 -0
  6. spiral/_lib.abi3.so +0 -0
  7. spiral/adbc.py +411 -0
  8. spiral/api/__init__.py +78 -0
  9. spiral/api/admin.py +15 -0
  10. spiral/api/client.py +164 -0
  11. spiral/api/filesystems.py +134 -0
  12. spiral/api/key_space_indexes.py +23 -0
  13. spiral/api/organizations.py +77 -0
  14. spiral/api/projects.py +219 -0
  15. spiral/api/telemetry.py +19 -0
  16. spiral/api/text_indexes.py +56 -0
  17. spiral/api/types.py +22 -0
  18. spiral/api/workers.py +40 -0
  19. spiral/api/workloads.py +52 -0
  20. spiral/arrow_.py +216 -0
  21. spiral/cli/__init__.py +88 -0
  22. spiral/cli/__main__.py +4 -0
  23. spiral/cli/admin.py +14 -0
  24. spiral/cli/app.py +104 -0
  25. spiral/cli/console.py +95 -0
  26. spiral/cli/fs.py +76 -0
  27. spiral/cli/iceberg.py +97 -0
  28. spiral/cli/key_spaces.py +89 -0
  29. spiral/cli/login.py +24 -0
  30. spiral/cli/orgs.py +89 -0
  31. spiral/cli/printer.py +53 -0
  32. spiral/cli/projects.py +147 -0
  33. spiral/cli/state.py +5 -0
  34. spiral/cli/tables.py +174 -0
  35. spiral/cli/telemetry.py +17 -0
  36. spiral/cli/text.py +115 -0
  37. spiral/cli/types.py +50 -0
  38. spiral/cli/workloads.py +58 -0
  39. spiral/client.py +178 -0
  40. spiral/core/__init__.pyi +0 -0
  41. spiral/core/_tools/__init__.pyi +5 -0
  42. spiral/core/authn/__init__.pyi +27 -0
  43. spiral/core/client/__init__.pyi +237 -0
  44. spiral/core/table/__init__.pyi +101 -0
  45. spiral/core/table/manifests/__init__.pyi +35 -0
  46. spiral/core/table/metastore/__init__.pyi +58 -0
  47. spiral/core/table/spec/__init__.pyi +213 -0
  48. spiral/dataloader.py +285 -0
  49. spiral/dataset.py +255 -0
  50. spiral/datetime_.py +27 -0
  51. spiral/debug/__init__.py +0 -0
  52. spiral/debug/manifests.py +87 -0
  53. spiral/debug/metrics.py +56 -0
  54. spiral/debug/scan.py +266 -0
  55. spiral/expressions/__init__.py +276 -0
  56. spiral/expressions/base.py +157 -0
  57. spiral/expressions/http.py +86 -0
  58. spiral/expressions/io.py +100 -0
  59. spiral/expressions/list_.py +68 -0
  60. spiral/expressions/mp4.py +62 -0
  61. spiral/expressions/png.py +18 -0
  62. spiral/expressions/qoi.py +18 -0
  63. spiral/expressions/refs.py +58 -0
  64. spiral/expressions/str_.py +39 -0
  65. spiral/expressions/struct.py +59 -0
  66. spiral/expressions/text.py +62 -0
  67. spiral/expressions/tiff.py +223 -0
  68. spiral/expressions/udf.py +46 -0
  69. spiral/grpc_.py +32 -0
  70. spiral/iceberg.py +31 -0
  71. spiral/iterable_dataset.py +106 -0
  72. spiral/key_space_index.py +44 -0
  73. spiral/project.py +199 -0
  74. spiral/protogen/_/__init__.py +0 -0
  75. spiral/protogen/_/arrow/__init__.py +0 -0
  76. spiral/protogen/_/arrow/flight/__init__.py +0 -0
  77. spiral/protogen/_/arrow/flight/protocol/__init__.py +0 -0
  78. spiral/protogen/_/arrow/flight/protocol/sql/__init__.py +2548 -0
  79. spiral/protogen/_/google/__init__.py +0 -0
  80. spiral/protogen/_/google/protobuf/__init__.py +2310 -0
  81. spiral/protogen/_/message_pool.py +3 -0
  82. spiral/protogen/_/py.typed +0 -0
  83. spiral/protogen/_/scandal/__init__.py +190 -0
  84. spiral/protogen/_/spfs/__init__.py +72 -0
  85. spiral/protogen/_/spql/__init__.py +61 -0
  86. spiral/protogen/_/substrait/__init__.py +6196 -0
  87. spiral/protogen/_/substrait/extensions/__init__.py +169 -0
  88. spiral/protogen/__init__.py +0 -0
  89. spiral/protogen/util.py +41 -0
  90. spiral/py.typed +0 -0
  91. spiral/scan.py +285 -0
  92. spiral/server.py +17 -0
  93. spiral/settings.py +114 -0
  94. spiral/snapshot.py +56 -0
  95. spiral/streaming_/__init__.py +3 -0
  96. spiral/streaming_/reader.py +133 -0
  97. spiral/streaming_/stream.py +157 -0
  98. spiral/substrait_.py +274 -0
  99. spiral/table.py +293 -0
  100. spiral/text_index.py +17 -0
  101. spiral/transaction.py +58 -0
  102. spiral/types_.py +6 -0
@@ -0,0 +1,3 @@
1
+ import betterproto2
2
+
3
+ default_message_pool = betterproto2.MessagePool()
File without changes
@@ -0,0 +1,190 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # sources: scandal/scandal.proto
3
+ # plugin: python-betterproto2
4
+ # This file has been @generated
5
+
6
+ __all__ = (
7
+ "Connectivity",
8
+ "Fetch",
9
+ "FetchRequest",
10
+ "FetchResponse",
11
+ "Metadata",
12
+ "MetadataParquet",
13
+ "Put",
14
+ "PutRequest",
15
+ "PutResponse",
16
+ "ScandalServiceStub",
17
+ "Sink",
18
+ "Source",
19
+ )
20
+
21
+ from dataclasses import dataclass
22
+
23
+ import betterproto2
24
+ import grpc
25
+
26
+ from ..message_pool import default_message_pool
27
+
28
+ _COMPILER_VERSION = "0.9.0"
29
+ betterproto2.check_compiler_version(_COMPILER_VERSION)
30
+
31
+
32
+ @dataclass(eq=False, repr=False)
33
+ class Connectivity(betterproto2.Message):
34
+ """
35
+ Information about the client's perceived connectivity to a FileSystem.
36
+ """
37
+
38
+ unreachable: "bool" = betterproto2.field(1, betterproto2.TYPE_BOOL)
39
+
40
+ round_trip_time_us: "int | None" = betterproto2.field(2, betterproto2.TYPE_INT32, optional=True)
41
+
42
+
43
+ default_message_pool.register_message("scandal", "Connectivity", Connectivity)
44
+
45
+
46
+ @dataclass(eq=False, repr=False)
47
+ class Fetch(betterproto2.Message):
48
+ """
49
+ Let's make "fetch" happen.
50
+ """
51
+
52
+ pass
53
+
54
+
55
+ default_message_pool.register_message("scandal", "Fetch", Fetch)
56
+
57
+
58
+ @dataclass(eq=False, repr=False)
59
+ class FetchRequest(betterproto2.Message):
60
+ """
61
+ TODO(ngates): include projection expression.
62
+ """
63
+
64
+ uri: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
65
+ """
66
+ A signed request to read an
67
+ spfs://<fsid>/path?token=<jwt&gt URI.
68
+ """
69
+
70
+ connectivity: "Connectivity | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True)
71
+ """
72
+ Declares whether the client has connectivity to the FileSystem.
73
+ """
74
+
75
+ accepts: "list[str]" = betterproto2.field(3, betterproto2.TYPE_STRING, repeated=True)
76
+ """
77
+ Declares the MIME types the client can read directly.
78
+ """
79
+
80
+
81
+ default_message_pool.register_message("scandal", "Fetch.Request", FetchRequest)
82
+
83
+
84
+ @dataclass(eq=False, repr=False)
85
+ class FetchResponse(betterproto2.Message):
86
+ sources: "list[Source]" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, repeated=True)
87
+ """
88
+ The sources the client should use to attempt to read the file.
89
+ The client should try each source in order until it finds one that works.
90
+ """
91
+
92
+
93
+ default_message_pool.register_message("scandal", "Fetch.Response", FetchResponse)
94
+
95
+
96
+ @dataclass(eq=False, repr=False)
97
+ class Metadata(betterproto2.Message):
98
+ pass
99
+
100
+
101
+ default_message_pool.register_message("scandal", "Metadata", Metadata)
102
+
103
+
104
+ @dataclass(eq=False, repr=False)
105
+ class MetadataParquet(betterproto2.Message):
106
+ """
107
+ A bunch of optional metadata that the client can use
108
+ to accelerate reading the file.
109
+ """
110
+
111
+ pass
112
+
113
+
114
+ default_message_pool.register_message("scandal", "Metadata.Parquet", MetadataParquet)
115
+
116
+
117
+ @dataclass(eq=False, repr=False)
118
+ class Put(betterproto2.Message):
119
+ pass
120
+
121
+
122
+ default_message_pool.register_message("scandal", "Put", Put)
123
+
124
+
125
+ @dataclass(eq=False, repr=False)
126
+ class PutRequest(betterproto2.Message):
127
+ uri: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
128
+
129
+ connectivity: "Connectivity | None" = betterproto2.field(2, betterproto2.TYPE_MESSAGE, optional=True)
130
+
131
+
132
+ default_message_pool.register_message("scandal", "Put.Request", PutRequest)
133
+
134
+
135
+ @dataclass(eq=False, repr=False)
136
+ class PutResponse(betterproto2.Message):
137
+ sinks: "list[Sink]" = betterproto2.field(1, betterproto2.TYPE_MESSAGE, repeated=True)
138
+
139
+
140
+ default_message_pool.register_message("scandal", "Put.Response", PutResponse)
141
+
142
+
143
+ @dataclass(eq=False, repr=False)
144
+ class Sink(betterproto2.Message):
145
+ url: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
146
+
147
+
148
+ default_message_pool.register_message("scandal", "Sink", Sink)
149
+
150
+
151
+ @dataclass(eq=False, repr=False)
152
+ class Source(betterproto2.Message):
153
+ """
154
+ NOTE(marko): Scandal does not yet exist and this file is unused.
155
+
156
+ Oneofs:
157
+ - metadata:
158
+ """
159
+
160
+ url: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
161
+
162
+ content_type: "str | None" = betterproto2.field(2, betterproto2.TYPE_STRING, optional=True)
163
+
164
+ size: "int | None" = betterproto2.field(3, betterproto2.TYPE_INT64, optional=True)
165
+
166
+ parquet: "MetadataParquet | None" = betterproto2.field(
167
+ 10, betterproto2.TYPE_MESSAGE, optional=True, group="metadata"
168
+ )
169
+
170
+
171
+ default_message_pool.register_message("scandal", "Source", Source)
172
+
173
+
174
+ class ScandalServiceStub:
175
+ def __init__(self, channel: grpc.Channel):
176
+ self._channel = channel
177
+
178
+ def fetch(self, message: "FetchRequest") -> "FetchResponse":
179
+ return self._channel.unary_unary(
180
+ "/scandal.ScandalService/Fetch",
181
+ FetchRequest.SerializeToString,
182
+ FetchResponse.FromString,
183
+ )(message)
184
+
185
+ def put(self, message: "PutRequest") -> "PutResponse":
186
+ return self._channel.unary_unary(
187
+ "/scandal.ScandalService/Put",
188
+ PutRequest.SerializeToString,
189
+ PutResponse.FromString,
190
+ )(message)
@@ -0,0 +1,72 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # sources: spfs/metadata.proto
3
+ # plugin: python-betterproto2
4
+ # This file has been @generated
5
+
6
+ __all__ = (
7
+ "FileMetadata",
8
+ "ParquetFileSpecificMetadata",
9
+ "ProtobufFileSpecificMetadata",
10
+ "VortexFileSpecificMetadata",
11
+ )
12
+
13
+ from dataclasses import dataclass
14
+
15
+ import betterproto2
16
+
17
+ from ..message_pool import default_message_pool
18
+
19
+ _COMPILER_VERSION = "0.9.0"
20
+ betterproto2.check_compiler_version(_COMPILER_VERSION)
21
+
22
+
23
+ @dataclass(eq=False, repr=False)
24
+ class FileMetadata(betterproto2.Message):
25
+ """
26
+
27
+
28
+ Oneofs:
29
+ - format_specific:
30
+ """
31
+
32
+ protobuf: "ProtobufFileSpecificMetadata | None" = betterproto2.field(
33
+ 1, betterproto2.TYPE_MESSAGE, optional=True, group="format_specific"
34
+ )
35
+
36
+ parquet: "ParquetFileSpecificMetadata | None" = betterproto2.field(
37
+ 2, betterproto2.TYPE_MESSAGE, optional=True, group="format_specific"
38
+ )
39
+
40
+ vortex: "VortexFileSpecificMetadata | None" = betterproto2.field(
41
+ 3, betterproto2.TYPE_MESSAGE, optional=True, group="format_specific"
42
+ )
43
+
44
+
45
+ default_message_pool.register_message("spfs", "FileMetadata", FileMetadata)
46
+
47
+
48
+ @dataclass(eq=False, repr=False)
49
+ class ParquetFileSpecificMetadata(betterproto2.Message):
50
+ metadata_size_bytes: "int" = betterproto2.field(1, betterproto2.TYPE_UINT32)
51
+
52
+
53
+ default_message_pool.register_message("spfs", "ParquetFileSpecificMetadata", ParquetFileSpecificMetadata)
54
+
55
+
56
+ @dataclass(eq=False, repr=False)
57
+ class ProtobufFileSpecificMetadata(betterproto2.Message):
58
+ pass
59
+
60
+
61
+ default_message_pool.register_message("spfs", "ProtobufFileSpecificMetadata", ProtobufFileSpecificMetadata)
62
+
63
+
64
+ @dataclass(eq=False, repr=False)
65
+ class VortexFileSpecificMetadata(betterproto2.Message):
66
+ footer: "bytes | None" = betterproto2.field(2, betterproto2.TYPE_BYTES, optional=True)
67
+ """
68
+ Optional because we may decide to not store it if it's too large.
69
+ """
70
+
71
+
72
+ default_message_pool.register_message("spfs", "VortexFileSpecificMetadata", VortexFileSpecificMetadata)
@@ -0,0 +1,61 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # sources: spql/exprs.proto
3
+ # plugin: python-betterproto2
4
+ # This file has been @generated
5
+
6
+ __all__ = (
7
+ "BoostOpts",
8
+ "FindOpts",
9
+ "IndexOpts",
10
+ "TableOpts",
11
+ "TextDTypeOpts",
12
+ )
13
+
14
+ from dataclasses import dataclass
15
+
16
+ import betterproto2
17
+
18
+ from ..message_pool import default_message_pool
19
+
20
+ _COMPILER_VERSION = "0.9.0"
21
+ betterproto2.check_compiler_version(_COMPILER_VERSION)
22
+
23
+
24
+ @dataclass(eq=False, repr=False)
25
+ class BoostOpts(betterproto2.Message):
26
+ factor: "float" = betterproto2.field(1, betterproto2.TYPE_FLOAT)
27
+
28
+
29
+ default_message_pool.register_message("spql", "BoostOpts", BoostOpts)
30
+
31
+
32
+ @dataclass(eq=False, repr=False)
33
+ class FindOpts(betterproto2.Message):
34
+ term: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
35
+
36
+
37
+ default_message_pool.register_message("spql", "FindOpts", FindOpts)
38
+
39
+
40
+ @dataclass(eq=False, repr=False)
41
+ class IndexOpts(betterproto2.Message):
42
+ index_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
43
+
44
+
45
+ default_message_pool.register_message("spql", "IndexOpts", IndexOpts)
46
+
47
+
48
+ @dataclass(eq=False, repr=False)
49
+ class TableOpts(betterproto2.Message):
50
+ table_id: "str" = betterproto2.field(1, betterproto2.TYPE_STRING)
51
+
52
+
53
+ default_message_pool.register_message("spql", "TableOpts", TableOpts)
54
+
55
+
56
+ @dataclass(eq=False, repr=False)
57
+ class TextDTypeOpts(betterproto2.Message):
58
+ tokenizer: "str | None" = betterproto2.field(1, betterproto2.TYPE_STRING, optional=True)
59
+
60
+
61
+ default_message_pool.register_message("spql", "TextDTypeOpts", TextDTypeOpts)