corvic-engine 0.3.0rc77__tar.gz → 0.3.0rc78__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.
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/Cargo.lock +6 -6
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/Cargo.toml +1 -1
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/PKG-INFO +1 -1
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/pyproject.toml +3 -2
- {corvic_engine-0.3.0rc77/python/corvic/orm → corvic_engine-0.3.0rc78/python/corvic/eorm}/__init__.py +128 -110
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_base_model.py +24 -24
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_completion_model.py +9 -9
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_defaults.py +5 -5
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_feature_view.py +17 -17
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_pipeline.py +12 -12
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_proto_orm_convert.py +102 -100
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_resource.py +24 -24
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_room.py +10 -14
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_source.py +18 -18
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_space.py +21 -21
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/_schema.py +3 -3
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/feature_types.py +4 -4
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/ops.py +2 -2
- corvic_engine-0.3.0rc78/python/corvic/orm/__init__.py +281 -0
- corvic_engine-0.3.0rc78/python/corvic/orm/_soft_delete.py +218 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/ids.py +0 -69
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_embedder.py +2 -2
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/op_graph_executor.py +2 -2
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/storage.py +10 -8
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/client.py +10 -10
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/table/table.py +3 -3
- corvic_engine-0.3.0rc77/python/corvic/orm/base.py +0 -256
- corvic_engine-0.3.0rc77/python/corvic/orm/mixins.py +0 -480
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/LICENSE +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/README.md +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/Cargo.toml +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/buf/validate/validate_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/buf/validate/validate_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/buf/validate/validate_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/context/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/context/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embed/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embed/node2vec.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embed/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embedding_metric/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embedding_metric/embeddings.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/embedding_metric/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/engine/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/engine/_native.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/engine/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_errors.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/_feature_type.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/model/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/_transformations.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/aggregation.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/encoders.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/errors.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/row_filters/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/op_graph/sample_strategy.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/_proto_columns.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/errors.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/func/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/func/utc_func.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/func/uuid_func.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/keys.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/orm/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/_const.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/_from_value.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/_temporal.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/_to_value.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/_types.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/pa_scalar/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/proto_wrapper/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/proto_wrapper/_errors.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/proto_wrapper/_wrappers.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/proto_wrapper/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/result/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/result/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/sql/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/sql/parse_ops.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/sql/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_column_encoding.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_dimension_reduction.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_image_embedder.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_planner.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/_text_embedder.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/client.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/in_memory_executor.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system/staging.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/system_sqlite/staging.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/table/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/table/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/version/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/version/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/well_known_types/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic/well_known_types/py.typed +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/event_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc77 → corvic_engine-0.3.0rc78}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -16,7 +16,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
16
16
|
|
17
17
|
[[package]]
|
18
18
|
name = "corvic-engine"
|
19
|
-
version = "0.3.0-rc.
|
19
|
+
version = "0.3.0-rc.78"
|
20
20
|
dependencies = [
|
21
21
|
"numpy",
|
22
22
|
"pyo3",
|
@@ -57,7 +57,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
57
57
|
|
58
58
|
[[package]]
|
59
59
|
name = "engine-walk"
|
60
|
-
version = "0.3.0-rc.
|
60
|
+
version = "0.3.0-rc.78"
|
61
61
|
dependencies = [
|
62
62
|
"version_check",
|
63
63
|
]
|
@@ -82,9 +82,9 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
|
|
82
82
|
|
83
83
|
[[package]]
|
84
84
|
name = "matrixmultiply"
|
85
|
-
version = "0.3.
|
85
|
+
version = "0.3.10"
|
86
86
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
87
|
-
checksum = "
|
87
|
+
checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
|
88
88
|
dependencies = [
|
89
89
|
"autocfg",
|
90
90
|
"rawpointer",
|
@@ -293,9 +293,9 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
293
293
|
|
294
294
|
[[package]]
|
295
295
|
name = "syn"
|
296
|
-
version = "2.0.
|
296
|
+
version = "2.0.101"
|
297
297
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
298
|
-
checksum = "
|
298
|
+
checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
|
299
299
|
dependencies = [
|
300
300
|
"proc-macro2",
|
301
301
|
"quote",
|
@@ -18,7 +18,7 @@ authors = [
|
|
18
18
|
]
|
19
19
|
readme = "README.md"
|
20
20
|
description = "Seamless embedding generation and retrieval."
|
21
|
-
version = "0.3.0-rc.
|
21
|
+
version = "0.3.0-rc.78" # sync this with tool.poetry.version below
|
22
22
|
|
23
23
|
# TODO(ddn): Pull dependencies from tool.poetry.dependencies. We use maturin as
|
24
24
|
# the build system but poetry for the development environment.
|
@@ -72,7 +72,7 @@ packages = [
|
|
72
72
|
]
|
73
73
|
description = ""
|
74
74
|
authors = []
|
75
|
-
version = "0.3.0-rc.
|
75
|
+
version = "0.3.0-rc.78"
|
76
76
|
|
77
77
|
[tool.poetry.scripts]
|
78
78
|
check = "corvic_check.cli:main"
|
@@ -404,6 +404,7 @@ root_packages = [
|
|
404
404
|
"corvic.embed",
|
405
405
|
"corvic.embedding_metric",
|
406
406
|
"corvic.engine",
|
407
|
+
"corvic.eorm",
|
407
408
|
"corvic.model",
|
408
409
|
"corvic.op_graph",
|
409
410
|
"corvic.orm",
|
{corvic_engine-0.3.0rc77/python/corvic/orm → corvic_engine-0.3.0rc78/python/corvic/eorm}/__init__.py
RENAMED
@@ -1,52 +1,14 @@
|
|
1
|
-
"""
|
1
|
+
"""Engine Object-Relational Mappings."""
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
from datetime import datetime
|
6
|
+
from typing import TypeAlias
|
6
7
|
|
7
8
|
import sqlalchemy as sa
|
8
9
|
from sqlalchemy import orm as sa_orm
|
9
10
|
|
10
|
-
from corvic
|
11
|
-
from corvic.orm.base import Base, OrgBase
|
12
|
-
from corvic.orm.errors import (
|
13
|
-
DeletedObjectError,
|
14
|
-
InvalidORMIdentifierError,
|
15
|
-
RequestedObjectsForNobodyError,
|
16
|
-
)
|
17
|
-
from corvic.orm.ids import (
|
18
|
-
AgentID,
|
19
|
-
AgentMessageID,
|
20
|
-
BaseID,
|
21
|
-
BaseIDFromInt,
|
22
|
-
CompletionModelID,
|
23
|
-
FeatureViewID,
|
24
|
-
FeatureViewSourceID,
|
25
|
-
IntIDDecorator,
|
26
|
-
MessageEntryID,
|
27
|
-
OrgID,
|
28
|
-
PipelineID,
|
29
|
-
ResourceID,
|
30
|
-
RoomID,
|
31
|
-
SourceID,
|
32
|
-
SpaceID,
|
33
|
-
SpaceParametersID,
|
34
|
-
SpaceRunID,
|
35
|
-
UserMessageID,
|
36
|
-
)
|
37
|
-
from corvic.orm.keys import (
|
38
|
-
INT_PK_TYPE,
|
39
|
-
ForeignKey,
|
40
|
-
primary_key_foreign_column,
|
41
|
-
primary_key_identity_column,
|
42
|
-
primary_key_uuid_column,
|
43
|
-
)
|
44
|
-
from corvic.orm.mixins import (
|
45
|
-
BelongsToOrgMixin,
|
46
|
-
Session,
|
47
|
-
SoftDeleteMixin,
|
48
|
-
live_unique_constraint,
|
49
|
-
)
|
11
|
+
from corvic import orm
|
50
12
|
from corvic_generated.orm.v1 import (
|
51
13
|
common_pb2,
|
52
14
|
completion_model_pb2,
|
@@ -57,27 +19,87 @@ from corvic_generated.orm.v1 import (
|
|
57
19
|
)
|
58
20
|
from corvic_generated.status.v1 import event_pb2
|
59
21
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
22
|
+
OrgID: TypeAlias = orm.OrgID
|
23
|
+
|
24
|
+
|
25
|
+
class RoomID(orm.BaseIDFromInt):
|
26
|
+
"""A unique identifier for a room."""
|
27
|
+
|
28
|
+
|
29
|
+
class ResourceID(orm.BaseIDFromInt):
|
30
|
+
"""A unique identifier for a resource."""
|
31
|
+
|
32
|
+
|
33
|
+
class SourceID(orm.BaseIDFromInt):
|
34
|
+
"""A unique identifier for a source."""
|
35
|
+
|
36
|
+
|
37
|
+
class PipelineID(orm.BaseIDFromInt):
|
38
|
+
"""A unique identifier for a pipeline."""
|
39
|
+
|
67
40
|
|
41
|
+
class FeatureViewID(orm.BaseIDFromInt):
|
42
|
+
"""A unique identifier for a feature view."""
|
68
43
|
|
69
|
-
class Org(SoftDeleteMixin, OrgBase, kw_only=True):
|
70
|
-
"""An organization it a top level grouping of resources."""
|
71
44
|
|
45
|
+
class FeatureViewSourceID(orm.BaseIDFromInt):
|
46
|
+
"""A unique identifier for a source in a feature view."""
|
72
47
|
|
73
|
-
|
48
|
+
|
49
|
+
class SpaceID(orm.BaseIDFromInt):
|
50
|
+
"""A unique identifier for a space."""
|
51
|
+
|
52
|
+
|
53
|
+
class CompletionModelID(orm.BaseIDFromInt):
|
54
|
+
"""A unique identifier for a completion model."""
|
55
|
+
|
56
|
+
|
57
|
+
orm.Base.registry.update_type_annotation_map(
|
58
|
+
{
|
59
|
+
# proto message column types
|
60
|
+
common_pb2.BlobUrlList: orm.ProtoMessageDecorator(common_pb2.BlobUrlList()),
|
61
|
+
feature_view_pb2.FeatureViewOutput: orm.ProtoMessageDecorator(
|
62
|
+
feature_view_pb2.FeatureViewOutput()
|
63
|
+
),
|
64
|
+
common_pb2.AgentMessageMetadata: orm.ProtoMessageDecorator(
|
65
|
+
common_pb2.AgentMessageMetadata()
|
66
|
+
),
|
67
|
+
space_pb2.SpaceParameters: orm.ProtoMessageDecorator(
|
68
|
+
space_pb2.SpaceParameters()
|
69
|
+
),
|
70
|
+
table_pb2.TableComputeOp: orm.ProtoMessageDecorator(table_pb2.TableComputeOp()),
|
71
|
+
table_pb2.NamedTables: orm.ProtoMessageDecorator(table_pb2.NamedTables()),
|
72
|
+
common_pb2.RetrievedEntities: orm.ProtoMessageDecorator(
|
73
|
+
common_pb2.RetrievedEntities()
|
74
|
+
),
|
75
|
+
pipeline_pb2.PipelineTransformation: orm.ProtoMessageDecorator(
|
76
|
+
pipeline_pb2.PipelineTransformation()
|
77
|
+
),
|
78
|
+
event_pb2.Event: orm.ProtoMessageDecorator(event_pb2.Event()),
|
79
|
+
completion_model_pb2.CompletionModelParameters: orm.ProtoMessageDecorator(
|
80
|
+
completion_model_pb2.CompletionModelParameters()
|
81
|
+
),
|
82
|
+
# ID types
|
83
|
+
RoomID: orm.IntIDDecorator(RoomID()),
|
84
|
+
ResourceID: orm.IntIDDecorator(ResourceID()),
|
85
|
+
SourceID: orm.IntIDDecorator(SourceID()),
|
86
|
+
PipelineID: orm.IntIDDecorator(PipelineID()),
|
87
|
+
FeatureViewID: orm.IntIDDecorator(FeatureViewID()),
|
88
|
+
FeatureViewSourceID: orm.IntIDDecorator(FeatureViewSourceID()),
|
89
|
+
SpaceID: orm.IntIDDecorator(SpaceID()),
|
90
|
+
CompletionModelID: orm.IntIDDecorator(CompletionModelID()),
|
91
|
+
}
|
92
|
+
)
|
93
|
+
|
94
|
+
|
95
|
+
class Room(orm.BelongsToOrgMixin, orm.SoftDeleteMixin, orm.Base, kw_only=True):
|
74
96
|
"""A Room is a logical collection of Documents."""
|
75
97
|
|
76
98
|
__tablename__ = "room"
|
77
|
-
__table_args__ = (live_unique_constraint("name", "org_id"),)
|
99
|
+
__table_args__ = (orm.live_unique_constraint("name", "org_id"),)
|
78
100
|
|
79
101
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
80
|
-
id: sa_orm.Mapped[RoomID | None] = primary_key_identity_column()
|
102
|
+
id: sa_orm.Mapped[RoomID | None] = orm.primary_key_identity_column()
|
81
103
|
|
82
104
|
@property
|
83
105
|
def room_key(self):
|
@@ -86,27 +108,29 @@ class Room(BelongsToOrgMixin, SoftDeleteMixin, Base, kw_only=True):
|
|
86
108
|
|
87
109
|
class BelongsToRoomMixin(sa_orm.MappedAsDataclass):
|
88
110
|
room_id: sa_orm.Mapped[RoomID | None] = sa_orm.mapped_column(
|
89
|
-
ForeignKey(Room).make(ondelete="CASCADE"),
|
111
|
+
orm.ForeignKey(Room).make(ondelete="CASCADE"),
|
90
112
|
nullable=True,
|
91
113
|
default=None,
|
92
114
|
)
|
93
115
|
|
94
116
|
|
95
|
-
class DefaultObjects(Base, kw_only=True):
|
117
|
+
class DefaultObjects(orm.Base, kw_only=True):
|
96
118
|
"""Holds the identifiers for default objects."""
|
97
119
|
|
98
120
|
__tablename__ = "default_objects"
|
99
121
|
default_org: sa_orm.Mapped[OrgID | None] = sa_orm.mapped_column(
|
100
|
-
ForeignKey(Org).make(ondelete="CASCADE"),
|
122
|
+
orm.ForeignKey(orm.Org).make(ondelete="CASCADE"),
|
101
123
|
nullable=False,
|
102
124
|
)
|
103
125
|
default_room: sa_orm.Mapped[RoomID | None] = sa_orm.mapped_column(
|
104
|
-
ForeignKey(Room).make(ondelete="CASCADE"), nullable=True, default=None
|
126
|
+
orm.ForeignKey(Room).make(ondelete="CASCADE"), nullable=True, default=None
|
127
|
+
)
|
128
|
+
version: sa_orm.Mapped[int | None] = orm.primary_key_identity_column(
|
129
|
+
type_=orm.INT_PK_TYPE
|
105
130
|
)
|
106
|
-
version: sa_orm.Mapped[int | None] = primary_key_identity_column(type_=INT_PK_TYPE)
|
107
131
|
|
108
132
|
|
109
|
-
class Resource(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
133
|
+
class Resource(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
110
134
|
"""A Resource is a reference to some durably stored file.
|
111
135
|
|
112
136
|
E.g., a document could be a PDF file, an image, or a text transcript of a
|
@@ -122,7 +146,7 @@ class Resource(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
122
146
|
size: sa_orm.Mapped[int] = sa_orm.mapped_column(nullable=True)
|
123
147
|
original_path: sa_orm.Mapped[str] = sa_orm.mapped_column(nullable=True)
|
124
148
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(nullable=True)
|
125
|
-
id: sa_orm.Mapped[ResourceID | None] = primary_key_identity_column()
|
149
|
+
id: sa_orm.Mapped[ResourceID | None] = orm.primary_key_identity_column()
|
126
150
|
latest_event: sa_orm.Mapped[event_pb2.Event | None] = sa_orm.mapped_column(
|
127
151
|
default=None, nullable=True
|
128
152
|
)
|
@@ -134,7 +158,7 @@ class Resource(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
134
158
|
)
|
135
159
|
|
136
160
|
|
137
|
-
class Source(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
161
|
+
class Source(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
138
162
|
"""A source."""
|
139
163
|
|
140
164
|
__tablename__ = "source"
|
@@ -143,7 +167,7 @@ class Source(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
143
167
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text)
|
144
168
|
# protobuf describing the operations required to construct a table
|
145
169
|
table_op_graph: sa_orm.Mapped[table_pb2.TableComputeOp] = sa_orm.mapped_column()
|
146
|
-
id: sa_orm.Mapped[SourceID | None] = primary_key_identity_column()
|
170
|
+
id: sa_orm.Mapped[SourceID | None] = orm.primary_key_identity_column()
|
147
171
|
|
148
172
|
source_files: sa_orm.Mapped[common_pb2.BlobUrlList | None] = sa_orm.mapped_column(
|
149
173
|
default=None
|
@@ -157,7 +181,7 @@ class Source(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
157
181
|
return self.name
|
158
182
|
|
159
183
|
|
160
|
-
class Pipeline(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
184
|
+
class Pipeline(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
161
185
|
"""A resource to source pipeline."""
|
162
186
|
|
163
187
|
__tablename__ = "pipeline"
|
@@ -168,7 +192,7 @@ class Pipeline(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
168
192
|
)
|
169
193
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column()
|
170
194
|
description: sa_orm.Mapped[str | None] = sa_orm.mapped_column()
|
171
|
-
id: sa_orm.Mapped[PipelineID | None] = primary_key_identity_column()
|
195
|
+
id: sa_orm.Mapped[PipelineID | None] = orm.primary_key_identity_column()
|
172
196
|
|
173
197
|
outputs: sa_orm.Mapped[list[PipelineOutput]] = sa_orm.relationship(
|
174
198
|
viewonly=True,
|
@@ -177,7 +201,7 @@ class Pipeline(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
177
201
|
)
|
178
202
|
|
179
203
|
|
180
|
-
class PipelineInput(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
204
|
+
class PipelineInput(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
181
205
|
"""Pipeline input resources."""
|
182
206
|
|
183
207
|
__tablename__ = "pipeline_input"
|
@@ -187,15 +211,15 @@ class PipelineInput(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
187
211
|
name: sa_orm.Mapped[str]
|
188
212
|
"""A name the pipeline uses to refer to this input."""
|
189
213
|
|
190
|
-
pipeline_id: sa_orm.Mapped[PipelineID] = primary_key_foreign_column(
|
191
|
-
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
214
|
+
pipeline_id: sa_orm.Mapped[PipelineID] = orm.primary_key_foreign_column(
|
215
|
+
orm.ForeignKey(Pipeline).make(ondelete="CASCADE")
|
192
216
|
)
|
193
|
-
resource_id: sa_orm.Mapped[ResourceID] = primary_key_foreign_column(
|
194
|
-
ForeignKey(Resource).make(ondelete="CASCADE")
|
217
|
+
resource_id: sa_orm.Mapped[ResourceID] = orm.primary_key_foreign_column(
|
218
|
+
orm.ForeignKey(Resource).make(ondelete="CASCADE")
|
195
219
|
)
|
196
220
|
|
197
221
|
|
198
|
-
class PipelineOutput(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
222
|
+
class PipelineOutput(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
199
223
|
"""Objects for tracking pipeline output sources."""
|
200
224
|
|
201
225
|
__tablename__ = "pipeline_output"
|
@@ -205,23 +229,27 @@ class PipelineOutput(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
205
229
|
name: sa_orm.Mapped[str]
|
206
230
|
"""A name the pipeline uses to refer to this output."""
|
207
231
|
|
208
|
-
pipeline_id: sa_orm.Mapped[PipelineID] = primary_key_foreign_column(
|
209
|
-
ForeignKey(Pipeline).make(ondelete="CASCADE")
|
232
|
+
pipeline_id: sa_orm.Mapped[PipelineID] = orm.primary_key_foreign_column(
|
233
|
+
orm.ForeignKey(Pipeline).make(ondelete="CASCADE")
|
210
234
|
)
|
211
|
-
source_id: sa_orm.Mapped[SourceID] = primary_key_foreign_column(
|
212
|
-
ForeignKey(Source).make(ondelete="CASCADE")
|
235
|
+
source_id: sa_orm.Mapped[SourceID] = orm.primary_key_foreign_column(
|
236
|
+
orm.ForeignKey(Source).make(ondelete="CASCADE")
|
213
237
|
)
|
214
238
|
|
215
239
|
|
216
240
|
class FeatureView(
|
217
|
-
SoftDeleteMixin,
|
241
|
+
orm.SoftDeleteMixin,
|
242
|
+
orm.BelongsToOrgMixin,
|
243
|
+
BelongsToRoomMixin,
|
244
|
+
orm.Base,
|
245
|
+
kw_only=True,
|
218
246
|
):
|
219
247
|
"""A FeatureView is a logical collection of sources used by various spaces."""
|
220
248
|
|
221
249
|
__tablename__ = "feature_view"
|
222
|
-
__table_args__ = (live_unique_constraint("name", "room_id"),)
|
250
|
+
__table_args__ = (orm.live_unique_constraint("name", "room_id"),)
|
223
251
|
|
224
|
-
id: sa_orm.Mapped[FeatureViewID | None] = primary_key_identity_column()
|
252
|
+
id: sa_orm.Mapped[FeatureViewID | None] = orm.primary_key_identity_column()
|
225
253
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
226
254
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default="")
|
227
255
|
|
@@ -240,22 +268,24 @@ class FeatureView(
|
|
240
268
|
)
|
241
269
|
|
242
270
|
|
243
|
-
class FeatureViewSource(
|
271
|
+
class FeatureViewSource(
|
272
|
+
orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True
|
273
|
+
):
|
244
274
|
"""A source inside of a feature view."""
|
245
275
|
|
246
276
|
__tablename__ = "feature_view_source"
|
247
277
|
|
248
278
|
table_op_graph: sa_orm.Mapped[table_pb2.TableComputeOp] = sa_orm.mapped_column()
|
249
279
|
feature_view_id: sa_orm.Mapped[FeatureViewID] = sa_orm.mapped_column(
|
250
|
-
ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
280
|
+
orm.ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
251
281
|
nullable=False,
|
252
282
|
)
|
253
|
-
id: sa_orm.Mapped[FeatureViewSourceID | None] = primary_key_identity_column()
|
283
|
+
id: sa_orm.Mapped[FeatureViewSourceID | None] = orm.primary_key_identity_column()
|
254
284
|
drop_disconnected: sa_orm.Mapped[bool] = sa_orm.mapped_column(default=False)
|
255
285
|
# this should be legal but pyright complains that it makes Source depend
|
256
286
|
# on itself
|
257
287
|
source_id: sa_orm.Mapped[SourceID] = sa_orm.mapped_column(
|
258
|
-
ForeignKey(Source).make(ondelete="CASCADE"),
|
288
|
+
orm.ForeignKey(Source).make(ondelete="CASCADE"),
|
259
289
|
nullable=False,
|
260
290
|
default=None,
|
261
291
|
)
|
@@ -264,18 +294,18 @@ class FeatureViewSource(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=Tru
|
|
264
294
|
)
|
265
295
|
|
266
296
|
|
267
|
-
class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
297
|
+
class Space(orm.BelongsToOrgMixin, BelongsToRoomMixin, orm.Base, kw_only=True):
|
268
298
|
"""A space is a named evaluation of space parameters."""
|
269
299
|
|
270
300
|
__tablename__ = "space"
|
271
301
|
__table_args__ = (sa.UniqueConstraint("name", "room_id"),)
|
272
302
|
|
273
|
-
id: sa_orm.Mapped[SpaceID | None] = primary_key_identity_column()
|
303
|
+
id: sa_orm.Mapped[SpaceID | None] = orm.primary_key_identity_column()
|
274
304
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
275
305
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default="")
|
276
306
|
|
277
307
|
feature_view_id: sa_orm.Mapped[FeatureViewID] = sa_orm.mapped_column(
|
278
|
-
ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
308
|
+
orm.ForeignKey(FeatureView).make(ondelete="CASCADE"),
|
279
309
|
nullable=False,
|
280
310
|
default=None,
|
281
311
|
)
|
@@ -294,13 +324,15 @@ class Space(BelongsToOrgMixin, BelongsToRoomMixin, Base, kw_only=True):
|
|
294
324
|
return self.name
|
295
325
|
|
296
326
|
|
297
|
-
class CompletionModel(
|
327
|
+
class CompletionModel(
|
328
|
+
orm.SoftDeleteMixin, orm.BelongsToOrgMixin, orm.Base, kw_only=True
|
329
|
+
):
|
298
330
|
"""A customer's custom completion model definition."""
|
299
331
|
|
300
332
|
__tablename__ = "completion_model"
|
301
|
-
__table_args__ = (live_unique_constraint("name", "org_id"),)
|
333
|
+
__table_args__ = (orm.live_unique_constraint("name", "org_id"),)
|
302
334
|
|
303
|
-
id: sa_orm.Mapped[CompletionModelID | None] = primary_key_identity_column()
|
335
|
+
id: sa_orm.Mapped[CompletionModelID | None] = orm.primary_key_identity_column()
|
304
336
|
name: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
305
337
|
description: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
306
338
|
parameters: sa_orm.Mapped[completion_model_pb2.CompletionModelParameters | None] = (
|
@@ -324,43 +356,37 @@ class CompletionModel(SoftDeleteMixin, BelongsToOrgMixin, Base, kw_only=True):
|
|
324
356
|
|
325
357
|
|
326
358
|
ID = (
|
327
|
-
|
328
|
-
| AgentMessageID
|
359
|
+
orm.ID
|
329
360
|
| CompletionModelID
|
330
361
|
| FeatureViewID
|
331
362
|
| FeatureViewSourceID
|
332
|
-
| MessageEntryID
|
333
|
-
| OrgID
|
334
363
|
| PipelineID
|
335
364
|
| ResourceID
|
336
365
|
| RoomID
|
337
366
|
| SourceID
|
338
367
|
| SpaceID
|
339
|
-
| SpaceParametersID
|
340
|
-
| SpaceRunID
|
341
|
-
| UserMessageID
|
342
368
|
)
|
343
369
|
|
370
|
+
# These are part of the public interface, exposing them here so that
|
371
|
+
# users don't have to import orm anytime they import eorm
|
372
|
+
Base: TypeAlias = orm.Base
|
373
|
+
Org: TypeAlias = orm.Org
|
374
|
+
Session: TypeAlias = orm.Session
|
375
|
+
|
376
|
+
InvalidORMIdentifierError: TypeAlias = orm.InvalidORMIdentifierError
|
377
|
+
RequestedObjectsForNobodyError: TypeAlias = orm.RequestedObjectsForNobodyError
|
344
378
|
|
345
379
|
__all__ = [
|
346
|
-
"AgentID",
|
347
|
-
"AgentMessageID",
|
348
380
|
"Base",
|
349
|
-
"BaseID",
|
350
|
-
"BaseIDFromInt",
|
351
|
-
"BelongsToOrgMixin",
|
352
381
|
"CompletionModel",
|
353
382
|
"CompletionModelID",
|
354
383
|
"DefaultObjects",
|
355
|
-
"DeletedObjectError",
|
356
384
|
"FeatureView",
|
357
385
|
"FeatureViewID",
|
358
386
|
"FeatureViewSource",
|
359
387
|
"FeatureViewSourceID",
|
360
388
|
"ID",
|
361
389
|
"InvalidORMIdentifierError",
|
362
|
-
"MessageEntryID",
|
363
|
-
"Org",
|
364
390
|
"OrgID",
|
365
391
|
"PipelineID",
|
366
392
|
"PipelineInput",
|
@@ -375,12 +401,4 @@ __all__ = [
|
|
375
401
|
"SourceID",
|
376
402
|
"Space",
|
377
403
|
"SpaceID",
|
378
|
-
"SpaceParametersID",
|
379
|
-
"SpaceRunID",
|
380
|
-
"UserMessageID",
|
381
|
-
"primary_key_foreign_column",
|
382
|
-
"primary_key_identity_column",
|
383
|
-
"primary_key_uuid_column",
|
384
|
-
"ProtoMessageDecorator",
|
385
|
-
"IntIDDecorator",
|
386
404
|
]
|
@@ -12,10 +12,10 @@ import sqlalchemy.orm as sa_orm
|
|
12
12
|
import structlog
|
13
13
|
from google.protobuf import timestamp_pb2
|
14
14
|
|
15
|
-
from corvic import
|
15
|
+
from corvic import eorm, system
|
16
16
|
from corvic.model._proto_orm_convert import (
|
17
|
-
ID,
|
18
17
|
UNCOMMITTED_ID_PREFIX,
|
18
|
+
IdType,
|
19
19
|
OrmBelongsToOrgObj,
|
20
20
|
OrmBelongsToRoomObj,
|
21
21
|
OrmObj,
|
@@ -54,7 +54,7 @@ def _create_or_join_session(
|
|
54
54
|
if existing_session:
|
55
55
|
yield existing_session
|
56
56
|
else:
|
57
|
-
with
|
57
|
+
with eorm.Session(client.sa_engine) as session:
|
58
58
|
yield session
|
59
59
|
|
60
60
|
|
@@ -71,7 +71,7 @@ class HasProtoSelf(Generic[ProtoObj], abc.ABC):
|
|
71
71
|
return non_empty_timestamp_to_datetime(self.proto_self.created_at)
|
72
72
|
|
73
73
|
|
74
|
-
class UsesOrmID(Generic[
|
74
|
+
class UsesOrmID(Generic[IdType, ProtoObj], HasProtoSelf[ProtoObj]):
|
75
75
|
def __init__(self, client: system.Client, proto_self: ProtoObj):
|
76
76
|
if not proto_self.id:
|
77
77
|
proto_self.id = _generate_uncommitted_id_str()
|
@@ -79,14 +79,14 @@ class UsesOrmID(Generic[ID, ProtoObj], HasProtoSelf[ProtoObj]):
|
|
79
79
|
|
80
80
|
@classmethod
|
81
81
|
@abc.abstractmethod
|
82
|
-
def id_class(cls) -> type[
|
82
|
+
def id_class(cls) -> type[IdType]: ...
|
83
83
|
|
84
84
|
@functools.cached_property
|
85
|
-
def id(self) ->
|
85
|
+
def id(self) -> IdType:
|
86
86
|
return self.id_class().from_str(self.proto_self.id)
|
87
87
|
|
88
88
|
|
89
|
-
class BaseModel(Generic[
|
89
|
+
class BaseModel(Generic[IdType, ProtoObj, OrmObj], UsesOrmID[IdType, ProtoObj]):
|
90
90
|
"""Base for orm wrappers providing a unified update mechanism."""
|
91
91
|
|
92
92
|
@property
|
@@ -104,19 +104,19 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
104
104
|
@classmethod
|
105
105
|
@abc.abstractmethod
|
106
106
|
def proto_to_orm(
|
107
|
-
cls, proto_obj: ProtoObj, session:
|
107
|
+
cls, proto_obj: ProtoObj, session: eorm.Session
|
108
108
|
) -> Ok[OrmObj] | InvalidArgumentError: ...
|
109
109
|
|
110
110
|
@classmethod
|
111
111
|
@abc.abstractmethod
|
112
112
|
def delete_by_ids(
|
113
|
-
cls, ids: Sequence[
|
113
|
+
cls, ids: Sequence[IdType], session: eorm.Session
|
114
114
|
) -> Ok[None] | InvalidArgumentError: ...
|
115
115
|
|
116
116
|
@classmethod
|
117
117
|
def load_proto_for(
|
118
118
|
cls,
|
119
|
-
obj_id:
|
119
|
+
obj_id: IdType,
|
120
120
|
client: system.Client,
|
121
121
|
existing_session: sa_orm.Session | None = None,
|
122
122
|
) -> Ok[ProtoObj] | NotFoundError:
|
@@ -155,9 +155,9 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
155
155
|
client: system.Client,
|
156
156
|
*,
|
157
157
|
limit: int | None = None,
|
158
|
-
room_id:
|
158
|
+
room_id: eorm.RoomID | None = None,
|
159
159
|
created_before: datetime.datetime | None = None,
|
160
|
-
ids: Iterable[
|
160
|
+
ids: Iterable[IdType] | None = None,
|
161
161
|
additional_query_transform: Callable[
|
162
162
|
[sa.Select[tuple[OrmObj]]], sa.Select[tuple[OrmObj]]
|
163
163
|
]
|
@@ -173,7 +173,7 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
173
173
|
return InvalidArgumentError("limit cannot be negative")
|
174
174
|
query = query.limit(limit)
|
175
175
|
if room_id:
|
176
|
-
if session.get(
|
176
|
+
if session.get(eorm.Room, room_id) is None:
|
177
177
|
return NotFoundError("room not found", room_id=room_id)
|
178
178
|
query = query.filter_by(room_id=room_id)
|
179
179
|
if created_before:
|
@@ -198,7 +198,7 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
198
198
|
This overwrites the entry at id in the database so that future readers will see
|
199
199
|
this object. One of `id` or `derived_from_id` cannot be empty or None.
|
200
200
|
"""
|
201
|
-
with
|
201
|
+
with eorm.Session(self.client.sa_engine) as session:
|
202
202
|
try:
|
203
203
|
new_orm_self = self.proto_to_orm(
|
204
204
|
self.proto_self, session
|
@@ -230,7 +230,7 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
230
230
|
return InvalidArgumentError.from_(err)
|
231
231
|
|
232
232
|
def add_to_session(
|
233
|
-
self, session:
|
233
|
+
self, session: eorm.Session
|
234
234
|
) -> Ok[None] | InvalidArgumentError | UnavailableError:
|
235
235
|
"""Like commit, but just calls session.flush to check for database errors.
|
236
236
|
|
@@ -247,7 +247,7 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
247
247
|
return Ok(None)
|
248
248
|
|
249
249
|
def delete(self) -> Ok[Self] | NotFoundError | InvalidArgumentError:
|
250
|
-
with
|
250
|
+
with eorm.Session(
|
251
251
|
self.client.sa_engine, expire_on_commit=False, autoflush=False
|
252
252
|
) as session:
|
253
253
|
try:
|
@@ -272,22 +272,22 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
272
272
|
|
273
273
|
|
274
274
|
class BelongsToOrgModel(
|
275
|
-
Generic[
|
276
|
-
BaseModel[
|
275
|
+
Generic[IdType, ProtoBelongsToOrgObj, OrmBelongsToOrgObj],
|
276
|
+
BaseModel[IdType, ProtoBelongsToOrgObj, OrmBelongsToOrgObj],
|
277
277
|
):
|
278
278
|
"""Base for orm wrappers with org mixin providing a unified update mechanism."""
|
279
279
|
|
280
280
|
@property
|
281
|
-
def org_id(self) ->
|
282
|
-
return
|
281
|
+
def org_id(self) -> eorm.OrgID:
|
282
|
+
return eorm.OrgID().from_str(self.proto_self.org_id)
|
283
283
|
|
284
284
|
|
285
285
|
class BelongsToRoomModel(
|
286
|
-
Generic[
|
287
|
-
BelongsToOrgModel[
|
286
|
+
Generic[IdType, ProtoBelongsToRoomObj, OrmBelongsToRoomObj],
|
287
|
+
BelongsToOrgModel[IdType, ProtoBelongsToRoomObj, OrmBelongsToRoomObj],
|
288
288
|
):
|
289
289
|
"""Base for orm wrappers with room mixin providing a unified update mechanism."""
|
290
290
|
|
291
291
|
@property
|
292
|
-
def room_id(self) ->
|
293
|
-
return
|
292
|
+
def room_id(self) -> eorm.RoomID:
|
293
|
+
return eorm.RoomID().from_str(self.proto_self.room_id)
|