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.
Files changed (216) hide show
  1. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/Cargo.lock +6 -6
  2. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/PKG-INFO +1 -1
  4. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/pyproject.toml +3 -4
  5. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_base_model.py +4 -4
  6. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_completion_model.py +57 -22
  7. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_defaults.py +1 -24
  8. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_feature_view.py +77 -54
  9. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_pipeline.py +70 -51
  10. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_resource.py +45 -28
  11. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_room.py +29 -16
  12. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_source.py +65 -38
  13. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_space.py +93 -79
  14. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_embedder.py +35 -12
  15. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_text_embedder.py +8 -0
  16. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/_orm_backed_proto.py +11 -7
  17. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2.py +4 -4
  18. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2.pyi +4 -0
  19. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2.py +2 -2
  20. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +33 -0
  21. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +14 -0
  22. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/LICENSE +0 -0
  23. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/README.md +0 -0
  24. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/Cargo.toml +0 -0
  25. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2.py +0 -0
  26. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2.pyi +0 -0
  27. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2_grpc.py +0 -0
  28. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  29. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/context/__init__.py +0 -0
  30. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/context/py.typed +0 -0
  31. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/__init__.py +0 -0
  32. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/node2vec.py +0 -0
  33. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embed/py.typed +0 -0
  34. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/__init__.py +0 -0
  35. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/embeddings.py +0 -0
  36. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/embedding_metric/py.typed +0 -0
  37. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/__init__.py +0 -0
  38. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_errors.py +0 -0
  39. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_feature_type.py +0 -0
  40. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/_proto_orm_convert.py +0 -0
  41. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/emodel/py.typed +0 -0
  42. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/__init__.py +0 -0
  43. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/_native.pyi +0 -0
  44. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/engine/py.typed +0 -0
  45. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/eorm/__init__.py +0 -0
  46. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/__init__.py +0 -0
  47. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/_schema.py +0 -0
  48. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/_transformations.py +0 -0
  49. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/aggregation.py +0 -0
  50. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/encoders.py +0 -0
  51. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/errors.py +0 -0
  52. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/feature_types.py +0 -0
  53. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/ops.py +0 -0
  54. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/py.typed +0 -0
  55. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  56. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  57. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  58. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/op_graph/sample_strategy.py +0 -0
  59. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/__init__.py +0 -0
  60. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/_proto_columns.py +0 -0
  61. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/_soft_delete.py +0 -0
  62. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/errors.py +0 -0
  63. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/__init__.py +0 -0
  64. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/utc_func.py +0 -0
  65. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/func/uuid_func.py +0 -0
  66. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/ids.py +0 -0
  67. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/keys.py +0 -0
  68. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/orm/py.typed +0 -0
  69. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/__init__.py +0 -0
  70. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_const.py +0 -0
  71. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_from_value.py +0 -0
  72. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_temporal.py +0 -0
  73. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_to_value.py +0 -0
  74. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/_types.py +0 -0
  75. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/pa_scalar/py.typed +0 -0
  76. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/__init__.py +0 -0
  77. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/_errors.py +0 -0
  78. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  79. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/proto_wrapper/py.typed +0 -0
  80. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/result/__init__.py +0 -0
  81. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/result/py.typed +0 -0
  82. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/__init__.py +0 -0
  83. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/parse_ops.py +0 -0
  84. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/sql/py.typed +0 -0
  85. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/__init__.py +0 -0
  86. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_column_encoding.py +0 -0
  87. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_dimension_reduction.py +0 -0
  88. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_image_embedder.py +0 -0
  89. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/_planner.py +0 -0
  90. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/client.py +0 -0
  91. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/in_memory_executor.py +0 -0
  92. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/op_graph_executor.py +0 -0
  93. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/py.typed +0 -0
  94. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/staging.py +0 -0
  95. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system/storage.py +0 -0
  96. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/__init__.py +0 -0
  97. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/client.py +0 -0
  98. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  99. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/py.typed +0 -0
  100. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  101. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/system_sqlite/staging.py +0 -0
  102. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/__init__.py +0 -0
  103. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/py.typed +0 -0
  104. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/table/table.py +0 -0
  105. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/__init__.py +0 -0
  106. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/_common_transformations.py +0 -0
  107. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/transfer/py.typed +0 -0
  108. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/version/__init__.py +0 -0
  109. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/version/py.typed +0 -0
  110. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/well_known_types/__init__.py +0 -0
  111. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic/well_known_types/py.typed +0 -0
  112. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/__init__.py +0 -0
  113. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/__init__.py +0 -0
  114. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
  115. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
  116. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  117. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  118. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  119. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  120. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/__init__.py +0 -0
  121. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/__init__.py +0 -0
  122. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  123. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  124. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/__init__.py +0 -0
  125. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/__init__.py +0 -0
  126. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  127. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  128. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  129. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  130. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  131. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  132. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  133. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  134. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/__init__.py +0 -0
  135. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  136. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  137. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  138. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  139. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  140. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  141. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  142. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  143. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/__init__.py +0 -0
  144. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/__init__.py +0 -0
  145. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  146. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  147. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  148. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  149. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/__init__.py +0 -0
  150. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  151. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  152. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  153. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  154. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  155. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  156. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  157. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  158. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
  159. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  160. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  161. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  162. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  163. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  164. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  165. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  166. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  167. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  168. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  169. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  170. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  171. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/__init__.py +0 -0
  172. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
  173. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
  174. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
  175. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  176. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  177. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/__init__.py +0 -0
  178. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/__init__.py +0 -0
  179. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
  180. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
  181. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  182. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  183. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  184. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  185. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  186. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  187. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
  188. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
  189. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  190. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  191. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  192. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  193. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  194. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  195. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  196. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  197. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  198. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  199. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  200. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  201. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  202. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  203. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  204. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  205. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  206. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  207. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/__init__.py +0 -0
  208. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/__init__.py +0 -0
  209. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  210. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  211. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
  212. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
  213. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  214. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  215. {corvic_engine-0.3.0rc86 → corvic_engine-0.3.0rc88}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  216. {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.0"
13
+ version = "1.0.1"
14
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
15
- checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
15
+ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
16
16
 
17
17
  [[package]]
18
18
  name = "corvic-engine"
19
- version = "0.3.0-rc.86"
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.86"
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.101"
296
+ version = "2.0.102"
297
297
  source = "registry+https://github.com/rust-lang/crates.io-index"
298
- checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
298
+ checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462"
299
299
  dependencies = [
300
300
  "proc-macro2",
301
301
  "quote",
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.86"
6
+ version = "0.3.0-rc.88"
7
7
  edition = "2021"
8
8
  publish = false
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: corvic-engine
3
- Version: 0.3.0rc86
3
+ Version: 0.3.0rc88
4
4
  Classifier: Environment :: Console
5
5
  Classifier: License :: Other/Proprietary License
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -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.86" # sync this with tool.poetry.version below
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.86"
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.102.4"
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,
@@ -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 | None = None,
130
+ client: system.Client,
132
131
  ):
133
- client = client or Defaults.get_default_client()
134
132
  return cls(
135
- client,
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([cls.from_proto(proto, client) for proto in protos])
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, proto: models_pb2.CompletionModel, client: system.Client | None = None
175
+ cls,
176
+ *,
177
+ proto: models_pb2.CompletionModel,
178
+ client: system.Client,
171
179
  ) -> CompletionModel:
172
- client = client or Defaults.get_default_client()
173
- return cls(client, proto)
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
- client = client or Defaults.get_default_client()
183
- return cls.load_proto_for(completion_model_id, client, session).map(
184
- lambda proto_self: cls.from_proto(proto_self, client)
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(self.client, proto_self)
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(self.client, proto_self)
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(self.client, proto_self)
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(self.client, proto_self)
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(self.client, proto_self)
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(self.client, proto_self)
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, system_sqlite
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, Self, TypeAlias
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
- source.client,
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
- new_proto_self = copy.deepcopy(self.proto_self)
574
- new_proto_self.table_op_graph.CopyFrom(table.to_proto())
575
- return self.__class__(self.client, proto_self=new_proto_self)
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(self.client, self.proto_self.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
- self.client, op_graph.op.from_proto(self.proto_self.table_op_graph)
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
- ) -> Ok[Self] | NotFoundError:
696
- client = client or Defaults.get_default_client()
697
- return cls.load_proto_for(feature_view_id, client, session).map(
698
- lambda proto_self: cls(client, proto_self)
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, proto: models_pb2.FeatureView, client: system.Client | None = None
717
+ cls,
718
+ *,
719
+ proto: models_pb2.FeatureView,
720
+ client: system.Client,
704
721
  ) -> FeatureView:
705
- client = client or Defaults.get_default_client()
706
- return cls(client, proto)
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, fvs)
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, client: system.Client | None = None, room_id: eorm.RoomID | None = None
1015
+ cls, *, room_id: eorm.RoomID | None = None, client: system.Client
998
1016
  ) -> FeatureView:
