corvic-engine 0.3.0rc47__tar.gz → 0.3.0rc49__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 (250) hide show
  1. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/Cargo.lock +2 -2
  2. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/PKG-INFO +1 -1
  4. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/pyproject.toml +2 -2
  5. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_feature_view.py +3 -1
  6. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_resource.py +1 -2
  7. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/__init__.py +0 -2
  8. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/storage.py +51 -78
  9. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/client.py +0 -1
  10. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/staging.py +11 -6
  11. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/table/table.py +17 -13
  12. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/agent_pb2.py +2 -2
  13. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/agent_pb2.pyi +2 -0
  14. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/LICENSE +0 -0
  15. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/README.md +0 -0
  16. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/Cargo.toml +0 -0
  17. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/expression_pb2.py +0 -0
  18. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/expression_pb2.pyi +0 -0
  19. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/expression_pb2_grpc.py +0 -0
  20. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/expression_pb2_grpc.pyi +0 -0
  21. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/priv/private_pb2.py +0 -0
  22. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/priv/private_pb2.pyi +0 -0
  23. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/priv/private_pb2_grpc.py +0 -0
  24. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/priv/private_pb2_grpc.pyi +0 -0
  25. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/validate_pb2.py +0 -0
  26. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/validate_pb2.pyi +0 -0
  27. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/validate_pb2_grpc.py +0 -0
  28. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  29. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/context/__init__.py +0 -0
  30. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/context/py.typed +0 -0
  31. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embed/__init__.py +0 -0
  32. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embed/node2vec.py +0 -0
  33. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embed/py.typed +0 -0
  34. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embedding_metric/__init__.py +0 -0
  35. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embedding_metric/embeddings.py +0 -0
  36. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/embedding_metric/py.typed +0 -0
  37. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/engine/__init__.py +0 -0
  38. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/engine/_native.pyi +0 -0
  39. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/engine/py.typed +0 -0
  40. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/__init__.py +0 -0
  41. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_agent.py +0 -0
  42. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_base_model.py +0 -0
  43. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_completion_model.py +0 -0
  44. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_defaults.py +0 -0
  45. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_errors.py +0 -0
  46. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_feature_type.py +0 -0
  47. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_pipeline.py +0 -0
  48. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_proto_orm_convert.py +0 -0
  49. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_room.py +0 -0
  50. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_source.py +0 -0
  51. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/_space.py +0 -0
  52. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/model/py.typed +0 -0
  53. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/__init__.py +0 -0
  54. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/_schema.py +0 -0
  55. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/_transformations.py +0 -0
  56. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/aggregation.py +0 -0
  57. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/encoders.py +0 -0
  58. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/errors.py +0 -0
  59. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/feature_types.py +0 -0
  60. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/ops.py +0 -0
  61. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/py.typed +0 -0
  62. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  63. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  64. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  65. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/op_graph/sample_strategy.py +0 -0
  66. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/__init__.py +0 -0
  67. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/_proto_columns.py +0 -0
  68. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/base.py +0 -0
  69. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/errors.py +0 -0
  70. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/func/__init__.py +0 -0
  71. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/func/utc_func.py +0 -0
  72. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/func/uuid_func.py +0 -0
  73. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/ids.py +0 -0
  74. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/keys.py +0 -0
  75. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/mixins.py +0 -0
  76. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/orm/py.typed +0 -0
  77. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/__init__.py +0 -0
  78. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/_const.py +0 -0
  79. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/_from_value.py +0 -0
  80. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/_temporal.py +0 -0
  81. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/_to_value.py +0 -0
  82. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/_types.py +0 -0
  83. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/pa_scalar/py.typed +0 -0
  84. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/proto_wrapper/__init__.py +0 -0
  85. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/proto_wrapper/_errors.py +0 -0
  86. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  87. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/proto_wrapper/py.typed +0 -0
  88. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/result/__init__.py +0 -0
  89. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/result/py.typed +0 -0
  90. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/sql/__init__.py +0 -0
  91. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/sql/parse_ops.py +0 -0
  92. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/sql/py.typed +0 -0
  93. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/_dimension_reduction.py +0 -0
  94. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/_embedder.py +0 -0
  95. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/_image_embedder.py +0 -0
  96. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/_planner.py +0 -0
  97. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/_text_embedder.py +0 -0
  98. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/client.py +0 -0
  99. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/in_memory_executor.py +0 -0
  100. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/op_graph_executor.py +0 -0
  101. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/py.typed +0 -0
  102. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system/staging.py +0 -0
  103. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/__init__.py +0 -0
  104. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  105. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/py.typed +0 -0
  106. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  107. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/table/__init__.py +0 -0
  108. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/table/py.typed +0 -0
  109. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/version/__init__.py +0 -0
  110. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/version/py.typed +0 -0
  111. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/well_known_types/__init__.py +0 -0
  112. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic/well_known_types/py.typed +0 -0
  113. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/__init__.py +0 -0
  114. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/__init__.py +0 -0
  115. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
  116. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
  117. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  118. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  119. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  120. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  121. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/__init__.py +0 -0
  122. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/v1/__init__.py +0 -0
  123. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/v1/service_pb2.py +0 -0
  124. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/v1/service_pb2.pyi +0 -0
  125. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/v1/service_pb2_grpc.py +0 -0
  126. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/chat/v1/service_pb2_grpc.pyi +0 -0
  127. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/__init__.py +0 -0
  128. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/v1/__init__.py +0 -0
  129. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/v1/service_pb2.py +0 -0
  130. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/v1/service_pb2.pyi +0 -0
  131. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/v1/service_pb2_grpc.py +0 -0
  132. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/completion/v1/service_pb2_grpc.pyi +0 -0
  133. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/__init__.py +0 -0
  134. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/v1/__init__.py +0 -0
  135. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/v1/settings_pb2.py +0 -0
  136. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/v1/settings_pb2.pyi +0 -0
  137. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/v1/settings_pb2_grpc.py +0 -0
  138. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/config/v1/settings_pb2_grpc.pyi +0 -0
  139. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/__init__.py +0 -0
  140. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/v1/__init__.py +0 -0
  141. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
  142. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
  143. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  144. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  145. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/__init__.py +0 -0
  146. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/__init__.py +0 -0
  147. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  148. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  149. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  150. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  151. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  152. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  153. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  154. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  155. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/__init__.py +0 -0
  156. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  157. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  158. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  159. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  160. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  161. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  162. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  163. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  164. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/__init__.py +0 -0
  165. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v1/__init__.py +0 -0
  166. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  167. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  168. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  169. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  170. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/__init__.py +0 -0
  171. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  172. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  173. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  174. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  175. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  176. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  177. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  178. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  179. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
  180. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
  181. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
  182. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
  183. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  184. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  185. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  186. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  187. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  188. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  189. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  190. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  191. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  192. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  193. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  194. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  195. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/__init__.py +0 -0
  196. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
  197. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
  198. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
  199. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  200. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  201. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/__init__.py +0 -0
  202. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/__init__.py +0 -0
  203. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  204. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  205. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  206. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  207. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  208. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  209. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
  210. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
  211. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  212. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  213. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  214. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  215. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  216. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  217. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  218. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  219. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  220. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  221. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  222. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  223. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  224. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  225. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  226. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  227. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  228. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  229. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/__init__.py +0 -0
  230. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/v1/__init__.py +0 -0
  231. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/v1/platform_pb2.py +0 -0
  232. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/v1/platform_pb2.pyi +0 -0
  233. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/v1/platform_pb2_grpc.py +0 -0
  234. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/platform/v1/platform_pb2_grpc.pyi +0 -0
  235. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/__init__.py +0 -0
  236. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/v1/__init__.py +0 -0
  237. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/v1/query_pb2.py +0 -0
  238. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/v1/query_pb2.pyi +0 -0
  239. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/v1/query_pb2_grpc.py +0 -0
  240. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/query/v1/query_pb2_grpc.pyi +0 -0
  241. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/__init__.py +0 -0
  242. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/__init__.py +0 -0
  243. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  244. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  245. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
  246. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
  247. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  248. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  249. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  250. {corvic_engine-0.3.0rc47 → corvic_engine-0.3.0rc49}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -22,7 +22,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
