corvic-engine 0.3.0rc44__cp38-abi3-win_amd64.whl → 0.3.0rc46__cp38-abi3-win_amd64.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.
- corvic/engine/_native.pyd +0 -0
- corvic/model/__init__.py +7 -1
- corvic/model/_base_model.py +35 -42
- corvic/model/_feature_view.py +43 -43
- corvic/model/_pipeline.py +2 -14
- corvic/model/_proto_orm_convert.py +242 -239
- corvic/model/_resource.py +2 -7
- corvic/model/_source.py +14 -16
- corvic/model/_space.py +330 -362
- corvic/orm/__init__.py +37 -223
- corvic/system/storage.py +1 -1
- corvic/system_sqlite/fs_blob_store.py +9 -3
- corvic/system_sqlite/rdbms_blob_store.py +3 -2
- {corvic_engine-0.3.0rc44.dist-info → corvic_engine-0.3.0rc46.dist-info}/METADATA +1 -1
- {corvic_engine-0.3.0rc44.dist-info → corvic_engine-0.3.0rc46.dist-info}/RECORD +19 -19
- corvic_generated/model/v1alpha/models_pb2.py +23 -33
- corvic_generated/model/v1alpha/models_pb2.pyi +8 -68
- {corvic_engine-0.3.0rc44.dist-info → corvic_engine-0.3.0rc46.dist-info}/WHEEL +0 -0
- {corvic_engine-0.3.0rc44.dist-info → corvic_engine-0.3.0rc46.dist-info}/licenses/LICENSE +0 -0
corvic/orm/__init__.py
CHANGED
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|
4
4
|
|
5
5
|
import sqlalchemy as sa
|
6
6
|
from sqlalchemy import orm as sa_orm
|
7
|
-
from sqlalchemy.orm.collections import attribute_mapped_collection
|
8
7
|
|
9
8
|
from corvic.orm._proto_columns import ProtoMessageDecorator
|
10
9
|
from corvic.orm.base import Base, OrgBase
|
@@ -56,20 +55,18 @@ from corvic_generated.orm.v1 import (
|
|
56
55
|
)
|
57
56
|
from corvic_generated.status.v1 import event_pb2
|
58
57
|
|
58
|
+
# NOTE: The only safe use of "sa_orm.relationship" uses the args:
|
59
|
+
# `viewonly=True` and `init=False`. Writes quickly become
|
60
|
+
# a complex mess when implementers of commit need to reason about
|
61
|
+
# which sub-object should be updated.
|
62
|
+
#
|
63
|
+
# Rather, classes in corvic.model define their own commit protocols,
|
64
|
+
# and if sub-orm-model updates are required they are explicit.
|
65
|
+
|
59
66
|
|
60
67
|
class Org(SoftDeleteMixin, OrgBase):
|
61
68
|
"""An organization it a top level grouping of resources."""
|
62
69
|
|
63
|
-
rooms: sa_orm.Mapped[dict[str, Room]] = sa_orm.relationship(
|
64
|
-
collection_class=attribute_mapped_collection("room_key"),
|
65
|
-
cascade="all",
|
66
|
-
init=False,
|
67
|
-
default_factory=dict,
|
68
|
-
)
|
69
|
-
sources: sa_orm.Mapped[list[Source]] = sa_orm.relationship(
|
70
|
-
collection_class=list, cascade="all", init=True, default_factory=list
|
71
|
-
)
|
72
|
-
|
73
70
|
|
74
71
|
class Room(BelongsToOrgMixin, SoftDeleteMixin, Base):
|
75
72
|
"""A Room is a logical collection of Documents."""
|
@@ -79,26 +76,6 @@ class Room(BelongsToOrgMixin, SoftDeleteMixin, Base):
|
|
79
76
|
|
80
77
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
81
78
|
id: sa_orm.Mapped[RoomID | None] = primary_key_identity_column()
|
82
|
-
org: sa_orm.Mapped[Org] = sa_orm.relationship(back_populates="rooms", init=False)
|
83
|
-
|
84
|
-
feature_views: sa_orm.Mapped[dict[str, FeatureView]] = sa_orm.relationship(
|
85
|
-
collection_class=attribute_mapped_collection("feature_view_key"),
|
86
|
-
cascade="all",
|
87
|
-
init=False,
|
88
|
-
default_factory=dict,
|
89
|
-
)
|
90
|
-
sources: sa_orm.Mapped[dict[str, Source]] = sa_orm.relationship(
|
91
|
-
collection_class=attribute_mapped_collection("source_key"),
|
92
|
-
cascade="all",
|
93
|
-
init=False,
|
94
|
-
default_factory=dict,
|
95
|
-
)
|
96
|
-
spaces: sa_orm.Mapped[dict[str, Space]] = sa_orm.relationship(
|
97
|
-
collection_class=attribute_mapped_collection("space_key"),
|
98
|
-
cascade="all",
|
99
|
-
init=False,
|
100
|
-
default_factory=dict,
|
101
|
-
)
|
102
79
|
|
103
80
|
@property
|
104
81
|
def room_key(self):
|
@@ -145,19 +122,8 @@ class Resource(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
145
122
|
latest_event: sa_orm.Mapped[event_pb2.Event | None] = sa_orm.mapped_column(
|
146
123
|
default=None, nullable=True
|
147
124
|
)
|
148
|
-
|
149
|
-
|
150
|
-
sa_orm.relationship(
|
151
|
-
back_populates="resource",
|
152
|
-
cascade="save-update, merge, delete, delete-orphan",
|
153
|
-
default_factory=list,
|
154
|
-
)
|
155
|
-
)
|
156
|
-
pipeline_input_refs: sa_orm.Mapped[list[PipelineInput]] = sa_orm.relationship(
|
157
|
-
viewonly=True,
|
158
|
-
back_populates="resource",
|
159
|
-
default_factory=list,
|
160
|
-
cascade="save-update, merge, delete, delete-orphan",
|
125
|
+
pipeline_ref: sa_orm.Mapped[PipelineInput | None] = sa_orm.relationship(
|
126
|
+
init=False, viewonly=True
|
161
127
|
)
|
162
128
|
|
163
129
|
|
@@ -172,25 +138,11 @@ class Source(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
172
138
|
table_op_graph: sa_orm.Mapped[table_pb2.TableComputeOp] = sa_orm.mapped_column()
|
173
139
|
id: sa_orm.Mapped[SourceID | None] = primary_key_identity_column()
|
174
140
|
|
175
|
-
resource_associations: sa_orm.Mapped[list[SourceResourceAssociation]] = (
|
176
|
-
sa_orm.relationship(
|
177
|
-
back_populates="source",
|
178
|
-
cascade="save-update, merge, delete, delete-orphan",
|
179
|
-
default_factory=list,
|
180
|
-
)
|
181
|
-
)
|
182
|
-
org: sa_orm.Mapped[Org] = sa_orm.relationship(back_populates="sources", init=False)
|
183
|
-
room: sa_orm.Mapped[Room] = sa_orm.relationship(
|
184
|
-
back_populates="sources", init=False
|
185
|
-
)
|
186
141
|
source_files: sa_orm.Mapped[common_pb2.BlobUrlList | None] = sa_orm.mapped_column(
|
187
142
|
default=None
|
188
143
|
)
|
189
|
-
|
190
|
-
viewonly=True
|
191
|
-
back_populates="source",
|
192
|
-
default_factory=list,
|
193
|
-
cascade="save-update, merge, delete, delete-orphan",
|
144
|
+
pipeline_ref: sa_orm.Mapped[PipelineOutput | None] = sa_orm.relationship(
|
145
|
+
init=False, viewonly=True
|
194
146
|
)
|
195
147
|
|
196
148
|
@property
|
@@ -212,16 +164,14 @@ class Pipeline(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
212
164
|
id: sa_orm.Mapped[PipelineID | None] = primary_key_identity_column()
|
213
165
|
|
214
166
|
inputs: sa_orm.Mapped[list[PipelineInput]] = sa_orm.relationship(
|
215
|
-
back_populates="pipeline",
|
216
167
|
viewonly=True,
|
217
|
-
|
168
|
+
init=False,
|
218
169
|
default_factory=list,
|
219
170
|
)
|
220
171
|
|
221
172
|
outputs: sa_orm.Mapped[list[PipelineOutput]] = sa_orm.relationship(
|
222
|
-
back_populates="pipeline",
|
223
173
|
viewonly=True,
|
224
|
-
|
174
|
+
init=False,
|
225
175
|
default_factory=list,
|
226
176
|
)
|
227
177
|
|
@@ -232,20 +182,15 @@ class PipelineInput(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
232
182
|
__tablename__ = "pipeline_input"
|
233
183
|
__table_args__ = (sa.UniqueConstraint("name", "pipeline_id"),)
|
234
184
|
|
235
|
-
|
236
|
-
back_populates="inputs",
|
237
|
-
)
|
238
|
-
resource: sa_orm.Mapped[Resource] = sa_orm.relationship(
|
239
|
-
back_populates="pipeline_input_refs",
|
240
|
-
)
|
185
|
+
resource: sa_orm.Mapped[Resource] = sa_orm.relationship(viewonly=True, init=False)
|
241
186
|
name: sa_orm.Mapped[str]
|
242
187
|
"""A name the pipeline uses to refer to this input."""
|
243
188
|
|
244
189
|
pipeline_id: sa_orm.Mapped[PipelineID] = primary_key_foreign_column(
|
245
|
-
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
190
|
+
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
246
191
|
)
|
247
192
|
resource_id: sa_orm.Mapped[ResourceID] = primary_key_foreign_column(
|
248
|
-
ForeignKey(Resource).make(ondelete="CASCADE")
|
193
|
+
ForeignKey(Resource).make(ondelete="CASCADE")
|
249
194
|
)
|
250
195
|
|
251
196
|
|
@@ -255,41 +200,15 @@ class PipelineOutput(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
255
200
|
__tablename__ = "pipeline_output"
|
256
201
|
__table_args__ = (sa.UniqueConstraint("name", "pipeline_id"),)
|
257
202
|
|
258
|
-
|
259
|
-
back_populates="outputs",
|
260
|
-
)
|
261
|
-
source: sa_orm.Mapped[Source] = sa_orm.relationship(
|
262
|
-
back_populates="pipeline_output_refs",
|
263
|
-
)
|
203
|
+
source: sa_orm.Mapped[Source] = sa_orm.relationship(viewonly=True, init=False)
|
264
204
|
name: sa_orm.Mapped[str]
|
265
205
|
"""A name the pipeline uses to refer to this output."""
|
266
206
|
|
267
207
|
pipeline_id: sa_orm.Mapped[PipelineID] = primary_key_foreign_column(
|
268
|
-
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
208
|
+
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
269
209
|
)
|
270
210
|
source_id: sa_orm.Mapped[SourceID] = primary_key_foreign_column(
|
271
|
-
ForeignKey(Source).make(ondelete="CASCADE")
|
272
|
-
)
|
273
|
-
|
274
|
-
|
275
|
-
class SourceResourceAssociation(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
276
|
-
__tablename__ = "source_resource_association"
|
277
|
-
|
278
|
-
source_id: sa_orm.Mapped[SourceID | None] = (
|
279
|
-
# this should be legal but pyright complains that it makes Source depend
|
280
|
-
# on itself
|
281
|
-
primary_key_foreign_column(ForeignKey(Source).make())
|
282
|
-
)
|
283
|
-
resource_id: sa_orm.Mapped[ResourceID | None] = (
|
284
|
-
# this should be legal but pyright complains that it makes Resource depend
|
285
|
-
# on itself
|
286
|
-
primary_key_foreign_column(ForeignKey(Resource).make())
|
287
|
-
)
|
288
|
-
source: sa_orm.Mapped[Source] = sa_orm.relationship(
|
289
|
-
back_populates="resource_associations", init=False
|
290
|
-
)
|
291
|
-
resource: sa_orm.Mapped[Resource] = sa_orm.relationship(
|
292
|
-
back_populates="source_associations", init=False
|
211
|
+
ForeignKey(Source).make(ondelete="CASCADE")
|
293
212
|
)
|
294
213
|
|
295
214
|
|
@@ -303,10 +222,6 @@ class FeatureView(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
303
222
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
304
223
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default="")
|
305
224
|
|
306
|
-
room: sa_orm.Mapped[Room] = sa_orm.relationship(
|
307
|
-
back_populates="feature_views", init=False
|
308
|
-
)
|
309
|
-
|
310
225
|
feature_view_output: sa_orm.Mapped[feature_view_pb2.FeatureViewOutput | None] = (
|
311
226
|
sa_orm.mapped_column(default_factory=feature_view_pb2.FeatureViewOutput)
|
312
227
|
)
|
@@ -316,13 +231,9 @@ class FeatureView(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
316
231
|
return self.name
|
317
232
|
|
318
233
|
feature_view_sources: sa_orm.Mapped[list[FeatureViewSource]] = sa_orm.relationship(
|
319
|
-
|
234
|
+
viewonly=True,
|
235
|
+
init=False,
|
320
236
|
default_factory=list,
|
321
|
-
back_populates="feature_view",
|
322
|
-
)
|
323
|
-
|
324
|
-
spaces: sa_orm.Mapped[list[Space]] = sa_orm.relationship(
|
325
|
-
init=False, default_factory=list
|
326
237
|
)
|
327
238
|
|
328
239
|
|
@@ -332,11 +243,12 @@ class FeatureViewSource(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
332
243
|
__tablename__ = "feature_view_source"
|
333
244
|
|
334
245
|
table_op_graph: sa_orm.Mapped[table_pb2.TableComputeOp] = sa_orm.mapped_column()
|
335
|
-
id: sa_orm.Mapped[FeatureViewSourceID | None] = primary_key_identity_column()
|
336
|
-
drop_disconnected: sa_orm.Mapped[bool] = sa_orm.mapped_column(default=False)
|
337
246
|
feature_view_id: sa_orm.Mapped[FeatureViewID] = sa_orm.mapped_column(
|
338
|
-
ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
247
|
+
ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
248
|
+
nullable=False,
|
339
249
|
)
|
250
|
+
id: sa_orm.Mapped[FeatureViewSourceID | None] = primary_key_identity_column()
|
251
|
+
drop_disconnected: sa_orm.Mapped[bool] = sa_orm.mapped_column(default=False)
|
340
252
|
# this should be legal but pyright complains that it makes Source depend
|
341
253
|
# on itself
|
342
254
|
source_id: sa_orm.Mapped[SourceID] = sa_orm.mapped_column(
|
@@ -344,9 +256,8 @@ class FeatureViewSource(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
344
256
|
nullable=False,
|
345
257
|
default=None,
|
346
258
|
)
|
347
|
-
source: sa_orm.Mapped[Source] = sa_orm.relationship(
|
348
|
-
|
349
|
-
init=True, default=None
|
259
|
+
source: sa_orm.Mapped[Source] = sa_orm.relationship(
|
260
|
+
init=True, viewonly=True, default=None
|
350
261
|
)
|
351
262
|
|
352
263
|
|
@@ -356,10 +267,6 @@ class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
356
267
|
__tablename__ = "space"
|
357
268
|
__table_args__ = (sa.UniqueConstraint("name", "room_id"),)
|
358
269
|
|
359
|
-
room: sa_orm.Mapped[Room] = sa_orm.relationship(
|
360
|
-
back_populates="spaces", init=True, default=None
|
361
|
-
)
|
362
|
-
|
363
270
|
id: sa_orm.Mapped[SpaceID | None] = primary_key_identity_column()
|
364
271
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
365
272
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default="")
|
@@ -374,15 +281,15 @@ class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
374
281
|
)
|
375
282
|
auto_sync: sa_orm.Mapped[bool | None] = sa_orm.mapped_column(default=None)
|
376
283
|
feature_view: sa_orm.Mapped[FeatureView] = sa_orm.relationship(
|
377
|
-
init=
|
284
|
+
init=False,
|
378
285
|
default=None,
|
379
|
-
|
286
|
+
viewonly=True,
|
380
287
|
)
|
381
288
|
|
382
289
|
agent_associations: sa_orm.Mapped[list[AgentSpaceAssociation]] = (
|
383
290
|
sa_orm.relationship(
|
384
|
-
|
385
|
-
|
291
|
+
init=False,
|
292
|
+
viewonly=True,
|
386
293
|
default_factory=list,
|
387
294
|
)
|
388
295
|
)
|
@@ -392,7 +299,7 @@ class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
392
299
|
return self.name
|
393
300
|
|
394
301
|
|
395
|
-
class SpaceRun(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
302
|
+
class SpaceRun(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
396
303
|
"""A Space run."""
|
397
304
|
|
398
305
|
__tablename__ = "space_run"
|
@@ -402,9 +309,9 @@ class SpaceRun(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
402
309
|
default_factory=table_pb2.TableComputeOp
|
403
310
|
)
|
404
311
|
space_id: sa_orm.Mapped[SpaceID] = sa_orm.mapped_column(
|
405
|
-
ForeignKey(Space).make(ondelete="CASCADE"), nullable=False
|
312
|
+
ForeignKey(Space).make(ondelete="CASCADE"), nullable=False
|
406
313
|
)
|
407
|
-
space: sa_orm.Mapped[Space] = sa_orm.relationship(init=
|
314
|
+
space: sa_orm.Mapped[Space] = sa_orm.relationship(init=False, viewonly=True)
|
408
315
|
result_url: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
|
409
316
|
coordinates_urls: sa_orm.Mapped[common_pb2.BlobUrlList | None] = (
|
410
317
|
sa_orm.mapped_column(default=None)
|
@@ -443,20 +350,9 @@ class Agent(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
443
350
|
parameters: sa_orm.Mapped[agent_pb2.AgentParameters | None] = sa_orm.mapped_column(
|
444
351
|
default=None
|
445
352
|
)
|
446
|
-
messages: sa_orm.Mapped[dict[str, MessageEntry]] = sa_orm.relationship(
|
447
|
-
collection_class=attribute_mapped_collection("entry_id"),
|
448
|
-
cascade="all",
|
449
|
-
init=False,
|
450
|
-
default_factory=dict,
|
451
|
-
viewonly=True,
|
452
|
-
)
|
453
353
|
|
454
354
|
space_associations: sa_orm.Mapped[list[AgentSpaceAssociation]] = (
|
455
|
-
sa_orm.relationship(
|
456
|
-
back_populates="agent",
|
457
|
-
cascade="save-update, merge, delete, delete-orphan",
|
458
|
-
default_factory=list,
|
459
|
-
)
|
355
|
+
sa_orm.relationship(default_factory=list, init=False, viewonly=True)
|
460
356
|
)
|
461
357
|
|
462
358
|
|
@@ -469,89 +365,10 @@ class AgentSpaceAssociation(BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
|
469
365
|
space_id: sa_orm.Mapped[SpaceID] = primary_key_foreign_column(
|
470
366
|
ForeignKey(Space).make()
|
471
367
|
)
|
472
|
-
agent: sa_orm.Mapped[Agent] = sa_orm.relationship(
|
473
|
-
back_populates="space_associations", init=False
|
474
|
-
)
|
475
368
|
space: sa_orm.Mapped[Space] = sa_orm.relationship(
|
476
|
-
back_populates="agent_associations", init=False
|
477
|
-
)
|
478
|
-
|
479
|
-
|
480
|
-
class UserMessage(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
481
|
-
"""A message sent by an user."""
|
482
|
-
|
483
|
-
__tablename__ = "user_message"
|
484
|
-
|
485
|
-
message_entry: sa_orm.Mapped[MessageEntry] = sa_orm.relationship(
|
486
|
-
init=True, default=None
|
487
|
-
)
|
488
|
-
|
489
|
-
id: sa_orm.Mapped[UserMessageID | None] = primary_key_identity_column()
|
490
|
-
|
491
|
-
message: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
|
492
|
-
|
493
|
-
|
494
|
-
class AgentMessage(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
495
|
-
"""A message sent by an agent."""
|
496
|
-
|
497
|
-
__tablename__ = "agent_message"
|
498
|
-
message_metadata: sa_orm.Mapped[common_pb2.AgentMessageMetadata | None] = (
|
499
|
-
sa_orm.mapped_column(
|
500
|
-
default_factory=lambda: common_pb2.AgentMessageMetadata(
|
501
|
-
message_reaction=common_pb2.MessageReaction.MESSAGE_REACTION_UNSPECIFIED
|
502
|
-
)
|
503
|
-
)
|
504
|
-
)
|
505
|
-
id: sa_orm.Mapped[AgentMessageID | None] = primary_key_identity_column()
|
506
|
-
|
507
|
-
message_entry: sa_orm.Mapped[MessageEntry] = sa_orm.relationship(
|
508
|
-
init=True, default=None
|
369
|
+
back_populates="agent_associations", init=False, viewonly=True
|
509
370
|
)
|
510
371
|
|
511
|
-
user_message_id: sa_orm.Mapped[UserMessageID | None] = sa_orm.mapped_column(
|
512
|
-
ForeignKey(UserMessage).make(ondelete="CASCADE"), init=True, default=None
|
513
|
-
)
|
514
|
-
message: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
|
515
|
-
policy: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
|
516
|
-
context: sa_orm.Mapped[str | None] = sa_orm.mapped_column(sa.Text, default=None)
|
517
|
-
retrieved_entities: sa_orm.Mapped[common_pb2.RetrievedEntities | None] = (
|
518
|
-
sa_orm.mapped_column(default=None)
|
519
|
-
)
|
520
|
-
|
521
|
-
|
522
|
-
class MessageEntry(SoftDeleteMixin, BelongsToOrgMixin, BelongsToRoomMixin, Base):
|
523
|
-
"""A message either sent by an Agent or an User."""
|
524
|
-
|
525
|
-
__tablename__ = "message_entry"
|
526
|
-
|
527
|
-
id: sa_orm.Mapped[MessageEntryID | None] = primary_key_identity_column()
|
528
|
-
|
529
|
-
agent_id: sa_orm.Mapped[AgentID] = sa_orm.mapped_column(
|
530
|
-
ForeignKey(Agent).make(ondelete="CASCADE"),
|
531
|
-
nullable=True,
|
532
|
-
init=True,
|
533
|
-
default=None,
|
534
|
-
)
|
535
|
-
|
536
|
-
agent_message_id: sa_orm.Mapped[AgentMessageID | None] = sa_orm.mapped_column(
|
537
|
-
ForeignKey(AgentMessage).make(ondelete="CASCADE"), default=None
|
538
|
-
)
|
539
|
-
user_message_id: sa_orm.Mapped[UserMessageID | None] = sa_orm.mapped_column(
|
540
|
-
ForeignKey(UserMessage).make(ondelete="CASCADE"), default=None
|
541
|
-
)
|
542
|
-
|
543
|
-
agent_message: sa_orm.Mapped[AgentMessage | None] = sa_orm.relationship(
|
544
|
-
back_populates="message_entry", init=True, default=None
|
545
|
-
)
|
546
|
-
|
547
|
-
user_message: sa_orm.Mapped[UserMessage | None] = sa_orm.relationship(
|
548
|
-
back_populates="message_entry", init=True, default=None
|
549
|
-
)
|
550
|
-
|
551
|
-
@property
|
552
|
-
def entry_id(self):
|
553
|
-
return self.id
|
554
|
-
|
555
372
|
|
556
373
|
class CompletionModel(SoftDeleteMixin, BelongsToOrgMixin, Base):
|
557
374
|
"""A customer's custom completion model definition."""
|
@@ -594,7 +411,6 @@ ID = (
|
|
594
411
|
__all__ = [
|
595
412
|
"Agent",
|
596
413
|
"AgentID",
|
597
|
-
"AgentMessage",
|
598
414
|
"AgentMessageID",
|
599
415
|
"Base",
|
600
416
|
"BaseID",
|
@@ -610,7 +426,6 @@ __all__ = [
|
|
610
426
|
"FeatureViewSourceID",
|
611
427
|
"ID",
|
612
428
|
"InvalidORMIdentifierError",
|
613
|
-
"MessageEntry",
|
614
429
|
"MessageEntryID",
|
615
430
|
"Org",
|
616
431
|
"OrgID",
|
@@ -630,7 +445,6 @@ __all__ = [
|
|
630
445
|
"SpaceParametersID",
|
631
446
|
"SpaceRun",
|
632
447
|
"SpaceRunID",
|
633
|
-
"UserMessage",
|
634
448
|
"UserMessageID",
|
635
449
|
"primary_key_foreign_column",
|
636
450
|
"primary_key_identity_column",
|
corvic/system/storage.py
CHANGED
@@ -228,10 +228,16 @@ class FSBucket:
|
|
228
228
|
def create(self) -> None:
|
229
229
|
return self.path().mkdir()
|
230
230
|
|
231
|
-
def list_blobs(self) -> Iterator[FSBlob]:
|
231
|
+
def list_blobs(self, prefix: str | None = None) -> Iterator[FSBlob]:
|
232
232
|
for entry in self.path().glob("*"):
|
233
|
-
if
|
234
|
-
|
233
|
+
if entry.name.endswith(".metadata"):
|
234
|
+
continue
|
235
|
+
true_name = base64.urlsafe_b64decode(entry.name.encode("utf-8")).decode(
|
236
|
+
"utf-8"
|
237
|
+
)
|
238
|
+
if prefix and not true_name.startswith(prefix):
|
239
|
+
continue
|
240
|
+
yield FSBlob.from_path(self, entry)
|
235
241
|
|
236
242
|
def path(self) -> Path:
|
237
243
|
return self.client.root() / self.name
|
@@ -277,14 +277,15 @@ class RDBMSBucket:
|
|
277
277
|
session.add(ORMBucket(name=self._name))
|
278
278
|
session.commit()
|
279
279
|
|
280
|
-
def list_blobs(self) -> Iterator[RDBMSBlob]:
|
280
|
+
def list_blobs(self, prefix: str | None = None) -> Iterator[RDBMSBlob]:
|
281
281
|
def get_blobs():
|
282
282
|
with self._client.db_session() as session:
|
283
283
|
orm_self = self._to_orm(session)
|
284
284
|
if not orm_self:
|
285
285
|
raise ValueError("bucket does not exist")
|
286
286
|
for blob in orm_self.blobs:
|
287
|
-
|
287
|
+
if not prefix or blob.name.startswith(prefix):
|
288
|
+
yield RDBMSBlob(self, blob.name)
|
288
289
|
|
289
290
|
return iter(list(get_blobs()))
|
290
291
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
corvic_engine-0.3.
|
2
|
-
corvic_engine-0.3.
|
3
|
-
corvic_engine-0.3.
|
1
|
+
corvic_engine-0.3.0rc46.dist-info/METADATA,sha256=_LLt2PwaSBy5Jy3CuT9BHywURG_SkNOW0g4yJ9yahC8,1876
|
2
|
+
corvic_engine-0.3.0rc46.dist-info/WHEEL,sha256=_g1M2QM3kt1Ssm_sHOg_3TUY7GxNE2Ueyslb9ZDtPwk,94
|
3
|
+
corvic_engine-0.3.0rc46.dist-info/licenses/LICENSE,sha256=DSS1OD0oIgssKOmAzkMRBv5jvvVuZQbrIv8lpl9DXY8,1035
|
4
4
|
corvic/context/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
corvic/context/__init__.py,sha256=zBnPiP-tStGSVMG_0-G_0ay6-yIX2aerW_oYRzAex74,1702
|
6
6
|
corvic/embed/node2vec.py,sha256=JnYb8f2g4XhF6LL2TjpMxLfKhn_Yp1AzptsWwrKQWgc,11146
|
@@ -14,19 +14,19 @@ corvic/engine/_native.pyi,sha256=KYMPtvXqHZ-jMgZohLf4se3rr-rBpCihmjANcr6s8ag,139
|
|
14
14
|
corvic/engine/__init__.py,sha256=XL4Vg7rNcBi29ccVelpeFizR9oJtGYXDn84W9zok9d4,975
|
15
15
|
corvic/model/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
corvic/model/_agent.py,sha256=WGdxu0oLHU7EEgBOMQ0UOnH2AIIUGfeH6VSQZgC0kEk,3621
|
17
|
-
corvic/model/_base_model.py,sha256=
|
17
|
+
corvic/model/_base_model.py,sha256=m4JkZu8QAoQEeHqzpMUlH08PGOjVZbqld4Rm0uW73QQ,8225
|
18
18
|
corvic/model/_completion_model.py,sha256=uoqF7hwxzGXXqSPZT_CIcNBSDmYhcxMotpGPucWH6Q0,6656
|
19
19
|
corvic/model/_defaults.py,sha256=yoKPPSmYJCE5YAD5jLTEmT4XNf_zXoggNK-uyG8MfVs,1524
|
20
20
|
corvic/model/_errors.py,sha256=Ctlq04SDwHzJPvLaL1rzqzwVqf2b50EILfW3cH4vnh8,261
|
21
21
|
corvic/model/_feature_type.py,sha256=Y-_-wa9fv7XaCAkxfjjoCLxxK2Ftfba-PMefD7bNXzs,917
|
22
|
-
corvic/model/_feature_view.py,sha256=
|
23
|
-
corvic/model/_pipeline.py,sha256=
|
24
|
-
corvic/model/_proto_orm_convert.py,sha256=
|
25
|
-
corvic/model/_resource.py,sha256=
|
22
|
+
corvic/model/_feature_view.py,sha256=kM8kMzb1oxAgIOMVmv6twZ-JLeP2NopdsKHCiKjuNIE,49700
|
23
|
+
corvic/model/_pipeline.py,sha256=A_q_nWm6UBN-AKlbQkhWNMG2r-uW0IR6vGJbhYv7z3k,17578
|
24
|
+
corvic/model/_proto_orm_convert.py,sha256=6CWe_b-L7JBS4Pb_SjUeuiuczWh-nPw0jElQIMOl_UA,25029
|
25
|
+
corvic/model/_resource.py,sha256=O93gy2r4HjsZzVUahrGbLGmxI7sfSVQCvwvCLN3nSXQ,7097
|
26
26
|
corvic/model/_room.py,sha256=57MiBfj8hZcmUfq2PeECrOWDpBZAOSjnVqNUIGXOy2Q,2898
|
27
|
-
corvic/model/_source.py,sha256=
|
28
|
-
corvic/model/_space.py,sha256=
|
29
|
-
corvic/model/__init__.py,sha256=
|
27
|
+
corvic/model/_source.py,sha256=JBCk1I6u_rUKPiB4Fvtl7uVm0Jx0LF1oWNd1-Wn_sbI,9412
|
28
|
+
corvic/model/_space.py,sha256=_qXYefPwwL6jGY3zUBYWW9X3ZE4FEuiOksPoCuG_O1Q,33928
|
29
|
+
corvic/model/__init__.py,sha256=IzYwjTcZE8MgmCESoj7W518N2CmZgcUFbzBhnpvNers,2526
|
30
30
|
corvic/op_graph/aggregation.py,sha256=8X6vqXD7dLHrhYJU0BqmhUsWGbzD1zSP5Db5VHdIru4,6187
|
31
31
|
corvic/op_graph/encoders.py,sha256=EhEmAiwgnXNiJ8NU0xm4deC7EZm80UzuzBL5MV140LQ,9217
|
32
32
|
corvic/op_graph/errors.py,sha256=I4NE5053d0deGm5xx5EmyP4f98qx42xnIsW1IA-2hy4,163
|
@@ -50,7 +50,7 @@ corvic/orm/keys.py,sha256=Ag6Xbpvxev-VByT1KJ8ChUn9vKVEzkkMXxrjvtADCtY,2182
|
|
50
50
|
corvic/orm/mixins.py,sha256=HfmzJ7LblHtddbbkDmv7nNWURL87Bnj8NeOnNbfmSN4,17794
|
51
51
|
corvic/orm/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
52
|
corvic/orm/_proto_columns.py,sha256=tcOu92UjFJFYZLasS6sWJQBDRK26yrnmpTii_LDY4iw,913
|
53
|
-
corvic/orm/__init__.py,sha256=
|
53
|
+
corvic/orm/__init__.py,sha256=3HLMICNB1iMyMS70tlvaap8WDrAfxqSxp7W1O-cnHc4,14656
|
54
54
|
corvic/pa_scalar/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
55
|
corvic/pa_scalar/_const.py,sha256=1nk6w3Y7crd3J5jSCq7DRVa1lcGk4H1RUr1l4NjnlzE,868
|
56
56
|
corvic/pa_scalar/_from_value.py,sha256=fS3TNPcPI3jAKGmcUIhn8rdqdQEAwgTLEneVxFUeK6M,27531
|
@@ -72,7 +72,7 @@ corvic/system/in_memory_executor.py,sha256=dYgcxbA_O0mM1pI19t2OXs8q5B4TX-NFacR7T
|
|
72
72
|
corvic/system/op_graph_executor.py,sha256=gXFnVkemS5EwNegJdU-xVAfMLPULqMFPF7d3EG3AD_U,3482
|
73
73
|
corvic/system/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
74
|
corvic/system/staging.py,sha256=K5P5moiuAMfPx7lxK4mArxeURBwKoyB6x9HGu9JJ16E,1846
|
75
|
-
corvic/system/storage.py,sha256=
|
75
|
+
corvic/system/storage.py,sha256=N4lXnoCFPg8JbUaI9fbpPY0nt3CgXFUc8sZteki_nRk,5671
|
76
76
|
corvic/system/_dimension_reduction.py,sha256=vyD8wOs0vE-hlVnCrBTjStTowAPWYREqnQ_bVuGYvis,2907
|
77
77
|
corvic/system/_embedder.py,sha256=0WO24IKi8VC8jsFdvNuzDsgNejyacQf6r9Q34jxhHc4,3844
|
78
78
|
corvic/system/_image_embedder.py,sha256=iQc3KlLcqrhP6K84hncHutThAN8Qd6K7K5dceHyU1TU,8373
|
@@ -80,9 +80,9 @@ corvic/system/_planner.py,sha256=HUf6UjCy1iHRrXfhU25w19TG4Ik3zVHhtzVcor0eTQY,788
|
|
80
80
|
corvic/system/_text_embedder.py,sha256=LH79_4RxhvssySHpkeEoZFgM4Sa5XAYSjoytdsuwWK4,3269
|
81
81
|
corvic/system/__init__.py,sha256=DBzMQ1QCO0OHo3w2LoibfgN1X3CLGBUxXjiExN2kyi0,2838
|
82
82
|
corvic/system_sqlite/client.py,sha256=ntDJtCDG1SDGUKI-BhCju4sdqd59Y8RucGZ8VmRvHuI,7142
|
83
|
-
corvic/system_sqlite/fs_blob_store.py,sha256=
|
83
|
+
corvic/system_sqlite/fs_blob_store.py,sha256=pYTMPiWYC6AUIdcgmRj8lvL7Chg82rf5dac6bKGaqL0,8461
|
84
84
|
corvic/system_sqlite/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
-
corvic/system_sqlite/rdbms_blob_store.py,sha256=
|
85
|
+
corvic/system_sqlite/rdbms_blob_store.py,sha256=gTP_tQfTVb3wzZkzo8ys1zaz0rSrERzb57rqMHVpuBA,10563
|
86
86
|
corvic/system_sqlite/staging.py,sha256=9chn6iXGmKAsurdiBzo0FSTyOmeDn7oCIq8fekbK67c,16878
|
87
87
|
corvic/system_sqlite/__init__.py,sha256=MQCUux08NcxFLghpWcZ95lt5AMabr-6sJRH-eSsTnqI,229
|
88
88
|
corvic/table/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -156,7 +156,7 @@ corvic_generated/ingest/v2/table_pb2.py,sha256=aTJHaliZm5DMtp7gslNxyn9uDagz-2-_e
|
|
156
156
|
corvic_generated/ingest/v2/table_pb2_grpc.py,sha256=tVs7wMWyAfvHcCQEiUOHLwaptKxgMFG6E7Ki9vNmmvQ,8151
|
157
157
|
corvic_generated/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
158
158
|
corvic_generated/model/v1alpha/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
159
|
-
corvic_generated/model/v1alpha/models_pb2.py,sha256=
|
159
|
+
corvic_generated/model/v1alpha/models_pb2.py,sha256=ncqP8kRV14sjRbL9KIjPB79J-eVFVULCNE1qq7RAMx0,8892
|
160
160
|
corvic_generated/model/v1alpha/models_pb2_grpc.py,sha256=_bXoS025FcWrXR1E_3Mh4GHB1RMvgz8lIpit-Awnf-s,163
|
161
161
|
corvic_generated/orm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
162
|
corvic_generated/orm/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -220,7 +220,7 @@ corvic_generated/ingest/v2/source_pb2.pyi,sha256=k7FdbgurQLk0JA1WiTUerznzxLv8b50
|
|
220
220
|
corvic_generated/ingest/v2/source_pb2_grpc.pyi,sha256=VG5gpql2SREHgqMC_ycT-QJBVpPeSYKOYS2COgGrZa4,6195
|
221
221
|
corvic_generated/ingest/v2/table_pb2.pyi,sha256=p22F8kv0HfM-9OzGP88bLofxmUtxfLR5eVN0HOxXiEo,4382
|
222
222
|
corvic_generated/ingest/v2/table_pb2_grpc.pyi,sha256=AEXYNtrU4xyENumcCrkD2FmFV7T1UVidxxeZ5pyE4Qc,4554
|
223
|
-
corvic_generated/model/v1alpha/models_pb2.pyi,sha256=
|
223
|
+
corvic_generated/model/v1alpha/models_pb2.pyi,sha256=eKV5BlocI0MRQuzPVN4eGFrjysyPco2dyszFo7s66ys,11462
|
224
224
|
corvic_generated/model/v1alpha/models_pb2_grpc.pyi,sha256=H9-ADaiKR9iyVZvmnXutZqWwRRCDxjUIktkfJrJFIHg,417
|
225
225
|
corvic_generated/orm/v1/agent_pb2.pyi,sha256=9AExLKFRvOJ1fSaOdZc3Src015uvNl-le2lSPatZjSQ,4575
|
226
226
|
corvic_generated/orm/v1/agent_pb2_grpc.pyi,sha256=H9-ADaiKR9iyVZvmnXutZqWwRRCDxjUIktkfJrJFIHg,417
|
@@ -244,5 +244,5 @@ corvic_generated/status/v1/event_pb2.pyi,sha256=eU-ibrYpvEAJSIDlSa62-bC96AQU1ykF
|
|
244
244
|
corvic_generated/status/v1/event_pb2_grpc.pyi,sha256=H9-ADaiKR9iyVZvmnXutZqWwRRCDxjUIktkfJrJFIHg,417
|
245
245
|
corvic_generated/status/v1/service_pb2.pyi,sha256=iXLR2FOKQJpBgvBzpD2kVwcYOCksP2aRwK4JYaI9CBw,558
|
246
246
|
corvic_generated/status/v1/service_pb2_grpc.pyi,sha256=OoAnaZ64FD0UTzPoRhYvQU8ecoilhHj3ySjSfHbVDaU,1501
|
247
|
-
corvic/engine/_native.pyd,sha256=
|
248
|
-
corvic_engine-0.3.
|
247
|
+
corvic/engine/_native.pyd,sha256=6ts0z2Hw7EtkPpwjGCBvZqq9Pg282NoTZk5EwiiLZtc,438272
|
248
|
+
corvic_engine-0.3.0rc46.dist-info/RECORD,,
|