999
1017
  """Create a FeatureView."""
1000
- client = client or Defaults.get_default_client()
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
- client,
1005
- proto_feature_view,
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) -> Self:
1029
- new_proto_self = copy.deepcopy(self.proto_self)
1030
- new_proto_self.name = name
1031
- return self.__class__(self.client, proto_self=new_proto_self)
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) -> Self:
1034
- new_proto_self = copy.deepcopy(self.proto_self)
1035
- new_proto_self.description = description
1036
- return self.__class__(self.client, proto_self=new_proto_self)
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
- new_proto_self = copy.deepcopy(self.proto_self)
1086
- new_proto_self.feature_view_sources.append(fvs.proto_self)
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
- new_proto_self.feature_view_output.output_sources.append(
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 self.__class__(
1099
- self.client,
1100
- proto_self=new_proto_self,
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
- new_proto_self = copy.deepcopy(self.proto_self)
1328
+ proto_self = copy.deepcopy(self.proto_self)
1306
1329
 
1307
- new_proto_self.feature_view_output.relationships.append(
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
- new_proto_self.feature_view_output.relationships.append(
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 self.__class__(
1324
- self.client,
1325
- proto_self=new_proto_self,
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
- new_proto_self = copy.deepcopy(self.proto_self)
1337
- del new_proto_self.feature_view_sources[:]
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
- new_proto_self.feature_view_sources.append(new_fvs.proto_self)
1376
+ proto_self.feature_view_sources.append(new_fvs.proto_self)
1354
1377
  else:
1355
- new_proto_self.feature_view_sources.append(fvs.proto_self)
1378
+ proto_self.feature_view_sources.append(fvs.proto_self)
1356
1379
 
1357
- return self.__class__(
1358
- self.client,
1359
- proto_self=new_proto_self,
1380
+ return FeatureView(
1381
+ proto_self=proto_self,
1382
+ client=self.client,
1360
1383
  )