22
22
 
23
23
  [[package]]
24
24
  name = "corvic-engine"
25
- version = "0.3.0-rc.47"
25
+ version = "0.3.0-rc.49"
26
26
  dependencies = [
27
27
  "numpy",
28
28
  "pyo3",
@@ -63,7 +63,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
63
63
 
64
64
  [[package]]
65
65
  name = "engine-walk"
66
- version = "0.3.0-rc.47"
66
+ version = "0.3.0-rc.49"
67
67
  dependencies = [
68
68
  "version_check",
69
69
  ]
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.47"
6
+ version = "0.3.0-rc.49"
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.0rc47
3
+ Version: 0.3.0rc49
4
4
  Classifier: Environment :: Console
5
5
  Classifier: License :: Other/Proprietary License
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -20,7 +20,7 @@ authors = [
20
20
  ]
21
21
  readme = "README.md"
22
22
  description = "Seamless embedding generation and retrieval."
23
- version = "0.3.0-rc.47" # sync this with tool.poetry.version below
23
+ version = "0.3.0-rc.49" # sync this with tool.poetry.version below
24
24
 
25
25
  # TODO(ddn): Pull dependencies from tool.poetry.dependencies. We use maturin as
26
26
  # the build system but poetry for the development environment.
@@ -74,7 +74,7 @@ packages = [
74
74
  ]
75
75
  description = ""
76
76
  authors = []
77
- version = "0.3.0-rc.47"
77
+ version = "0.3.0-rc.49"
78
78
 
79
79
  [tool.poetry.scripts]
80
80
  check = "corvic_check.cli:main"
@@ -340,7 +340,9 @@ class Relationship:
340
340
 
341
341
  result = self.joined_table().select(result_columns)
342
342
 
343
- for batch in result.to_polars().unwrap_or_raise():
343
+ for batch in result.to_polars(
344
+ room_id=self.start_source.room_id
345
+ ).unwrap_or_raise():
344
346
  for row in batch.rows(named=True):
345
347
  yield (row[result_columns[0]], row[result_columns[1]])
346
348
 
@@ -4,7 +4,6 @@ from __future__ import annotations
4
4
 
5
5
  import copy
6
6
  import datetime
7
- import uuid
8
7
  from collections.abc import Iterable, Sequence
9
8
  from typing import TypeAlias
10
9
 
@@ -219,8 +218,8 @@ class Resource(BaseModel[ResourceID, models_pb2.Resource, orm.Resource]):
219
218
  ) -> Self:
