corvic-engine 0.3.0rc86__tar.gz → 0.3.0rc88__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.0rc86 → corvic_engine-0.3.0rc88}/Cargo.lock +6 -6
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/Cargo.toml +1 -1
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/PKG-INFO +1 -1
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/pyproject.toml +3 -4
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_base_model.py +4 -4
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_completion_model.py +57 -22
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_defaults.py +1 -24
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_feature_view.py +77 -54
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_pipeline.py +70 -51
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_resource.py +45 -28
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_room.py +29 -16
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_source.py +65 -38
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_space.py +93 -79
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_embedder.py +35 -12
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_text_embedder.py +8 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/_orm_backed_proto.py +11 -7
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2.py +4 -4
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2.pyi +4 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2.py +2 -2
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +33 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +14 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/LICENSE +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/README.md +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/Cargo.toml +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/context/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/context/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/node2vec.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/embeddings.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_errors.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_feature_type.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_proto_orm_convert.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/_native.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/eorm/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/_schema.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/_transformations.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/aggregation.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/encoders.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/errors.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/feature_types.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/ops.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/sample_strategy.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/_proto_columns.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/_soft_delete.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/errors.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/utc_func.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/uuid_func.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/ids.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/keys.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_const.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_from_value.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_temporal.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_to_value.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_types.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/_errors.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/_wrappers.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/result/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/result/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/parse_ops.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_column_encoding.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_dimension_reduction.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_image_embedder.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_planner.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/client.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/in_memory_executor.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/op_graph_executor.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/staging.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/storage.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/client.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/staging.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/table.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/_common_transformations.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/version/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/version/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/well_known_types/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/well_known_types/py.typed +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -10,13 +10,13 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
|
10
10
|
|
11
11
|
[[package]]
|
12
12
|
name = "cfg-if"
|
13
|
-
version = "1.0.
|
13
|
+
version = "1.0.1"
|
14
14
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
15
|
-
checksum = "
|
15
|
+
checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
|
16
16
|
|
17
17
|
[[package]]
|
18
18
|
name = "corvic-engine"
|
19
|
-
version = "0.3.0-rc.
|
19
|
+
version = "0.3.0-rc.88"
|
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.88"
|
61
61
|
dependencies = [
|
62
62
|
"version_check",
|
63
63
|
]
|
@@ -293,9 +293,9 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
293
293
|
|
294
294
|
[[package]]
|
295
295
|
name = "syn"
|
296
|
-
version = "2.0.
|
296
|
+
version = "2.0.102"
|
297
297
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
298
|
-
checksum = "
|
298
|
+
checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462"
|
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.88" # 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.
|
@@ -73,7 +73,7 @@ packages = [
|
|
73
73
|
]
|
74
74
|
description = ""
|
75
75
|
authors = []
|
76
|
-
version = "0.3.0-rc.
|
76
|
+
version = "0.3.0-rc.88"
|
77
77
|
|
78
78
|
[tool.poetry.scripts]
|
79
79
|
check = "corvic_check.cli:main"
|
@@ -123,13 +123,12 @@ pre-commit = "^4.0.0"
|
|
123
123
|
psycopg = { extras = ["binary"], version = "^3.2" }
|
124
124
|
pyright = "1.1.400"
|
125
125
|
pytest = "^8.1.1"
|
126
|
-
pytest-asyncio = "^0.26"
|
127
126
|
pytest-benchmark = "^4.0.0"
|
128
127
|
pytest-fail-slow = "^0.6.0"
|
129
128
|
pytest-socket = "^0.7.0"
|
130
129
|
pytest-timeout = "^2.2.0"
|
131
130
|
ruff = "^0.6.9"
|
132
|
-
hypothesis = "^6.
|
131
|
+
hypothesis = "^6.135"
|
133
132
|
yq = "^3.4.3" # includes xq for parsing xml test results
|
134
133
|
|
135
134
|
# Required to generate stubs for pyarrow, but not used by corvic itself
|
@@ -49,7 +49,6 @@ class OrmBackedModel(
|
|
49
49
|
@classmethod
|
50
50
|
def list_as_proto(
|
51
51
|
cls,
|
52
|
-
client: system.Client,
|
53
52
|
*,
|
54
53
|
limit: int | None = None,
|
55
54
|
room_id: eorm.RoomID | None = None,
|
@@ -59,9 +58,10 @@ class OrmBackedModel(
|
|
59
58
|
]
|
60
59
|
| None = None,
|
61
60
|
existing_session: eorm.Session | None = None,
|
61
|
+
client: system.Client,
|
62
62
|
) -> Ok[list[transfer.ProtoT]] | NotFoundError | InvalidArgumentError:
|
63
63
|
return super().list_as_proto(
|
64
|
-
client,
|
64
|
+
client=client,
|
65
65
|
limit=limit,
|
66
66
|
created_before=created_before,
|
67
67
|
additional_query_transform=_make_room_filter_query_transfrom(
|
@@ -80,7 +80,6 @@ class HasIdOrmBackedModel(
|
|
80
80
|
@classmethod
|
81
81
|
def list_as_proto(
|
82
82
|
cls,
|
83
|
-
client: system.Client,
|
84
83
|
*,
|
85
84
|
limit: int | None = None,
|
86
85
|
room_id: eorm.RoomID | None = None,
|
@@ -91,9 +90,10 @@ class HasIdOrmBackedModel(
|
|
91
90
|
]
|
92
91
|
| None = None,
|
93
92
|
existing_session: eorm.Session | None = None,
|
93
|
+
client: system.Client,
|
94
94
|
) -> Ok[list[transfer.ProtoHasIdT]] | NotFoundError | InvalidArgumentError:
|
95
95
|
return super().list_as_proto(
|
96
|
-
client,
|
96
|
+
client=client,
|
97
97
|
limit=limit,
|
98
98
|
created_before=created_before,
|
99
99
|
ids=ids,
|
{corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_completion_model.py
RENAMED
@@ -9,7 +9,6 @@ from typing import Literal, TypeAlias
|
|
9
9
|
|
10
10
|
from corvic import eorm, system, transfer
|
11
11
|
from corvic.emodel._base_model import OrgWideStandardModel
|
12
|
-
from corvic.emodel._defaults import Defaults
|
13
12
|
from corvic.emodel._proto_orm_convert import (
|
14
13
|
completion_model_delete_orms,
|
15
14
|
completion_model_orm_to_proto,
|
@@ -128,17 +127,16 @@ class CompletionModel(
|
|
128
127
|
description: str,
|
129
128
|
parameters: completion_model_pb2.CompletionModelParameters,
|
130
129
|
secret_api_key: str,
|
131
|
-
client: system.Client
|
130
|
+
client: system.Client,
|
132
131
|
):
|
133
|
-
client = client or Defaults.get_default_client()
|
134
132
|
return cls(
|
135
|
-
|
136
|
-
models_pb2.CompletionModel(
|
133
|
+
proto_self=models_pb2.CompletionModel(
|
137
134
|
name=name,
|
138
135
|
description=description,
|
139
136
|
parameters=parameters,
|
140
137
|
secret_api_key=secret_api_key,
|
141
138
|
),
|
139
|
+
client=client,
|
142
140
|
)
|
143
141
|
|
144
142
|
@classmethod
|
@@ -147,75 +145,112 @@ class CompletionModel(
|
|
147
145
|
*,
|
148
146
|
limit: int | None = None,
|
149
147
|
created_before: datetime.datetime | None = None,
|
150
|
-
client: system.Client | None = None,
|
151
148
|
ids: Iterable[CompletionModelID] | None = None,
|
152
149
|
existing_session: eorm.Session | None = None,
|
150
|
+
client: system.Client,
|
153
151
|
) -> Ok[list[CompletionModel]] | NotFoundError | InvalidArgumentError:
|
154
152
|
"""List completion models."""
|
155
|
-
client = client or Defaults.get_default_client()
|
156
153
|
match cls.list_as_proto(
|
157
|
-
client,
|
158
154
|
limit=limit,
|
159
155
|
created_before=created_before,
|
160
156
|
ids=ids,
|
161
157
|
existing_session=existing_session,
|
158
|
+
client=client,
|
162
159
|
):
|
163
160
|
case NotFoundError() | InvalidArgumentError() as err:
|
164
161
|
return err
|
165
162
|
case Ok(protos):
|
166
|
-
return Ok(
|
163
|
+
return Ok(
|
164
|
+
[
|
165
|
+
cls.from_proto(
|
166
|
+
proto=proto,
|
167
|
+
client=client,
|
168
|
+
)
|
169
|
+
for proto in protos
|
170
|
+
]
|
171
|
+
)
|
167
172
|
|
168
173
|
@classmethod
|
169
174
|
def from_proto(
|
170
|
-
cls,
|
175
|
+
cls,
|
176
|
+
*,
|
177
|
+
proto: models_pb2.CompletionModel,
|
178
|
+
client: system.Client,
|
171
179
|
) -> CompletionModel:
|
172
|
-
|
173
|
-
|
180
|
+
return cls(
|
181
|
+
proto_self=proto,
|
182
|
+
client=client,
|
183
|
+
)
|
174
184
|
|
175
185
|
@classmethod
|
176
186
|
def from_id(
|
177
187
|
cls,
|
188
|
+
*,
|
178
189
|
completion_model_id: CompletionModelID,
|
179
|
-
client: system.Client | None = None,
|
180
190
|
session: eorm.Session | None = None,
|
191
|
+
client: system.Client,
|
181
192
|
) -> Ok[CompletionModel] | NotFoundError:
|
182
|
-
|
183
|
-
|
184
|
-
|
193
|
+
return cls.load_proto_for(
|
194
|
+
obj_id=completion_model_id,
|
195
|
+
client=client,
|
196
|
+
existing_session=session,
|
197
|
+
).map(
|
198
|
+
lambda proto_self: cls.from_proto(
|
199
|
+
proto=proto_self,
|
200
|
+
client=client,
|
201
|
+
)
|
185
202
|
)
|
186
203
|
|
187
204
|
def with_name(self, name: str) -> CompletionModel:
|
188
205
|
proto_self = copy.deepcopy(self.proto_self)
|
189
206
|
proto_self.name = name
|
190
|
-
return CompletionModel(
|
207
|
+
return CompletionModel(
|
208
|
+
proto_self=proto_self,
|
209
|
+
client=self.client,
|
210
|
+
)
|
191
211
|
|
192
212
|
def with_description(self, description: str) -> CompletionModel:
|
193
213
|
proto_self = copy.deepcopy(self.proto_self)
|
194
214
|
proto_self.description = description
|
195
|
-
return CompletionModel(
|
215
|
+
return CompletionModel(
|
216
|
+
proto_self=proto_self,
|
217
|
+
client=self.client,
|
218
|
+
)
|
196
219
|
|
197
220
|
def with_parameters(
|
198
221
|
self, parameters: completion_model_pb2.CompletionModelParameters
|
199
222
|
) -> CompletionModel:
|
200
223
|
proto_self = copy.deepcopy(self.proto_self)
|
201
224
|
proto_self.parameters.CopyFrom(parameters)
|
202
|
-
return CompletionModel(
|
225
|
+
return CompletionModel(
|
226
|
+
proto_self=proto_self,
|
227
|
+
client=self.client,
|
228
|
+
)
|
203
229
|
|
204
230
|
def with_secret_api_key(self, secret_api_key: str) -> CompletionModel:
|
205
231
|
proto_self = copy.deepcopy(self.proto_self)
|
206
232
|
proto_self.secret_api_key = secret_api_key
|
207
|
-
return CompletionModel(
|
233
|
+
return CompletionModel(
|
234
|
+
proto_self=proto_self,
|
235
|
+
client=self.client,
|
236
|
+
)
|
208
237
|
|
209
238
|
def with_last_validation_time(
|
210
239
|
self, last_validation_time: datetime.datetime
|
211
240
|
) -> CompletionModel:
|
212
241
|
proto_self = copy.deepcopy(self.proto_self)
|
213
242
|
proto_self.last_validation_time.FromDatetime(last_validation_time)
|
214
|
-
return CompletionModel(
|
243
|
+
return CompletionModel(
|
244
|
+
proto_self=proto_self,
|
245
|
+
client=self.client,
|
246
|
+
)
|
215
247
|
|
216
248
|
def with_last_successful_validation(
|
217
249
|
self, last_successful_validation: datetime.datetime
|
218
250
|
) -> CompletionModel:
|
219
251
|
proto_self = copy.deepcopy(self.proto_self)
|
220
252
|
proto_self.last_successful_validation.FromDatetime(last_successful_validation)
|
221
|
-
return CompletionModel(
|
253
|
+
return CompletionModel(
|
254
|
+
proto_self=proto_self,
|
255
|
+
client=self.client,
|
256
|
+
)
|
@@ -1,37 +1,14 @@
|
|
1
1
|
"""Utilities to choose a default client when the caller doesn't provide one."""
|
2
2
|
|
3
|
-
import functools
|
4
|
-
import pathlib
|
5
|
-
import tempfile
|
6
|
-
|
7
3
|
import sqlalchemy as sa
|
8
4
|
|
9
|
-
from corvic import eorm, system
|
5
|
+
from corvic import eorm, system
|
10
6
|
from corvic.result import NotFoundError
|
11
7
|
|
12
8
|
|
13
|
-
@functools.cache
|
14
|
-
def _tmp_directory():
|
15
|
-
# with "cache" holding onto the object, this directory
|
16
|
-
# will get blown away when the program exits gracefully
|
17
|
-
return tempfile.TemporaryDirectory()
|
18
|
-
|
19
|
-
|
20
|
-
@functools.cache
|
21
|
-
def _default_default_client():
|
22
|
-
return system_sqlite.Client(
|
23
|
-
pathlib.Path(_tmp_directory().name) / "corvic_data.sqlite3",
|
24
|
-
)
|
25
|
-
|
26
|
-
|
27
9
|
class Defaults:
|
28
10
|
# TODO(thunt): add mechanism for library init to override this default
|
29
11
|
# e.g., when running as corvic-cloud this should return a system_cloud.Client
|
30
|
-
@staticmethod
|
31
|
-
def get_default_client() -> system.Client:
|
32
|
-
"""Return a reasonable default implementation of system.Client."""
|
33
|
-
return _default_default_client()
|
34
|
-
|
35
12
|
@staticmethod
|
36
13
|
def get_default_room_id(client: system.Client) -> eorm.RoomID:
|
37
14
|
with eorm.Session(client.sa_engine) as session:
|
@@ -8,7 +8,7 @@ import datetime
|
|
8
8
|
import functools
|
9
9
|
import uuid
|
10
10
|
from collections.abc import AsyncIterable, Iterable, Mapping, MutableMapping, Sequence
|
11
|
-
from typing import Any, Final,
|
11
|
+
from typing import Any, Final, TypeAlias
|
12
12
|
|
13
13
|
import pyarrow as pa
|
14
14
|
from google.protobuf import struct_pb2
|
@@ -558,30 +558,37 @@ class FeatureViewSource(
|
|
558
558
|
room_id: eorm.RoomID,
|
559
559
|
):
|
560
560
|
return cls(
|
561
|
-
|
562
|
-
models_pb2.FeatureViewSource(
|
561
|
+
proto_self=models_pb2.FeatureViewSource(
|
563
562
|
source=source.proto_self,
|
564
563
|
table_op_graph=table.op_graph.to_proto(),
|
565
564
|
drop_disconnected=drop_disconnected,
|
566
565
|
room_id=str(room_id),
|
567
566
|
),
|
567
|
+
client=source.client,
|
568
568
|
)
|
569
569
|
|
570
570
|
def with_table(self, table: Table | op_graph.Op) -> FeatureViewSource:
|
571
571
|
if isinstance(table, Table):
|
572
572
|
table = table.op_graph
|
573
|
-
|
574
|
-
|
575
|
-
return
|
573
|
+
proto_self = copy.deepcopy(self.proto_self)
|
574
|
+
proto_self.table_op_graph.CopyFrom(table.to_proto())
|
575
|
+
return FeatureViewSource(
|
576
|
+
proto_self=proto_self,
|
577
|
+
client=self.client,
|
578
|
+
)
|
576
579
|
|
577
580
|
@functools.cached_property
|
578
581
|
def source(self):
|
579
|
-
return Source(
|
582
|
+
return Source(
|
583
|
+
proto_self=self.proto_self.source,
|
584
|
+
client=self.client,
|
585
|
+
)
|
580
586
|
|
581
587
|
@functools.cached_property
|
582
588
|
def table(self):
|
583
589
|
return Table.from_ops(
|
584
|
-
|
590
|
+
op=op_graph.op.from_proto(self.proto_self.table_op_graph),
|
591
|
+
client=self.client,
|
585
592
|
)
|
586
593
|
|
587
594
|
|
@@ -689,21 +696,33 @@ class FeatureView(
|
|
689
696
|
@classmethod
|
690
697
|
def from_id(
|
691
698
|
cls,
|
699
|
+
*,
|
692
700
|
feature_view_id: FeatureViewID,
|
693
|
-
client: system.Client | None = None,
|
694
701
|
session: eorm.Session | None = None,
|
695
|
-
|
696
|
-
|
697
|
-
return cls.load_proto_for(
|
698
|
-
|
702
|
+
client: system.Client,
|
703
|
+
) -> Ok[FeatureView] | NotFoundError:
|
704
|
+
return cls.load_proto_for(
|
705
|
+
obj_id=feature_view_id,
|
706
|
+
client=client,
|
707
|
+
existing_session=session,
|
708
|
+
).map(
|
709
|
+
lambda proto_self: cls.from_proto(
|
710
|
+
proto=proto_self,
|
711
|
+
client=client,
|
712
|
+
)
|
699
713
|
)
|
700
714
|
|
701
715
|
@classmethod
|
702
716
|
def from_proto(
|
703
|
-
cls,
|
717
|
+
cls,
|
718
|
+
*,
|
719
|
+
proto: models_pb2.FeatureView,
|
720
|
+
client: system.Client,
|
704
721
|
) -> FeatureView:
|
705
|
-
|
706
|
-
|
722
|
+
return cls(
|
723
|
+
proto_self=proto,
|
724
|
+
client=client,
|
725
|
+
)
|
707
726
|
|
708
727
|
@classmethod
|
709
728
|
def orm_load_options(cls) -> list[LoaderOption]:
|
@@ -721,14 +740,13 @@ class FeatureView(
|
|
721
740
|
room_id: RoomID | None = None,
|
722
741
|
limit: int | None = None,
|
723
742
|
created_before: datetime.datetime | None = None,
|
724
|
-
client: system.Client | None = None,
|
725
743
|
ids: Iterable[FeatureViewID] | None = None,
|
726
744
|
existing_session: eorm.Session | None = None,
|
745
|
+
client: system.Client,
|
727
746
|
) -> Ok[list[FeatureView]] | NotFoundError | InvalidArgumentError:
|
728
747
|
"""List resources."""
|
729
|
-
client = client or Defaults.get_default_client()
|
730
748
|
match cls.list_as_proto(
|
731
|
-
client,
|
749
|
+
client=client,
|
732
750
|
limit=limit,
|
733
751
|
room_id=room_id,
|
734
752
|
created_before=created_before,
|
@@ -739,7 +757,7 @@ class FeatureView(
|
|
739
757
|
return err
|
740
758
|
case Ok(protos):
|
741
759
|
pass
|
742
|
-
return Ok([cls.from_proto(proto, client) for proto in protos])
|
760
|
+
return Ok([cls.from_proto(proto=proto, client=client) for proto in protos])
|
743
761
|
|
744
762
|
@property
|
745
763
|
def source_ids(self):
|
@@ -759,7 +777,7 @@ class FeatureView(
|
|
759
777
|
@functools.cached_property
|
760
778
|
def feature_view_sources(self) -> Sequence[FeatureViewSource]:
|
761
779
|
return [
|
762
|
-
FeatureViewSource(self.client
|
780
|
+
FeatureViewSource(proto_self=fvs, client=self.client)
|
763
781
|
for fvs in self.proto_self.feature_view_sources
|
764
782
|
]
|
765
783
|
|
@@ -792,7 +810,7 @@ class FeatureView(
|
|
792
810
|
case Source():
|
793
811
|
return Ok(source)
|
794
812
|
case SourceID():
|
795
|
-
return Source.from_id(source, self.client)
|
813
|
+
return Source.from_id(source_id=source, client=self.client)
|
796
814
|
|
797
815
|
def _get_feature_view_source(
|
798
816
|
self, source: Source | SourceID | str
|
@@ -994,15 +1012,14 @@ class FeatureView(
|
|
994
1012
|
|
995
1013
|
@classmethod
|
996
1014
|
def create(
|
997
|
-
cls,
|
1015
|
+
cls, *, room_id: eorm.RoomID | None = None, client: system.Client
|
998
1016
|
) -> FeatureView:
|
999
1017
|
"""Create a FeatureView."""
|
1000
|
-
|
1001
|
-
room_id = room_id or Defaults.get_default_room_id(client)
|
1018
|
+
room_id = room_id or Defaults.get_default_room_id(client=client)
|
1002
1019
|
proto_feature_view = models_pb2.FeatureView(room_id=str(room_id))
|
1003
1020
|
return FeatureView(
|
1004
|
-
|
1005
|
-
|
1021
|
+
proto_self=proto_feature_view,
|
1022
|
+
client=client,
|
1006
1023
|
)
|
1007
1024
|
|
1008
1025
|
@staticmethod
|
@@ -1025,15 +1042,21 @@ class FeatureView(
|
|
1025
1042
|
pass
|
1026
1043
|
return renames
|
1027
1044
|
|
1028
|
-
def with_name(self, name: str) ->
|
1029
|
-
|
1030
|
-
|
1031
|
-
return
|
1045
|
+
def with_name(self, name: str) -> FeatureView:
|
1046
|
+
proto_self = copy.deepcopy(self.proto_self)
|
1047
|
+
proto_self.name = name
|
1048
|
+
return FeatureView(
|
1049
|
+
proto_self=proto_self,
|
1050
|
+
client=self.client,
|
1051
|
+
)
|
1032
1052
|
|
1033
|
-
def with_description(self, description: str) ->
|
1034
|
-
|
1035
|
-
|
1036
|
-
return
|
1053
|
+
def with_description(self, description: str) -> FeatureView:
|
1054
|
+
proto_self = copy.deepcopy(self.proto_self)
|
1055
|
+
proto_self.description = description
|
1056
|
+
return FeatureView(
|
1057
|
+
proto_self=proto_self,
|
1058
|
+
client=self.client,
|
1059
|
+
)
|
1037
1060
|
|
1038
1061
|
def with_source(
|
1039
1062
|
self,
|
@@ -1082,8 +1105,8 @@ class FeatureView(
|
|
1082
1105
|
source=source,
|
1083
1106
|
)
|
1084
1107
|
|
1085
|
-
|
1086
|
-
|
1108
|
+
proto_self = copy.deepcopy(self.proto_self)
|
1109
|
+
proto_self.feature_view_sources.append(fvs.proto_self)
|
1087
1110
|
|
1088
1111
|
if output:
|
1089
1112
|
primary_key = source.table.schema.get_primary_key()
|
@@ -1091,13 +1114,13 @@ class FeatureView(
|
|
1091
1114
|
raise InvalidArgumentError(
|
1092
1115
|
"source must have a primary key to part of the output"
|
1093
1116
|
)
|
1094
|
-
|
1117
|
+
proto_self.feature_view_output.output_sources.append(
|
1095
1118
|
feature_view_pb2.OutputSource(source_id=str(source.id))
|
1096
1119
|
)
|
1097
1120
|
|
1098
|
-
return
|
1099
|
-
|
1100
|
-
|
1121
|
+
return FeatureView(
|
1122
|
+
proto_self=proto_self,
|
1123
|
+
client=self.client,
|
1101
1124
|
)
|
1102
1125
|
|
1103
1126
|
@staticmethod
|
@@ -1302,9 +1325,9 @@ class FeatureView(
|
|
1302
1325
|
"foreign key relationship was not provided and could not be inferred"
|
1303
1326
|
)
|
1304
1327
|
|
1305
|
-
|
1328
|
+
proto_self = copy.deepcopy(self.proto_self)
|
1306
1329
|
|
1307
|
-
|
1330
|
+
proto_self.feature_view_output.relationships.append(
|
1308
1331
|
feature_view_pb2.FeatureViewRelationship(
|
1309
1332
|
start_source_id=str(start_fv_source.source.id),
|
1310
1333
|
end_source_id=str(end_fv_source.source.id),
|
@@ -1312,7 +1335,7 @@ class FeatureView(
|
|
1312
1335
|
)
|
1313
1336
|
)
|
1314
1337
|
if not directional:
|
1315
|
-
|
1338
|
+
proto_self.feature_view_output.relationships.append(
|
1316
1339
|
feature_view_pb2.FeatureViewRelationship(
|
1317
1340
|
start_source_id=str(end_fv_source.source.id),
|
1318
1341
|
end_source_id=str(start_fv_source.source.id),
|
@@ -1320,9 +1343,9 @@ class FeatureView(
|
|
1320
1343
|
)
|
1321
1344
|
)
|
1322
1345
|
|
1323
|
-
return
|
1324
|
-
|
1325
|
-
|
1346
|
+
return FeatureView(
|
1347
|
+
proto_self=proto_self,
|
1348
|
+
client=self.client,
|
1326
1349
|
)
|
1327
1350
|
|
1328
1351
|
def with_row_numbers(
|
@@ -1333,8 +1356,8 @@ class FeatureView(
|
|
1333
1356
|
Row indices are unique across all output sources.
|
1334
1357
|
"""
|
1335
1358
|
offset = 0
|
1336
|
-
|
1337
|
-
del
|
1359
|
+
proto_self = copy.deepcopy(self.proto_self)
|
1360
|
+
del proto_self.feature_view_sources[:]
|
1338
1361
|
|
1339
1362
|
for fvs in self.feature_view_sources:
|
1340
1363
|
if fvs.source.id in self.output_source_ids:
|
@@ -1350,11 +1373,11 @@ class FeatureView(
|
|
1350
1373
|
offset += system.OpGraphPlanner.count_rows_upperbound(
|
1351
1374
|
new_fvs.table.op_graph
|
1352
1375
|
)
|
1353
|
-
|
1376
|
+
proto_self.feature_view_sources.append(new_fvs.proto_self)
|
1354
1377
|
else:
|
1355
|
-
|
1378
|
+
proto_self.feature_view_sources.append(fvs.proto_self)
|
1356
1379
|
|
1357
|
-
return
|
1358
|
-
|
1359
|
-
|
1380
|
+
return FeatureView(
|
1381
|
+
proto_self=proto_self,
|
1382
|
+
client=self.client,
|
1360
1383
|
)
|