corvic-engine 0.3.0rc67__tar.gz → 0.3.0rc69__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.0rc67 → corvic_engine-0.3.0rc69}/Cargo.lock +12 -12
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/Cargo.toml +1 -1
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/PKG-INFO +3 -4
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/README.md +1 -1
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/pyproject.toml +9 -12
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/context/__init__.py +0 -8
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_base_model.py +3 -4
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_completion_model.py +2 -4
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_feature_view.py +5 -6
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_pipeline.py +1 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_resource.py +1 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_source.py +1 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_space.py +26 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/row_filters/_jsonlogic.py +32 -1
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/base.py +4 -5
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/ids.py +1 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/mixins.py +6 -8
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/_temporal.py +1 -1
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/result/__init__.py +1 -2
- corvic_engine-0.3.0rc69/python/corvic/system/_column_encoding.py +215 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/_embedder.py +24 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/_image_embedder.py +38 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/_planner.py +6 -3
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/_text_embedder.py +21 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/client.py +2 -1
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/in_memory_executor.py +503 -507
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/op_graph_executor.py +7 -3
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/storage.py +1 -3
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/table/table.py +5 -5
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/feature_view_pb2.py +21 -21
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/space_pb2.py +59 -51
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/space_pb2.pyi +12 -6
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/resource_pb2.py +25 -25
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/agent_pb2.py +2 -2
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/agent_pb2.pyi +4 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/LICENSE +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/Cargo.toml +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/buf/validate/validate_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/buf/validate/validate_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/buf/validate/validate_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/context/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embed/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embed/node2vec.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embed/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embedding_metric/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embedding_metric/embeddings.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/embedding_metric/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/engine/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/engine/_native.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/engine/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_defaults.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_errors.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_feature_type.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_proto_orm_convert.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_room.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/_schema.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/_transformations.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/aggregation.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/encoders.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/errors.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/feature_types.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/ops.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/row_filters/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/sample_strategy.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/_proto_columns.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/errors.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/func/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/func/utc_func.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/func/uuid_func.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/keys.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/orm/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/_const.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/_from_value.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/_to_value.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/_types.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/pa_scalar/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/proto_wrapper/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/proto_wrapper/_errors.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/proto_wrapper/_wrappers.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/proto_wrapper/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/result/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/sql/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/sql/parse_ops.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/sql/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/_dimension_reduction.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system/staging.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/client.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/system_sqlite/staging.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/table/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/table/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/version/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/version/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/well_known_types/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/well_known_types/py.typed +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/event_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/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.69"
|
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.69"
|
61
61
|
dependencies = [
|
62
62
|
"version_check",
|
63
63
|
]
|
@@ -189,9 +189,9 @@ dependencies = [
|
|
189
189
|
|
190
190
|
[[package]]
|
191
191
|
name = "pyo3"
|
192
|
-
version = "0.24.
|
192
|
+
version = "0.24.2"
|
193
193
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
194
|
-
checksum = "
|
194
|
+
checksum = "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219"
|
195
195
|
dependencies = [
|
196
196
|
"cfg-if",
|
197
197
|
"indoc",
|
@@ -207,9 +207,9 @@ dependencies = [
|
|
207
207
|
|
208
208
|
[[package]]
|
209
209
|
name = "pyo3-build-config"
|
210
|
-
version = "0.24.
|
210
|
+
version = "0.24.2"
|
211
211
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
212
|
-
checksum = "
|
212
|
+
checksum = "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999"
|
213
213
|
dependencies = [
|
214
214
|
"once_cell",
|
215
215
|
"target-lexicon",
|
@@ -217,9 +217,9 @@ dependencies = [
|
|
217
217
|
|
218
218
|
[[package]]
|
219
219
|
name = "pyo3-ffi"
|
220
|
-
version = "0.24.
|
220
|
+
version = "0.24.2"
|
221
221
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
222
|
-
checksum = "
|
222
|
+
checksum = "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33"
|
223
223
|
dependencies = [
|
224
224
|
"libc",
|
225
225
|
"pyo3-build-config",
|
@@ -227,9 +227,9 @@ dependencies = [
|
|
227
227
|
|
228
228
|
[[package]]
|
229
229
|
name = "pyo3-macros"
|
230
|
-
version = "0.24.
|
230
|
+
version = "0.24.2"
|
231
231
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
232
|
-
checksum = "
|
232
|
+
checksum = "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9"
|
233
233
|
dependencies = [
|
234
234
|
"proc-macro2",
|
235
235
|
"pyo3-macros-backend",
|
@@ -239,9 +239,9 @@ dependencies = [
|
|
239
239
|
|
240
240
|
[[package]]
|
241
241
|
name = "pyo3-macros-backend"
|
242
|
-
version = "0.24.
|
242
|
+
version = "0.24.2"
|
243
243
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
244
|
-
checksum = "
|
244
|
+
checksum = "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a"
|
245
245
|
dependencies = [
|
246
246
|
"heck",
|
247
247
|
"proc-macro2",
|
@@ -1,11 +1,10 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: corvic-engine
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.0rc69
|
4
4
|
Classifier: Environment :: Console
|
5
5
|
Classifier: License :: Other/Proprietary License
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
7
7
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
8
|
-
Classifier: Programming Language :: Python :: 3.10
|
9
8
|
Classifier: Programming Language :: Python :: 3.11
|
10
9
|
Classifier: Programming Language :: Python :: 3.12
|
11
10
|
Classifier: Programming Language :: Python :: 3.13
|
@@ -35,8 +34,8 @@ Provides-Extra: telemetry
|
|
35
34
|
License-File: LICENSE
|
36
35
|
Summary: Seamless embedding generation and retrieval.
|
37
36
|
Author-email: Corvic Team <contact@corvic.ai>
|
38
|
-
Requires-Python: >=3.
|
37
|
+
Requires-Python: >=3.11
|
39
38
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
40
39
|
|
41
|
-
# Corvic Engine [](https://github.com/corvicai/corvic-engine/actions/workflows/ci.yaml) [](https://github.com/corvicai/corvic-engine/actions/workflows/ci.yaml) [](https://www.python.org/downloads/release/python-3110/)
|
42
41
|
|
@@ -1 +1 @@
|
|
1
|
-
# Corvic Engine [](https://github.com/corvicai/corvic-engine/actions/workflows/ci.yaml) [](https://github.com/corvicai/corvic-engine/actions/workflows/ci.yaml) [](https://www.python.org/downloads/release/python-3110/)
|
@@ -1,12 +1,11 @@
|
|
1
1
|
[project]
|
2
2
|
name = "corvic-engine"
|
3
|
-
requires-python = ">=3.
|
3
|
+
requires-python = ">=3.11"
|
4
4
|
classifiers = [
|
5
5
|
"Environment :: Console",
|
6
6
|
"License :: Other/Proprietary License",
|
7
7
|
"Programming Language :: Python :: Implementation :: CPython",
|
8
8
|
"Programming Language :: Python :: Implementation :: PyPy",
|
9
|
-
"Programming Language :: Python :: 3.10",
|
10
9
|
"Programming Language :: Python :: 3.11",
|
11
10
|
"Programming Language :: Python :: 3.12",
|
12
11
|
"Programming Language :: Python :: 3.13",
|
@@ -20,7 +19,7 @@ authors = [
|
|
20
19
|
]
|
21
20
|
readme = "README.md"
|
22
21
|
description = "Seamless embedding generation and retrieval."
|
23
|
-
version = "0.3.0-rc.
|
22
|
+
version = "0.3.0-rc.69" # sync this with tool.poetry.version below
|
24
23
|
|
25
24
|
# TODO(ddn): Pull dependencies from tool.poetry.dependencies. We use maturin as
|
26
25
|
# the build system but poetry for the development environment.
|
@@ -74,7 +73,7 @@ packages = [
|
|
74
73
|
]
|
75
74
|
description = ""
|
76
75
|
authors = []
|
77
|
-
version = "0.3.0-rc.
|
76
|
+
version = "0.3.0-rc.69"
|
78
77
|
|
79
78
|
[tool.poetry.scripts]
|
80
79
|
check = "corvic_check.cli:main"
|
@@ -102,7 +101,7 @@ protobuf = ">=4.25.0,<4.25.4"
|
|
102
101
|
protovalidate = "^0.7.1"
|
103
102
|
pyarrow = "^17"
|
104
103
|
# Should match build matrix for any native code dependencies (namely pyarrow)
|
105
|
-
python = ">=3.
|
104
|
+
python = ">=3.11,<3.13"
|
106
105
|
sqlalchemy = "^2.0.27"
|
107
106
|
# Rust tokenizer for better performances
|
108
107
|
sqlglot = { extras = ["rs"], version = "^25.8.1" }
|
@@ -112,6 +111,7 @@ types-cachetools = "^5.3.0"
|
|
112
111
|
typing-extensions = "^4.9.0"
|
113
112
|
|
114
113
|
[tool.poetry.group.dev.dependencies]
|
114
|
+
anyio = "^4"
|
115
115
|
click = "^8.1.7"
|
116
116
|
click_default_group = "^1.2.4"
|
117
117
|
codespell = "^2.2.6"
|
@@ -123,12 +123,12 @@ pdoc = "^14.5.1"
|
|
123
123
|
pre-commit = "^4.0.0"
|
124
124
|
pyright = "^1.1.387"
|
125
125
|
pytest = "^8.1.1"
|
126
|
+
pytest-asyncio = "^0.26"
|
126
127
|
pytest-benchmark = "^4.0.0"
|
127
128
|
pytest-fail-slow = "^0.6.0"
|
128
129
|
pytest-socket = "^0.7.0"
|
129
130
|
pytest-timeout = "^2.2.0"
|
130
131
|
ruff = "^0.6.9"
|
131
|
-
tomli = "^2.0.1" # would use tomllib but is not available in 3.10
|
132
132
|
hypothesis = "^6.102.4"
|
133
133
|
yq = "^3.4.3" # includes xq for parsing xml test results
|
134
134
|
|
@@ -151,9 +151,6 @@ pip-licenses = "^4.3.3"
|
|
151
151
|
|
152
152
|
[tool.poetry.group.test.dependencies]
|
153
153
|
fastnode2vec = "^0.0.7"
|
154
|
-
# Gensim is broken with SciPy 1.13.0
|
155
|
-
# https://github.com/piskvorky/gensim/issues/3525
|
156
|
-
scipy = "<1.13.0"
|
157
154
|
umap-learn = "^0.5.5"
|
158
155
|
scikit-learn = "^1.4.0"
|
159
156
|
|
@@ -162,8 +159,8 @@ optional = true
|
|
162
159
|
|
163
160
|
[tool.poetry.group.ml.dependencies]
|
164
161
|
torch = [
|
165
|
-
{ platform = "linux", version = "^2.
|
166
|
-
{ platform = "darwin", version = "^2.
|
162
|
+
{ platform = "linux", version = "^2.7.0", source = "torch-cpu-linux" },
|
163
|
+
{ platform = "darwin", version = "^2.7.0", source = "pypi" },
|
167
164
|
]
|
168
165
|
transformers = "^4.48.0"
|
169
166
|
umap-learn = "^0.5.5"
|
@@ -377,7 +374,7 @@ testpaths = [
|
|
377
374
|
# The slow threshold should be less than the timeout threshold.
|
378
375
|
timeout = 60
|
379
376
|
# pytest-socket
|
380
|
-
addopts = "--disable-socket"
|
377
|
+
addopts = "--disable-socket --allow-unix-socket --allow-hosts=127.0.0.1,localhost,[::1]"
|
381
378
|
|
382
379
|
[tool.coverage.run]
|
383
380
|
branch = true
|
@@ -4,7 +4,6 @@ Affect things like logging and the names of metrics.
|
|
4
4
|
"""
|
5
5
|
|
6
6
|
import contextvars
|
7
|
-
import uuid
|
8
7
|
from dataclasses import dataclass
|
9
8
|
|
10
9
|
# These are sentinels used only in the Requester object below rather than actual org
|
@@ -21,17 +20,11 @@ class Requester:
|
|
21
20
|
|
22
21
|
|
23
22
|
_SERVICE_NAME = contextvars.ContextVar("service_name", default="corvic")
|
24
|
-
_TRACE_ID = contextvars.ContextVar("trace_id", default="")
|
25
23
|
_REQUESTER = contextvars.ContextVar(
|
26
24
|
"requester_identity", default=Requester(org_id=NOBODY_ORG_ID)
|
27
25
|
)
|
28
26
|
|
29
27
|
|
30
|
-
def get_trace_id() -> str:
|
31
|
-
"""Get current trace id."""
|
32
|
-
return _TRACE_ID.get()
|
33
|
-
|
34
|
-
|
35
28
|
def get_service_name() -> str:
|
36
29
|
"""Get current service name."""
|
37
30
|
return _SERVICE_NAME.get()
|
@@ -45,7 +38,6 @@ def get_requester() -> Requester:
|
|
45
38
|
def reset_context(*, service_name: str):
|
46
39
|
"""Reset contextvars for a new request."""
|
47
40
|
_SERVICE_NAME.set(service_name)
|
48
|
-
_TRACE_ID.set(str(uuid.uuid4()))
|
49
41
|
_REQUESTER.set(Requester(org_id=NOBODY_ORG_ID))
|
50
42
|
|
51
43
|
|
@@ -5,12 +5,11 @@ import datetime
|
|
5
5
|
import functools
|
6
6
|
import uuid
|
7
7
|
from collections.abc import Callable, Iterable, Iterator, Sequence
|
8
|
-
from typing import Final, Generic
|
8
|
+
from typing import Final, Generic, Self
|
9
9
|
|
10
10
|
import sqlalchemy as sa
|
11
11
|
import sqlalchemy.orm as sa_orm
|
12
12
|
import structlog
|
13
|
-
from typing_extensions import Self
|
14
13
|
|
15
14
|
from corvic import orm, system
|
16
15
|
from corvic.model._proto_orm_convert import (
|
@@ -54,7 +53,7 @@ class HasProtoSelf(Generic[ProtoObj], abc.ABC):
|
|
54
53
|
@property
|
55
54
|
def created_at(self) -> datetime.datetime | None:
|
56
55
|
if self.proto_self.created_at:
|
57
|
-
return self.proto_self.created_at.ToDatetime(tzinfo=datetime.
|
56
|
+
return self.proto_self.created_at.ToDatetime(tzinfo=datetime.UTC)
|
58
57
|
return None
|
59
58
|
|
60
59
|
|
@@ -119,7 +118,7 @@ class BaseModel(Generic[ID, ProtoObj, OrmObj], UsesOrmID[ID, ProtoObj]):
|
|
119
118
|
while True:
|
120
119
|
try:
|
121
120
|
yield from it
|
122
|
-
except Exception:
|
121
|
+
except Exception:
|
123
122
|
_logger.exception(
|
124
123
|
"omitting source from list: "
|
125
124
|
+ "failed to parse source from database entry",
|
{corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/model/_completion_model.py
RENAMED
@@ -116,16 +116,14 @@ class CompletionModel(
|
|
116
116
|
@property
|
117
117
|
def last_validation_time(self) -> datetime.datetime | None:
|
118
118
|
if self.proto_self.last_validation_time != UNIX_TIMESTAMP_START_DATETIME:
|
119
|
-
return self.proto_self.last_validation_time.ToDatetime(
|
120
|
-
tzinfo=datetime.timezone.utc
|
121
|
-
)
|
119
|
+
return self.proto_self.last_validation_time.ToDatetime(tzinfo=datetime.UTC)
|
122
120
|
return None
|
123
121
|
|
124
122
|
@property
|
125
123
|
def last_successful_validation(self) -> datetime.datetime | None:
|
126
124
|
if self.proto_self.last_successful_validation != UNIX_TIMESTAMP_START_DATETIME:
|
127
125
|
return self.proto_self.last_successful_validation.ToDatetime(
|
128
|
-
tzinfo=datetime.
|
126
|
+
tzinfo=datetime.UTC
|
129
127
|
)
|
130
128
|
return None
|
131
129
|
|
@@ -7,15 +7,14 @@ import dataclasses
|
|
7
7
|
import datetime
|
8
8
|
import functools
|
9
9
|
import uuid
|
10
|
-
from collections.abc import Iterable, Mapping, MutableMapping, Sequence
|
11
|
-
from typing import Any, Final, TypeAlias
|
10
|
+
from collections.abc import AsyncIterable, Iterable, Mapping, MutableMapping, Sequence
|
11
|
+
from typing import Any, Final, Self, TypeAlias
|
12
12
|
|
13
13
|
import pyarrow as pa
|
14
14
|
from google.protobuf import struct_pb2
|
15
15
|
from more_itertools import flatten
|
16
16
|
from sqlalchemy import orm as sa_orm
|
17
17
|
from sqlalchemy.orm.interfaces import LoaderOption
|
18
|
-
from typing_extensions import Self
|
19
18
|
|
20
19
|
from corvic import op_graph, orm, system
|
21
20
|
from corvic.model._base_model import BelongsToRoomModel, UsesOrmID
|
@@ -324,7 +323,7 @@ class Relationship:
|
|
324
323
|
how="inner",
|
325
324
|
)
|
326
325
|
|
327
|
-
def edge_list(self) ->
|
326
|
+
async def edge_list(self) -> AsyncIterable[tuple[Any, Any]]:
|
328
327
|
start_pk = self.start_fv_source.table.schema.get_primary_key()
|
329
328
|
end_pk = self.end_fv_source.table.schema.get_primary_key()
|
330
329
|
|
@@ -340,8 +339,8 @@ class Relationship:
|
|
340
339
|
|
341
340
|
result = self.joined_table().select(result_columns)
|
342
341
|
|
343
|
-
for batch in
|
344
|
-
room_id=self.start_source.room_id
|
342
|
+
for batch in (
|
343
|
+
await result.to_polars(room_id=self.start_source.room_id)
|
345
344
|
).unwrap_or_raise():
|
346
345
|
for row in batch.rows(named=True):
|
347
346
|
yield (row[result_columns[0]], row[result_columns[1]])
|
@@ -6,12 +6,11 @@ import datetime
|
|
6
6
|
import functools
|
7
7
|
import uuid
|
8
8
|
from collections.abc import Iterable, Mapping, Sequence
|
9
|
-
from typing import TypeAlias, cast
|
9
|
+
from typing import Self, TypeAlias, cast
|
10
10
|
|
11
11
|
import polars as pl
|
12
12
|
from sqlalchemy import orm as sa_orm
|
13
13
|
from sqlalchemy.orm.interfaces import LoaderOption
|
14
|
-
from typing_extensions import Self
|
15
14
|
|
16
15
|
import corvic.table
|
17
16
|
from corvic import op_graph, orm, system
|
@@ -6,13 +6,12 @@ import copy
|
|
6
6
|
import datetime
|
7
7
|
import uuid
|
8
8
|
from collections.abc import Iterable, Sequence
|
9
|
-
from typing import TypeAlias
|
9
|
+
from typing import Self, TypeAlias
|
10
10
|
|
11
11
|
import polars as pl
|
12
12
|
import sqlalchemy as sa
|
13
13
|
from sqlalchemy import orm as sa_orm
|
14
14
|
from sqlalchemy.orm.interfaces import LoaderOption
|
15
|
-
from typing_extensions import Self
|
16
15
|
|
17
16
|
from corvic import orm, system
|
18
17
|
from corvic.model._base_model import BelongsToRoomModel
|
@@ -6,13 +6,12 @@ import copy
|
|
6
6
|
import datetime
|
7
7
|
import functools
|
8
8
|
from collections.abc import Iterable, Mapping, Sequence
|
9
|
-
from typing import TypeAlias
|
9
|
+
from typing import Self, TypeAlias
|
10
10
|
|
11
11
|
import polars as pl
|
12
12
|
import sqlalchemy as sa
|
13
13
|
import sqlalchemy.orm as sa_orm
|
14
14
|
from sqlalchemy.orm.interfaces import LoaderOption
|
15
|
-
from typing_extensions import Self
|
16
15
|
|
17
16
|
from corvic import op_graph, orm, system
|
18
17
|
from corvic.model._base_model import BelongsToRoomModel
|
@@ -3,15 +3,15 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
import abc
|
6
|
+
import copy
|
6
7
|
import datetime
|
7
8
|
import uuid
|
8
9
|
from collections.abc import Iterable, Mapping, Sequence
|
9
|
-
from typing import Final, Literal, TypeAlias
|
10
|
+
from typing import Final, Literal, Self, TypeAlias
|
10
11
|
|
11
12
|
import pyarrow as pa
|
12
13
|
import sqlalchemy as sa
|
13
14
|
from sqlalchemy import orm as sa_orm
|
14
|
-
from typing_extensions import Self
|
15
15
|
|
16
16
|
from corvic import op_graph, orm, system
|
17
17
|
from corvic.model._base_model import BelongsToRoomModel
|
@@ -183,6 +183,30 @@ class Space(BelongsToRoomModel[SpaceID, models_pb2.Space, orm.Space]):
|
|
183
183
|
auto_sync=auto_sync,
|
184
184
|
)
|
185
185
|
|
186
|
+
def with_name(self, name: str):
|
187
|
+
proto_self = copy.copy(self.proto_self)
|
188
|
+
|
189
|
+
proto_self.name = name
|
190
|
+
|
191
|
+
return Ok(
|
192
|
+
self.__class__(
|
193
|
+
self.feature_view.client,
|
194
|
+
proto_self,
|
195
|
+
)
|
196
|
+
)
|
197
|
+
|
198
|
+
def with_description(self, description: str):
|
199
|
+
proto_self = copy.copy(self.proto_self)
|
200
|
+
|
201
|
+
proto_self.description = description
|
202
|
+
|
203
|
+
return Ok(
|
204
|
+
self.__class__(
|
205
|
+
self.feature_view.client,
|
206
|
+
proto_self,
|
207
|
+
)
|
208
|
+
)
|
209
|
+
|
186
210
|
@classmethod
|
187
211
|
def from_id(
|
188
212
|
cls,
|
{corvic_engine-0.3.0rc67 → corvic_engine-0.3.0rc69}/python/corvic/op_graph/row_filters/_jsonlogic.py
RENAMED
@@ -16,7 +16,7 @@ from corvic.op_graph.row_filters._row_filters import (
|
|
16
16
|
lt,
|
17
17
|
ne,
|
18
18
|
)
|
19
|
-
from corvic.pa_scalar import from_value
|
19
|
+
from corvic.pa_scalar import from_value, to_value
|
20
20
|
from corvic.result import Error, InvalidArgumentError, Ok
|
21
21
|
|
22
22
|
|
@@ -76,6 +76,35 @@ def _var_name(value: struct_pb2.Value) -> str:
|
|
76
76
|
raise _Error("unexpected operation type")
|
77
77
|
|
78
78
|
|
79
|
+
def _coerce_literal(literal: struct_pb2.Value, dtype: pa.DataType) -> struct_pb2.Value:
|
80
|
+
# Attempt to coerce the literal to the type it needs to be compared against,
|
81
|
+
# if the types don't already align.
|
82
|
+
match literal.WhichOneof("kind"):
|
83
|
+
case "null_value":
|
84
|
+
types_match = pa.types.is_null(dtype)
|
85
|
+
case "bool_value":
|
86
|
+
types_match = pa.types.is_boolean(dtype)
|
87
|
+
case "list_value":
|
88
|
+
# TODO(aneesh): inner checks for nested types
|
89
|
+
types_match = pa.types.is_list(dtype)
|
90
|
+
case "number_value":
|
91
|
+
types_match = pa.types.is_integer(dtype) or pa.types.is_floating(dtype)
|
92
|
+
case "string_value":
|
93
|
+
types_match = pa.types.is_string(dtype)
|
94
|
+
case "struct_value":
|
95
|
+
# TODO(aneesh): inner checks for nested types
|
96
|
+
types_match = pa.types.is_struct(dtype)
|
97
|
+
case None:
|
98
|
+
raise _Error("Unknown literal type")
|
99
|
+
if not types_match:
|
100
|
+
match from_value(literal, dtype):
|
101
|
+
case Ok(coerced_literal):
|
102
|
+
literal = to_value(coerced_literal)
|
103
|
+
case err:
|
104
|
+
raise err
|
105
|
+
return literal
|
106
|
+
|
107
|
+
|
79
108
|
def _simple_compare(
|
80
109
|
op: Literal["==", "!=", "<=", ">=", "<", ">"],
|
81
110
|
operands: Sequence[struct_pb2.Value],
|
@@ -92,6 +121,8 @@ def _simple_compare(
|
|
92
121
|
if dtype is None:
|
93
122
|
raise _Error("unknown literal type", column_name=column_name)
|
94
123
|
|
124
|
+
literal = _coerce_literal(literal, dtype)
|
125
|
+
|
95
126
|
match op:
|
96
127
|
case "==":
|
97
128
|
return eq(column_name, literal, dtype)
|
@@ -3,14 +3,13 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
import uuid
|
6
|
-
from datetime import
|
7
|
-
from typing import Any, ClassVar, Protocol, runtime_checkable
|
6
|
+
from datetime import UTC, datetime
|
7
|
+
from typing import Any, ClassVar, Protocol, Self, runtime_checkable
|
8
8
|
|
9
9
|
import sqlalchemy as sa
|
10
10
|
import sqlalchemy.orm as sa_orm
|
11
11
|
from google.protobuf import timestamp_pb2
|
12
12
|
from sqlalchemy.ext import hybrid
|
13
|
-
from typing_extensions import Self
|
14
13
|
|
15
14
|
from corvic.orm._proto_columns import ProtoMessageDecorator
|
16
15
|
from corvic.orm.func import utc_now
|
@@ -151,7 +150,7 @@ class Base(sa_orm.MappedAsDataclass, sa_orm.DeclarativeBase):
|
|
151
150
|
def created_at(self) -> datetime | None:
|
152
151
|
if not self._created_at:
|
153
152
|
return None
|
154
|
-
return self._created_at.replace(tzinfo=
|
153
|
+
return self._created_at.replace(tzinfo=UTC)
|
155
154
|
|
156
155
|
@created_at.inplace.expression
|
157
156
|
@classmethod
|
@@ -162,7 +161,7 @@ class Base(sa_orm.MappedAsDataclass, sa_orm.DeclarativeBase):
|
|
162
161
|
def updated_at(self) -> datetime | None:
|
163
162
|
if not self._updated_at:
|
164
163
|
return None
|
165
|
-
return self._updated_at.replace(tzinfo=
|
164
|
+
return self._updated_at.replace(tzinfo=UTC)
|
166
165
|
|
167
166
|
@updated_at.inplace.expression
|
168
167
|
@classmethod
|
@@ -3,11 +3,10 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
import abc
|
6
|
-
from typing import Any, Generic, TypeVar
|
6
|
+
from typing import Any, Generic, Self, TypeVar
|
7
7
|
|
8
8
|
import sqlalchemy as sa
|
9
9
|
import sqlalchemy.types as sa_types
|
10
|
-
from typing_extensions import Self
|
11
10
|
|
12
11
|
import corvic.context
|
13
12
|
from corvic.orm.errors import InvalidORMIdentifierError
|
@@ -3,8 +3,8 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
5
|
from collections.abc import Callable, Sequence
|
6
|
-
from datetime import
|
7
|
-
from typing import Any, cast
|
6
|
+
from datetime import UTC, datetime
|
7
|
+
from typing import Any, LiteralString, cast
|
8
8
|
|
9
9
|
import sqlalchemy as sa
|
10
10
|
from google.protobuf import timestamp_pb2
|
@@ -12,7 +12,6 @@ from sqlalchemy import event, exc
|
|
12
12
|
from sqlalchemy import orm as sa_orm
|
13
13
|
from sqlalchemy.ext import hybrid
|
14
14
|
from sqlalchemy.ext.hybrid import hybrid_property
|
15
|
-
from typing_extensions import LiteralString
|
16
15
|
|
17
16
|
import corvic.context
|
18
17
|
from corvic.orm.base import EventBase, EventKey, OrgBase
|
@@ -137,7 +136,7 @@ class SoftDeleteMixin(sa_orm.MappedAsDataclass):
|
|
137
136
|
def deleted_at(self) -> datetime | None:
|
138
137
|
if not self._deleted_at:
|
139
138
|
return None
|
140
|
-
return self._deleted_at.replace(tzinfo=
|
139
|
+
return self._deleted_at.replace(tzinfo=UTC)
|
141
140
|
|
142
141
|
def reset_delete(self):
|
143
142
|
self._deleted_at = None
|
@@ -170,7 +169,7 @@ class SoftDeleteMixin(sa_orm.MappedAsDataclass):
|
|
170
169
|
# set is_live to None instead of False so that orm objects can use it to
|
171
170
|
# build uniqueness constraints that are only enforced on non-deleted objects
|
172
171
|
self.is_live = None
|
173
|
-
self._deleted_at = datetime.now(tz=
|
172
|
+
self._deleted_at = datetime.now(tz=UTC)
|
174
173
|
|
175
174
|
@hybrid_property
|
176
175
|
def is_deleted(self) -> bool:
|
@@ -343,7 +342,7 @@ class Session(sa_orm.Session):
|
|
343
342
|
def _timestamp_or_utc_now(timestamp: datetime | None = None):
|
344
343
|
if timestamp is not None:
|
345
344
|
return timestamp
|
346
|
-
return datetime.now(tz=
|
345
|
+
return datetime.now(tz=UTC)
|
347
346
|
|
348
347
|
|
349
348
|
class EventLoggerMixin(sa_orm.MappedAsDataclass):
|
@@ -383,12 +382,11 @@ class EventLoggerMixin(sa_orm.MappedAsDataclass):
|
|
383
382
|
# this can occur when an event is set on a new object
|
384
383
|
if not self._event_src_id:
|
385
384
|
obj_session.flush()
|
386
|
-
from datetime import timezone
|
387
385
|
|
388
386
|
obj_session.add(
|
389
387
|
EventBase(
|
390
388
|
event=event.event_type,
|
391
|
-
timestamp=event.timestamp.ToDatetime(tzinfo=
|
389
|
+
timestamp=event.timestamp.ToDatetime(tzinfo=UTC),
|
392
390
|
regarding=event.regarding,
|
393
391
|
reason=event.reason,
|
394
392
|
event_key=str(self.event_key),
|
@@ -55,12 +55,11 @@ from typing import (
|
|
55
55
|
Literal,
|
56
56
|
NoReturn,
|
57
57
|
ParamSpec,
|
58
|
+
Self,
|
58
59
|
TypeVar,
|
59
60
|
overload,
|
60
61
|
)
|
61
62
|
|
62
|
-
from typing_extensions import Self
|
63
|
-
|
64
63
|
from corvic.well_known_types import JSONAble, JSONExpressable, to_json
|
65
64
|
|
66
65
|
T_co = TypeVar("T_co", covariant=True)
|