220
219
  client = client or Defaults.get_default_client()
221
220
  room_id = room_id or Defaults.get_default_room_id(client)
222
- blob = client.storage_manager.tabular.blob(f"polars_dataframe/{uuid.uuid4()}")
223
221
 
222
+ blob = client.storage_manager.make_tabular_blob(room_id, "anonymous_tables")
224
223
  with blob.open(mode="wb") as stream:
225
224
  data_frame.write_parquet(stream)
226
225
 
@@ -48,7 +48,6 @@ from corvic.system.storage import (
48
48
  Blob,
49
49
  BlobClient,
50
50
  Bucket,
51
- DataKindManager,
52
51
  DataMisplacedError,
53
52
  StorageManager,
54
53
  )
@@ -71,7 +70,6 @@ __all__ = [
71
70
  "Clip",
72
71
  "ClipText",
73
72
  "DEFAULT_VECTOR_COLUMN_NAMES_TO_SIZES",
74
- "DataKindManager",
75
73
  "DataMisplacedError",
76
74
  "DimensionReducer",
77
75
  "EmbedTextContext",
@@ -3,14 +3,14 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import contextlib
6
- import io
7
6
  import uuid
8
7
  from collections.abc import Iterator
9
- from typing import Any, Literal
8
+ from typing import Any, BinaryIO, Final, Literal
10
9
 
11
10
  from typing_extensions import Protocol
12
11
 
13
- from corvic.result import Error, Ok
12
+ from corvic import orm
13
+ from corvic.result import Error
14
14
 
15
15
 
16
16
  class DataMisplacedError(Error):
@@ -74,9 +74,7 @@ class Blob(Protocol):
74
74
  def url(self) -> str: ...
75
75
 
76
76
  @contextlib.contextmanager
77
- def open(
78
- self, mode: Literal["rb", "wb"], **kwargs: Any
79
- ) -> Iterator[io.BytesIO]: ...
77
+ def open(self, mode: Literal["rb", "wb"], **kwargs: Any) -> Iterator[BinaryIO]: ...
80
78
 
81
79
  def delete(self) -> None: ...
82
80
 
@@ -105,60 +103,16 @@ class Bucket(Protocol):
105
103
  def list_blobs(self, prefix: str | None = None) -> Iterator[Blob]: ...
106
104
 
107
105
 
108
- class DataKindManager:
109
- """Manages the names of blobs that corvic stores for a particular data kind.
110
-
111
- Kinds are managed by the NamespaceManager
112
- """
113
-
114
- def __init__(self, storage_manager: StorageManager, prefix: str):
115
- if prefix.endswith("/"):
116
- raise ValueError("prefix should not end with a path separator (/)")
117
- self._namespace_manager = storage_manager
118
- self._prefix = prefix
119
-
120
- @property
121
- def prefix(self):
122
- return self._prefix
123
-
124
- def make_anonymous_table_url(self):
125
- return self.blob(f"anonymous_tables/{uuid.uuid4()}.parquet").url
126
-
127
- def blob(self, blob_name: str):
128
- return self._namespace_manager.bucket.blob(f"{self.prefix}/{blob_name}")
129
-
130
- def _blob_from_url(self, url: str) -> Ok[Blob] | DataMisplacedError:
131
- blob = self._namespace_manager.blob_from_url(url)
132
- if self._namespace_manager.bucket.name != blob.bucket.name:
133
- return DataMisplacedError(
134
- "data stored at a different bucket than expected",
135
- url=url,
136
- expected_bucket=self._namespace_manager.bucket.name,
137
- )
138
- if not blob.name.startswith(self._prefix):
139
- return DataMisplacedError(
140
- "data stored at a different prefix than expected",
141
- url=url,
142
- expected_prefix=self._prefix,
143
- )
144
- return Ok(blob)
145
-
146
- def blob_name_from_url(self, url: str) -> Ok[str] | DataMisplacedError:
147
- def _to_name(blob: Blob) -> str:
148
- return blob.name.removeprefix(self._prefix + "/")
149
-
150
- return self._blob_from_url(url=url).map(_to_name)
151
-
152
-
153
106
  class StorageManager:
154
107
  """Manages the names of blobs that corvic stores."""
155
108
 
156
109
  _blob_client: BlobClient
157
110
  _bucket_name: str
158
- _unstructured_manager: DataKindManager
159
- _tabular_manager: DataKindManager
160
- _space_run_manager: DataKindManager
161
- _vector_manager: DataKindManager
111
+
112
+ unstructured_prefix: Final[str]
113
+ tabular_prefix: Final[str]
114
+ vector_prefix: Final[str]
115
+ bucket: Final[Bucket]
162
116
 
163
117
  def __init__(
164
118
  self,
@@ -167,36 +121,55 @@ class StorageManager:
167
121
  bucket_name: str,
168
122
  unstructured_prefix: str,
169
123
  tabular_prefix: str,
170
- space_run_prefix: str,
171
124
  vector_prefix: str,
172
125
  ):
173
126
  self._blob_client = blob_client
174
127
  self._bucket_name = bucket_name
175
128
 
176
- self._unstructured_manager = DataKindManager(self, unstructured_prefix)
177
- self._tabular_manager = DataKindManager(self, tabular_prefix)
178
- self._space_run_manager = DataKindManager(self, space_run_prefix)
179
- self._vector_manager = DataKindManager(self, vector_prefix)
180
-
181
- def blob_from_url(self, url: str):
182
- return self._blob_client.blob_from_url(url)
129
+ if unstructured_prefix.endswith("/") or tabular_prefix.endswith("/"):
130
+ raise ValueError("prefix should not end with a path separator (/)")
183
131
 
184
- @property
185
- def bucket(self) -> Bucket:
186
- return self._blob_client.bucket(self._bucket_name)
132
+ self.unstructured_prefix = unstructured_prefix
133
+ self.tabular_prefix = tabular_prefix
134
+ self.vector_prefix = vector_prefix
187
135
 
188
- @property
189
- def tabular(self):
190
- return self._tabular_manager
136
+ self.bucket = self._blob_client.bucket(self._bucket_name)
191
137
 
192
- @property
193
- def unstructured(self):
194
- return self._unstructured_manager
138
+ @staticmethod
139
+ def _render_room_id(room_id: orm.RoomID) -> str:
140
+ return f"{int(str(room_id)):016}"
195
141
 
196
- @property
197
- def space_run(self):
198
- return self._space_run_manager
142
+ def blob_from_url(self, url: str):
143
+ return self._blob_client.blob_from_url(url)
199
144
 
200
- @property
201
- def vector(self):
202
- return self._vector_manager
145
+ def make_tabular_blob(self, room_id: orm.RoomID, suffix: str | None = None) -> Blob:
146
+ if suffix:
147
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}/{suffix}"
148
+ else:
149
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}"
150
+ return self.bucket.blob(f"{self.tabular_prefix}/{name}")
151
+
152
+ def make_unstructured_blob(
153
+ self, room_id: orm.RoomID, suffix: str | None = None
154
+ ) -> Blob:
155
+ if suffix:
156
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}/{suffix}"
157
+ else:
158
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}"
159
+ return self.bucket.blob(f"{self.unstructured_prefix}/{name}")
160
+
161
+ def make_vector_blob(self, room_id: orm.RoomID, suffix: str | None = None) -> Blob:
162
+ if suffix:
163
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}/{suffix}"
164
+ else:
165
+ name = f"{self._render_room_id(room_id)}/{uuid.uuid4()}"
166
+ return self.bucket.blob(f"{self.vector_prefix}/{name}")
167
+
168
+ def get_tabular_blob_from_blob_name(self, blob_name: str) -> Blob:
169
+ return self.bucket.blob(f"{self.tabular_prefix}/{blob_name}")
170
+
171
+ def get_unstructured_blob_from_blob_name(self, blob_name: str) -> Blob:
172
+ return self.bucket.blob(f"{self.unstructured_prefix}/{blob_name}")
173
+
174
+ def get_vector_blob_from_blob_name(self, blob_name: str) -> Blob:
175
+ return self.bucket.blob(f"{self.vector_prefix}/{blob_name}")
@@ -135,7 +135,6 @@ class Client(corvic.system.Client):
135
135
  bucket_name=bucket.name,
136
136
  unstructured_prefix="unstructured_data",
137
137
  tabular_prefix="tabular_data",
138
- space_run_prefix="experiment_run_data",
139
138
  vector_prefix="vectors",
140
139
  )
141
140
  corvic.orm.Base.metadata.create_all(self._sa_engine)
@@ -15,7 +15,6 @@ import sqlglot.expressions
15
15
  from corvic.op_graph import Schema
16
16
  from corvic.result import InternalError, Ok
17
17
  from corvic.system import (
18
- DataKindManager,
19
18
  StagingDB,
20
19
  StorageManager,
21
20
  TableSliceArgs,
@@ -255,17 +254,18 @@ class DuckDBStaging(StagingDB):
255
254
 
256
255
  def _update_blobs_for_prefix(
257
256
  self,
258
- manager: DataKindManager,
259
257
  next_count: dict[str, int | None],
258
+ prefix: str,
260
259
  transform_table: Callable[[str, pa.Table], None] | None = None,
261
260
  ):
262
261
  bucket = self._storage_manager.bucket
263
262
  blobs = bucket.list_blobs()
264
- prefix = manager.prefix
265
263
  table_blobs = [
266
264
  (
267
265
  blob,
268
- manager.blob_name_from_url(url=blob.url).unwrap_or_raise(),
266
+ self._storage_manager.blob_from_url(blob.url).name.removeprefix(
267
+ prefix + "/"
268
+ ),
269
269
  )
270
270
  for blob in blobs
271
271
  if blob.name.startswith(prefix)
@@ -289,9 +289,14 @@ class DuckDBStaging(StagingDB):
289
289
  As a side-effect, update _table_counts.
290
290
  """
291
291
  next_count: dict[str, int | None] = {}
292
- self._update_blobs_for_prefix(self._storage_manager.tabular, next_count)
293
292
  self._update_blobs_for_prefix(
294
- self._storage_manager.vector, next_count, self._add_vector_indexes
293
+ next_count,
294
+ self._storage_manager.tabular_prefix,
295
+ )
296
+ self._update_blobs_for_prefix(
297
+ next_count,
298
+ self._storage_manager.vector_prefix,
299
+ self._add_vector_indexes,
295
300
  )
296
301
  self._table_counts = next_count
297
302
 
@@ -23,7 +23,7 @@ import structlog
23
23
  from google.protobuf import struct_pb2
24
24
  from typing_extensions import Self
25
25
 
26
- from corvic import op_graph
26
+ from corvic import op_graph, orm
27
27
  from corvic.op_graph import Encoder, Schema
28
28
  from corvic.result import (
29
29
  InternalError,
@@ -341,17 +341,19 @@ class Table:
341
341
  if len(null_columns) > 0:
342
342
  _logger.warning("dropped null columns", columns=null_columns)
343
343
 
344
- match client.storage_manager.tabular.blob_name_from_url(url).and_then(
345
- lambda t: op_graph.from_staging(
346
- blob_names=[t],
347
- arrow_schema=schema.to_arrow(),
348
- feature_types=[field.ftype for field in schema],
349
- expected_rows=num_rows,
350
- )
344
+ blob_name = client.storage_manager.blob_from_url(blob.url).name.removeprefix(
345
+ client.storage_manager.tabular_prefix + "/"
346
+ )
347
+
348
+ match op_graph.from_staging(
349
+ blob_names=[blob_name],
350
+ arrow_schema=schema.to_arrow(),
351
+ feature_types=[field.ftype for field in schema],
352
+ expected_rows=num_rows,
351
353
  ):
352
354
  case Ok(op):
353
355
  pass
354
- case DataMisplacedError() | InvalidArgumentError() as error:
356
+ case InvalidArgumentError() as error:
355
357
  return error
356
358
  if len(null_columns) > 0:
357
359
  match op.select_columns(kept_columns):
@@ -366,7 +368,7 @@ class Table:
366
368
  return self.op_graph.to_bytes()
367
369
 
368
370
  def to_polars(
369
- self, *, flatten_single_field: bool = False
371
+ self, room_id: orm.RoomID, *, flatten_single_field: bool = False
370
372
  ) -> (
371
373
  Ok[Iterable[pl.DataFrame]]
372
374
  | InvalidArgumentError
@@ -374,7 +376,7 @@ class Table:
374
376
  | ResourceExhaustedError
375
377
  ):
376
378
  """Stream over the view as a series of Polars DataFrames."""
377
- match self.to_batches():
379
+ match self.to_batches(room_id=room_id):
378
380
  case Ok(batch_reader):
379
381
  pass
380
382
  case err:
@@ -438,7 +440,7 @@ class Table:
438
440
  )
439
441
 
440
442
  def to_batches(
441
- self,
443
+ self, room_id: orm.RoomID
442
444
  ) -> (
443
445
  Ok[pa.RecordBatchReader]
444
446
  | InvalidArgumentError
@@ -450,7 +452,9 @@ class Table:
450
452
  tables_to_compute=[
451
453
  TableComputeContext(
452
454
  self.op_graph,
453
- output_url_prefix=self.client.storage_manager.space_run.make_anonymous_table_url(),
455
+ output_url_prefix=self.client.storage_manager.make_tabular_blob(
456
+ room_id=room_id, suffix="anonymous_tables"
457
+ ).url,
454
458
  )
455
459
  ],
456
460
  )
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
14
14
 
15
15
 
16
16
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x63orvic/orm/v1/agent.proto\x12\rcorvic.orm.v1\"\xf3\x01\n\x12\x45xecutorParameters\x12L\n\x15\x63ompletion_model_type\x18\x01 \x01(\x0e\x32\x18.corvic.orm.v1.ModelTypeR\x13\x63ompletionModelType\x12\x42\n\x1d\x63ompletion_system_instruction\x18\x02 \x01(\tR\x1b\x63ompletionSystemInstruction\x12\x33\n\x13\x63ompletion_model_id\x18\x03 \x01(\tH\x00R\x11\x63ompletionModelId\x88\x01\x01\x42\x16\n\x14_completion_model_id\"V\n\x10SpaceInstruction\x12 \n\x0binstruction\x18\x01 \x01(\tR\x0binstruction\x12 \n\x0cspace_run_id\x18\x02 \x01(\tR\nspaceRunId\"\x89\x02\n\x16OrchestratorParameters\x12\x1b\n\tspace_ids\x18\x01 \x03(\tR\x08spaceIds\x12k\n\x12space_instructions\x18\x02 \x03(\x0b\x32<.corvic.orm.v1.OrchestratorParameters.SpaceInstructionsEntryR\x11spaceInstructions\x1a\x65\n\x16SpaceInstructionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.corvic.orm.v1.SpaceInstructionR\x05value:\x02\x38\x01\"\xc5\x01\n\x0f\x41gentParameters\x12R\n\x13\x65xecutor_parameters\x18\x01 \x01(\x0b\x32!.corvic.orm.v1.ExecutorParametersR\x12\x65xecutorParameters\x12^\n\x17orchestrator_parameters\x18\x02 \x01(\x0b\x32%.corvic.orm.v1.OrchestratorParametersR\x16orchestratorParameters*\xe0\x04\n\tModelType\x12\x1a\n\x16MODEL_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19MODEL_TYPE_GEMINI_1_5_PRO\x10\x01\x12%\n!MODEL_TYPE_GEMINI_1_5_PRO_PREVIEW\x10\x02\x12\x1f\n\x1bMODEL_TYPE_GEMINI_1_5_FLASH\x10\x03\x12\'\n#MODEL_TYPE_GEMINI_1_5_FLASH_PREVIEW\x10\x04\x12\'\n#MODEL_TYPE_GEMINI_2_0_FLASH_PREVIEW\x10\r\x12\x30\n,MODEL_TYPE_GEMINI_2_0_FLASH_THINKING_PREVIEW\x10\x10\x12\x1b\n\x17MODEL_TYPE_GPT_4_O_MINI\x10\x05\x12\x16\n\x12MODEL_TYPE_GPT_4_O\x10\x06\x12\x1c\n\x18MODEL_TYPE_GPT_3_5_TURBO\x10\x07\x12\x12\n\x0eMODEL_TYPE_O_1\x10\x0e\x12\x17\n\x13MODEL_TYPE_O_1_MINI\x10\x0f\x12\x17\n\x13MODEL_TYPE_O_3_MINI\x10\x12\x12 \n\x1cMODEL_TYPE_CLAUDE_3_5_SONNET\x10\x08\x12\x1d\n\x19MODEL_TYPE_CLAUDE_3_HAIKU\x10\t\x12\x1c\n\x18MODEL_TYPE_MISTRAL_LARGE\x10\n\x12\x1b\n\x17MODEL_TYPE_MISTRAL_NEMO\x10\x0b\x12 \n\x1cMODEL_TYPE_MISTRAL_CODESTRAL\x10\x0c\x12\x15\n\x11MODEL_TYPE_CUSTOM\x10\x11\x62\x06proto3')
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x63orvic/orm/v1/agent.proto\x12\rcorvic.orm.v1\"\xf3\x01\n\x12\x45xecutorParameters\x12L\n\x15\x63ompletion_model_type\x18\x01 \x01(\x0e\x32\x18.corvic.orm.v1.ModelTypeR\x13\x63ompletionModelType\x12\x42\n\x1d\x63ompletion_system_instruction\x18\x02 \x01(\tR\x1b\x63ompletionSystemInstruction\x12\x33\n\x13\x63ompletion_model_id\x18\x03 \x01(\tH\x00R\x11\x63ompletionModelId\x88\x01\x01\x42\x16\n\x14_completion_model_id\"V\n\x10SpaceInstruction\x12 \n\x0binstruction\x18\x01 \x01(\tR\x0binstruction\x12 \n\x0cspace_run_id\x18\x02 \x01(\tR\nspaceRunId\"\x89\x02\n\x16OrchestratorParameters\x12\x1b\n\tspace_ids\x18\x01 \x03(\tR\x08spaceIds\x12k\n\x12space_instructions\x18\x02 \x03(\x0b\x32<.corvic.orm.v1.OrchestratorParameters.SpaceInstructionsEntryR\x11spaceInstructions\x1a\x65\n\x16SpaceInstructionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.corvic.orm.v1.SpaceInstructionR\x05value:\x02\x38\x01\"\xc5\x01\n\x0f\x41gentParameters\x12R\n\x13\x65xecutor_parameters\x18\x01 \x01(\x0b\x32!.corvic.orm.v1.ExecutorParametersR\x12\x65xecutorParameters\x12^\n\x17orchestrator_parameters\x18\x02 \x01(\x0b\x32%.corvic.orm.v1.OrchestratorParametersR\x16orchestratorParameters*\x81\x05\n\tModelType\x12\x1a\n\x16MODEL_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19MODEL_TYPE_GEMINI_1_5_PRO\x10\x01\x12%\n!MODEL_TYPE_GEMINI_1_5_PRO_PREVIEW\x10\x02\x12\x1f\n\x1bMODEL_TYPE_GEMINI_1_5_FLASH\x10\x03\x12\'\n#MODEL_TYPE_GEMINI_1_5_FLASH_PREVIEW\x10\x04\x12\'\n#MODEL_TYPE_GEMINI_2_0_FLASH_PREVIEW\x10\r\x12\x30\n,MODEL_TYPE_GEMINI_2_0_FLASH_THINKING_PREVIEW\x10\x10\x12\x1f\n\x1bMODEL_TYPE_GEMINI_2_0_FLASH\x10\x13\x12\x1b\n\x17MODEL_TYPE_GPT_4_O_MINI\x10\x05\x12\x16\n\x12MODEL_TYPE_GPT_4_O\x10\x06\x12\x1c\n\x18MODEL_TYPE_GPT_3_5_TURBO\x10\x07\x12\x12\n\x0eMODEL_TYPE_O_1\x10\x0e\x12\x17\n\x13MODEL_TYPE_O_1_MINI\x10\x0f\x12\x17\n\x13MODEL_TYPE_O_3_MINI\x10\x12\x12 \n\x1cMODEL_TYPE_CLAUDE_3_5_SONNET\x10\x08\x12\x1d\n\x19MODEL_TYPE_CLAUDE_3_HAIKU\x10\t\x12\x1c\n\x18MODEL_TYPE_MISTRAL_LARGE\x10\n\x12\x1b\n\x17MODEL_TYPE_MISTRAL_NEMO\x10\x0b\x12 \n\x1cMODEL_TYPE_MISTRAL_CODESTRAL\x10\x0c\x12\x15\n\x11MODEL_TYPE_CUSTOM\x10\x11\x62\x06proto3')
18
18
 
19
19
  _globals = globals()
20
20
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,7 +24,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
24
24
  _globals['_ORCHESTRATORPARAMETERS_SPACEINSTRUCTIONSENTRY']._options = None
25
25
  _globals['_ORCHESTRATORPARAMETERS_SPACEINSTRUCTIONSENTRY']._serialized_options = b'8\001'
26
26
  _globals['_MODELTYPE']._serialized_start=847
27
- _globals['_MODELTYPE']._serialized_end=1455
27
+ _globals['_MODELTYPE']._serialized_end=1488
28
28
  _globals['_EXECUTORPARAMETERS']._serialized_start=45
29
29
  _globals['_EXECUTORPARAMETERS']._serialized_end=288
30
30
  _globals['_SPACEINSTRUCTION']._serialized_start=290
@@ -15,6 +15,7 @@ class ModelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
15
15
  MODEL_TYPE_GEMINI_1_5_FLASH_PREVIEW: _ClassVar[ModelType]
16
16
  MODEL_TYPE_GEMINI_2_0_FLASH_PREVIEW: _ClassVar[ModelType]
17
17
  MODEL_TYPE_GEMINI_2_0_FLASH_THINKING_PREVIEW: _ClassVar[ModelType]
18
+ MODEL_TYPE_GEMINI_2_0_FLASH: _ClassVar[ModelType]
18
19
  MODEL_TYPE_GPT_4_O_MINI: _ClassVar[ModelType]
19
20
  MODEL_TYPE_GPT_4_O: _ClassVar[ModelType]
20
21
  MODEL_TYPE_GPT_3_5_TURBO: _ClassVar[ModelType]
@@ -34,6 +35,7 @@ MODEL_TYPE_GEMINI_1_5_FLASH: ModelType
34
35
  MODEL_TYPE_GEMINI_1_5_FLASH_PREVIEW: ModelType
35
36
  MODEL_TYPE_GEMINI_2_0_FLASH_PREVIEW: ModelType
36
37
  MODEL_TYPE_GEMINI_2_0_FLASH_THINKING_PREVIEW: ModelType
38
+ MODEL_TYPE_GEMINI_2_0_FLASH: ModelType
37
39
  MODEL_TYPE_GPT_4_O_MINI: ModelType
38
40
  MODEL_TYPE_GPT_4_O: ModelType
39
41
  MODEL_TYPE_GPT_3_5_TURBO: ModelType