corvic-engine 0.3.0rc82__tar.gz → 0.3.0rc84__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.0rc82 → corvic_engine-0.3.0rc84}/Cargo.lock +4 -4
  2. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/PKG-INFO +2 -2
  4. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/pyproject.toml +8 -8
  5. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/__init__.py +40 -37
  6. corvic_engine-0.3.0rc84/python/corvic/emodel/_base_model.py +161 -0
  7. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_completion_model.py +10 -8
  8. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_feature_type.py +1 -1
  9. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_feature_view.py +9 -7
  10. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_pipeline.py +5 -5
  11. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_proto_orm_convert.py +56 -54
  12. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_resource.py +4 -4
  13. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_room.py +4 -4
  14. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_source.py +7 -7
  15. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_space.py +9 -9
  16. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/__init__.py +2 -0
  17. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_embedder.py +3 -0
  18. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_image_embedder.py +52 -20
  19. corvic_engine-0.3.0rc84/python/corvic/transfer/__init__.py +43 -0
  20. corvic_engine-0.3.0rc84/python/corvic/transfer/_common_transformations.py +37 -0
  21. corvic_engine-0.3.0rc82/python/corvic/model/_base_model.py → corvic_engine-0.3.0rc84/python/corvic/transfer/_orm_backed_proto.py +116 -109
  22. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/agent_pb2.py +8 -8
  23. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/agent_pb2.pyi +8 -4
  24. corvic_engine-0.3.0rc84/python/corvic_generated/status/v1/__init__.py +0 -0
  25. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/LICENSE +0 -0
  26. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/README.md +0 -0
  27. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/Cargo.toml +0 -0
  28. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/buf/validate/validate_pb2.py +0 -0
  29. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/buf/validate/validate_pb2.pyi +0 -0
  30. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/buf/validate/validate_pb2_grpc.py +0 -0
  31. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  32. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/context/__init__.py +0 -0
  33. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/context/py.typed +0 -0
  34. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embed/__init__.py +0 -0
  35. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embed/node2vec.py +0 -0
  36. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embed/py.typed +0 -0
  37. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embedding_metric/__init__.py +0 -0
  38. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embedding_metric/embeddings.py +0 -0
  39. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/embedding_metric/py.typed +0 -0
  40. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_defaults.py +0 -0
  41. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/emodel}/_errors.py +0 -0
  42. {corvic_engine-0.3.0rc82/python/corvic/engine → corvic_engine-0.3.0rc84/python/corvic/emodel}/py.typed +0 -0
  43. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/engine/__init__.py +0 -0
  44. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/engine/_native.pyi +0 -0
  45. {corvic_engine-0.3.0rc82/python/corvic/model → corvic_engine-0.3.0rc84/python/corvic/engine}/py.typed +0 -0
  46. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/eorm/__init__.py +0 -0
  47. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/__init__.py +0 -0
  48. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/_schema.py +0 -0
  49. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/_transformations.py +0 -0
  50. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/aggregation.py +0 -0
  51. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/encoders.py +0 -0
  52. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/errors.py +0 -0
  53. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/feature_types.py +0 -0
  54. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/ops.py +0 -0
  55. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/py.typed +0 -0
  56. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  57. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  58. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  59. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/op_graph/sample_strategy.py +0 -0
  60. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/__init__.py +0 -0
  61. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/_proto_columns.py +0 -0
  62. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/_soft_delete.py +0 -0
  63. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/errors.py +0 -0
  64. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/func/__init__.py +0 -0
  65. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/func/utc_func.py +0 -0
  66. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/func/uuid_func.py +0 -0
  67. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/ids.py +0 -0
  68. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/keys.py +0 -0
  69. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/orm/py.typed +0 -0
  70. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/__init__.py +0 -0
  71. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/_const.py +0 -0
  72. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/_from_value.py +0 -0
  73. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/_temporal.py +0 -0
  74. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/_to_value.py +0 -0
  75. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/_types.py +0 -0
  76. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/pa_scalar/py.typed +0 -0
  77. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/proto_wrapper/__init__.py +0 -0
  78. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/proto_wrapper/_errors.py +0 -0
  79. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  80. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/proto_wrapper/py.typed +0 -0
  81. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/result/__init__.py +0 -0
  82. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/result/py.typed +0 -0
  83. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/sql/__init__.py +0 -0
  84. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/sql/parse_ops.py +0 -0
  85. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/sql/py.typed +0 -0
  86. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_column_encoding.py +0 -0
  87. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_dimension_reduction.py +0 -0
  88. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_planner.py +0 -0
  89. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/_text_embedder.py +0 -0
  90. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/client.py +0 -0
  91. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/in_memory_executor.py +0 -0
  92. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/op_graph_executor.py +0 -0
  93. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/py.typed +0 -0
  94. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/staging.py +0 -0
  95. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system/storage.py +0 -0
  96. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/__init__.py +0 -0
  97. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/client.py +0 -0
  98. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  99. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/py.typed +0 -0
  100. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  101. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/system_sqlite/staging.py +0 -0
  102. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/table/__init__.py +0 -0
  103. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/table/py.typed +0 -0
  104. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/table/table.py +0 -0
  105. {corvic_engine-0.3.0rc82/python/corvic/version → corvic_engine-0.3.0rc84/python/corvic/transfer}/py.typed +0 -0
  106. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/version/__init__.py +0 -0
  107. {corvic_engine-0.3.0rc82/python/corvic/well_known_types → corvic_engine-0.3.0rc84/python/corvic/version}/py.typed +0 -0
  108. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic/well_known_types/__init__.py +0 -0
  109. /corvic_engine-0.3.0rc82/python/corvic_generated/__init__.py → /corvic_engine-0.3.0rc84/python/corvic/well_known_types/py.typed +0 -0
  110. {corvic_engine-0.3.0rc82/python/corvic_generated/algorithm → corvic_engine-0.3.0rc84/python/corvic_generated}/__init__.py +0 -0
  111. {corvic_engine-0.3.0rc82/python/corvic_generated/algorithm/graph → corvic_engine-0.3.0rc84/python/corvic_generated/algorithm}/__init__.py +0 -0
  112. {corvic_engine-0.3.0rc82/python/corvic_generated/algorithm/graph/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/algorithm/graph}/__init__.py +0 -0
  113. {corvic_engine-0.3.0rc82/python/corvic_generated/embedding → corvic_engine-0.3.0rc84/python/corvic_generated/algorithm/graph/v1}/__init__.py +0 -0
  114. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  115. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  116. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  117. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  118. {corvic_engine-0.3.0rc82/python/corvic_generated/embedding/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/embedding}/__init__.py +0 -0
  119. {corvic_engine-0.3.0rc82/python/corvic_generated/feature → corvic_engine-0.3.0rc84/python/corvic_generated/embedding/v1}/__init__.py +0 -0
  120. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
  121. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
  122. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  123. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  124. {corvic_engine-0.3.0rc82/python/corvic_generated/feature/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/feature}/__init__.py +0 -0
  125. {corvic_engine-0.3.0rc82/python/corvic_generated/feature/v2 → corvic_engine-0.3.0rc84/python/corvic_generated/feature/v1}/__init__.py +0 -0
  126. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  127. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  128. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  129. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  130. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  131. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  132. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  133. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  134. {corvic_engine-0.3.0rc82/python/corvic_generated/ingest → corvic_engine-0.3.0rc84/python/corvic_generated/feature/v2}/__init__.py +0 -0
  135. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  136. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  137. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  138. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  139. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  140. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  141. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  142. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  143. {corvic_engine-0.3.0rc82/python/corvic_generated/ingest/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/ingest}/__init__.py +0 -0
  144. {corvic_engine-0.3.0rc82/python/corvic_generated/ingest/v2 → corvic_engine-0.3.0rc84/python/corvic_generated/ingest/v1}/__init__.py +0 -0
  145. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  146. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  147. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  148. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  149. {corvic_engine-0.3.0rc82/python/corvic_generated/model → corvic_engine-0.3.0rc84/python/corvic_generated/ingest/v2}/__init__.py +0 -0
  150. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  151. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  152. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  153. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  154. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  155. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  156. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  157. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  158. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
  159. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
  160. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
  161. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
  162. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  163. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  164. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  165. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  166. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  167. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  168. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  169. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  170. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  171. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  172. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  173. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  174. {corvic_engine-0.3.0rc82/python/corvic_generated/model/v1alpha → corvic_engine-0.3.0rc84/python/corvic_generated/model}/__init__.py +0 -0
  175. {corvic_engine-0.3.0rc82/python/corvic_generated/orm → corvic_engine-0.3.0rc84/python/corvic_generated/model/v1alpha}/__init__.py +0 -0
  176. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
  177. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
  178. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  179. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  180. {corvic_engine-0.3.0rc82/python/corvic_generated/orm/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/orm}/__init__.py +0 -0
  181. {corvic_engine-0.3.0rc82/python/corvic_generated/status → corvic_engine-0.3.0rc84/python/corvic_generated/orm/v1}/__init__.py +0 -0
  182. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  183. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  184. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  185. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  186. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  187. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  188. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
  189. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
  190. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  191. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  192. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  193. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  194. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  195. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  196. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  197. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  198. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  199. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  200. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  201. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  202. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  203. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  204. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  205. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  206. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  207. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  208. {corvic_engine-0.3.0rc82/python/corvic_generated/status/v1 → corvic_engine-0.3.0rc84/python/corvic_generated/status}/__init__.py +0 -0
  209. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  210. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  211. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
  212. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
  213. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  214. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  215. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  216. {corvic_engine-0.3.0rc82 → corvic_engine-0.3.0rc84}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -16,7 +16,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
16
16
 
17
17
  [[package]]
18
18
  name = "corvic-engine"
19
- version = "0.3.0-rc.82"
19
+ version = "0.3.0-rc.84"
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.82"
60
+ version = "0.3.0-rc.84"
61
61
  dependencies = [
62
62
  "version_check",
63
63
  ]
@@ -165,9 +165,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
165
165
 
166
166
  [[package]]
167
167
  name = "portable-atomic"
168
- version = "1.11.0"
168
+ version = "1.11.1"
169
169
  source = "registry+https://github.com/rust-lang/crates.io-index"
170
- checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
170
+ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
171
171
 
172
172
  [[package]]
173
173
  name = "portable-atomic-util"
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.82"
6
+ version = "0.3.0-rc.84"
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.0rc82
3
+ Version: 0.3.0rc84
4
4
  Classifier: Environment :: Console
5
5
  Classifier: License :: Other/Proprietary License
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -22,12 +22,12 @@ Requires-Dist: sqlalchemy>=2
22
22
  Requires-Dist: sqlglot>=25.6.0,<26
23
23
  Requires-Dist: structlog>=24
24
24
  Requires-Dist: tqdm
25
- Requires-Dist: typing-extensions>=4.9
26
25
  Requires-Dist: umap-learn>=0.5.5 ; extra == 'ml'
27
26
  Requires-Dist: pillow>=10.0.0 ; extra == 'ml'
28
27
  Requires-Dist: scikit-learn>=1.4.0 ; extra == 'ml'
29
28
  Requires-Dist: transformers[torch]>=4.45.0 ; extra == 'ml'
30
29
  Requires-Dist: sentencepiece>=0.2.0 ; extra == 'ml'
30
+ Requires-Dist: torchvision==0.22.1 ; extra == 'ml'
31
31
  Requires-Dist: opentelemetry-api>=1.20.0 ; extra == 'telemetry'
32
32
  Requires-Dist: opentelemetry-sdk>=1.20.0 ; extra == 'telemetry'
33
33
  Provides-Extra: ml
@@ -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.82" # sync this with tool.poetry.version below
21
+ version = "0.3.0-rc.84" # 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.
@@ -41,7 +41,6 @@ dependencies = [
41
41
  "sqlglot >= 25.6.0, < 26",
42
42
  "structlog >= 24",
43
43
  "tqdm",
44
- "typing-extensions >= 4.9",
45
44
  ]
46
45
 
47
46
  [project.optional-dependencies]
@@ -53,6 +52,7 @@ ml = [
53
52
  "scikit-learn >= 1.4.0",
54
53
  "transformers[torch] >= 4.45.0", # Needed for pre-trained torch models
55
54
  "sentencepiece >= 0.2.0", # Needed for SigLIP2
55
+ "torchvision == 0.22.1",
56
56
  ]
57
57
 
58
58
  telemetry = [
@@ -73,7 +73,7 @@ packages = [
73
73
  ]
74
74
  description = ""
75
75
  authors = []
76
- version = "0.3.0-rc.82"
76
+ version = "0.3.0-rc.84"
77
77
 
78
78
  [tool.poetry.scripts]
79
79
  check = "corvic_check.cli:main"
@@ -107,8 +107,6 @@ sqlalchemy = "2.0.36"
107
107
  sqlglot = { extras = ["rs"], version = "^25.8.1" }
108
108
  structlog = "^24.1.0"
109
109
  tqdm = "^4.66.3"
110
- types-cachetools = "^5.3.0"
111
- typing-extensions = "^4.9.0"
112
110
 
113
111
  [tool.poetry.group.dev.dependencies]
114
112
  anyio = "^4"
@@ -160,9 +158,10 @@ scikit-learn = "^1.4.0"
160
158
  optional = true
161
159
 
162
160
  [tool.poetry.group.ml.dependencies]
161
+ sentencepiece = "^0.2.0"
163
162
  torch = [
164
- { platform = "linux", version = "^2.7.0", source = "torch-cpu-linux" },
165
- { platform = "darwin", version = "^2.7.0", source = "pypi" },
163
+ { platform = "linux", version = "^2.7.1", source = "torch-cpu-linux" },
164
+ { platform = "darwin", version = "^2.7.1", source = "pypi" },
166
165
  ]
167
166
  torchvision = [
168
167
  { platform = "linux", version = "^0.22.1", source = "torch-cpu-linux" },
@@ -409,9 +408,9 @@ root_packages = [
409
408
  "corvic.context",
410
409
  "corvic.embed",
411
410
  "corvic.embedding_metric",
411
+ "corvic.emodel",
412
412
  "corvic.engine",
413
413
  "corvic.eorm",
414
- "corvic.model",
415
414
  "corvic.op_graph",
416
415
  "corvic.orm",
417
416
  "corvic.pa_scalar",
@@ -421,6 +420,7 @@ root_packages = [
421
420
  "corvic.system",
422
421
  "corvic.system_sqlite",
423
422
  "corvic.table",
423
+ "corvic.transfer",
424
424
  "corvic.version",
425
425
  "corvic.well_known_types",
426
426
  "corvic_check",
@@ -1,26 +1,34 @@
1
1
  """Data modeling objects for creating corvic pipelines."""
2
2
 
3
- import corvic.model._feature_type as feature_type
4
- from corvic.model._base_model import (
5
- BaseModel,
6
- BelongsToOrgModel,
7
- BelongsToRoomModel,
8
- HasProtoSelf,
9
- UsesOrmID,
10
- non_empty_timestamp_to_datetime,
3
+ import corvic.emodel._feature_type as feature_type
4
+ from corvic import transfer
5
+ from corvic.emodel._base_model import (
6
+ BelongsToOrgModelMixin,
7
+ BelongsToRoomModelMixin,
8
+ HasIdOrmBackedModel,
9
+ NoIdModel,
10
+ OrgWideStandardModel,
11
+ OrmBelongsToRoomT,
12
+ OrmHasIdBelongsToOrgT,
13
+ OrmHasIdBelongsToRoomT,
14
+ ProtoBelongsToOrgT,
15
+ ProtoBelongsToRoomT,
16
+ ProtoHasIdBelongsToOrgT,
17
+ ProtoHasIdBelongsToRoomT,
18
+ StandardModel,
11
19
  )
12
- from corvic.model._completion_model import (
20
+ from corvic.emodel._completion_model import (
13
21
  CompletionModel,
14
22
  CompletionModelID,
15
23
  )
16
- from corvic.model._feature_view import (
24
+ from corvic.emodel._feature_view import (
17
25
  Column,
18
26
  DeepGnnCsvUrlMetadata,
19
27
  FeatureView,
20
28
  FeatureViewEdgeTableMetadata,
21
29
  FeatureViewRelationshipsMetadata,
22
30
  )
23
- from corvic.model._pipeline import (
31
+ from corvic.emodel._pipeline import (
24
32
  ChunkPdfsPipeline,
25
33
  OcrPdfsPipeline,
26
34
  Pipeline,
@@ -29,29 +37,22 @@ from corvic.model._pipeline import (
29
37
  SpecificPipeline,
30
38
  UnknownTransformationPipeline,
31
39
  )
32
- from corvic.model._proto_orm_convert import (
33
- UNCOMMITTED_ID_PREFIX,
34
- OrmBelongsToOrgObj,
35
- OrmBelongsToRoomObj,
36
- OrmObj,
37
- ProtoBelongsToOrgObj,
38
- ProtoBelongsToRoomObj,
39
- ProtoObj,
40
+ from corvic.emodel._proto_orm_convert import (
40
41
  add_orm_org_mixin_to_session,
41
42
  add_orm_room_mixin_to_session,
42
43
  space_orm_to_proto,
43
44
  timestamp_orm_to_proto,
44
45
  )
45
- from corvic.model._resource import (
46
+ from corvic.emodel._resource import (
46
47
  Resource,
47
48
  ResourceID,
48
49
  )
49
- from corvic.model._room import (
50
+ from corvic.emodel._room import (
50
51
  Room,
51
52
  RoomID,
52
53
  )
53
- from corvic.model._source import Source, SourceID
54
- from corvic.model._space import (
54
+ from corvic.emodel._source import Source, SourceID
55
+ from corvic.emodel._space import (
55
56
  ConcatAndEmbedParameters,
56
57
  EmbedAndConcatParameters,
57
58
  EmbedImageParameters,
@@ -71,11 +72,11 @@ from corvic.model._space import (
71
72
  )
72
73
 
73
74
  FeatureType = feature_type.FeatureType
75
+ OrmIdT = transfer.OrmIdT
74
76
 
75
77
  __all__ = [
76
- "BaseModel",
77
- "BelongsToOrgModel",
78
- "BelongsToRoomModel",
78
+ "BelongsToOrgModelMixin",
79
+ "BelongsToRoomModelMixin",
79
80
  "ChunkPdfsPipeline",
80
81
  "Column",
81
82
  "CompletionModel",
@@ -88,18 +89,22 @@ __all__ = [
88
89
  "FeatureView",
89
90
  "FeatureViewEdgeTableMetadata",
90
91
  "FeatureViewRelationshipsMetadata",
91
- "HasProtoSelf",
92
+ "HasIdOrmBackedModel",
92
93
  "ImageSpace",
94
+ "NoIdModel",
93
95
  "Node2VecParameters",
94
96
  "OcrPdfsPipeline",
95
- "OrmObj",
96
- "OrmBelongsToOrgObj",
97
- "OrmBelongsToRoomObj",
97
+ "OrgWideStandardModel",
98
+ "OrmBelongsToRoomT",
99
+ "OrmHasIdBelongsToOrgT",
100
+ "OrmHasIdBelongsToRoomT",
101
+ "OrmIdT",
98
102
  "Pipeline",
99
103
  "PipelineID",
100
- "ProtoObj",
101
- "ProtoBelongsToOrgObj",
102
- "ProtoBelongsToRoomObj",
104
+ "ProtoBelongsToOrgT",
105
+ "ProtoBelongsToRoomT",
106
+ "ProtoHasIdBelongsToOrgT",
107
+ "ProtoHasIdBelongsToRoomT",
103
108
  "RelationalSpace",
104
109
  "Resource",
105
110
  "ResourceID",
@@ -113,11 +118,10 @@ __all__ = [
113
118
  "SpecificPipeline",
114
119
  "SpecificSpace",
115
120
  "SpecificSpaceParameters",
121
+ "StandardModel",
116
122
  "TabularSpace",
117
- "UNCOMMITTED_ID_PREFIX",
118
- "UnknownTransformationPipeline",
119
123
  "UnknownSpace",
120
- "UsesOrmID",
124
+ "UnknownTransformationPipeline",
121
125
  "add_orm_org_mixin_to_session",
122
126
  "add_orm_room_mixin_to_session",
123
127
  "embedding_model_proto_to_name",
@@ -125,7 +129,6 @@ __all__ = [
125
129
  "image_model_can_embed_images",
126
130
  "image_model_can_embed_text",
127
131
  "image_model_proto_to_name",
128
- "non_empty_timestamp_to_datetime",
129
132
  "space_orm_to_proto",
130
133
  "timestamp_orm_to_proto",
131
134
  ]
@@ -0,0 +1,161 @@
1
+ import datetime
2
+ from collections.abc import Callable, Iterable
3
+ from typing import Generic
4
+
5
+ import sqlalchemy as sa
6
+ import sqlalchemy.orm as sa_orm
7
+
8
+ from corvic import eorm, system, transfer
9
+ from corvic.emodel._proto_orm_convert import (
10
+ OrmBelongsToRoomT,
11
+ OrmHasIdBelongsToOrgT,
12
+ OrmHasIdBelongsToRoomT,
13
+ ProtoBelongsToOrgT,
14
+ ProtoBelongsToRoomT,
15
+ ProtoHasIdBelongsToOrgT,
16
+ ProtoHasIdBelongsToRoomT,
17
+ )
18
+ from corvic.result import (
19
+ InvalidArgumentError,
20
+ NotFoundError,
21
+ Ok,
22
+ )
23
+
24
+
25
+ def _make_room_filter_query_transfrom(
26
+ room_id: eorm.RoomID | None,
27
+ existing_transform: Callable[
28
+ [sa.Select[tuple[transfer.OrmT]]], sa.Select[tuple[transfer.OrmT]]
29
+ ]
30
+ | None,
31
+ ):
32
+ def query_transform(
33
+ query: sa.Select[tuple[transfer.OrmT]],
34
+ ) -> sa.Select[tuple[transfer.OrmT]]:
35
+ if room_id:
36
+ query = query.filter_by(room_id=room_id)
37
+ if existing_transform:
38
+ query = existing_transform(query)
39
+ return query
40
+
41
+ if room_id:
42
+ return query_transform
43
+ return existing_transform
44
+
45
+
46
+ class OrmBackedModel(
47
+ Generic[transfer.ProtoT, transfer.OrmT],
48
+ transfer.OrmBackedProto[transfer.ProtoT, transfer.OrmT],
49
+ ):
50
+ @classmethod
51
+ def list_as_proto(
52
+ cls,
53
+ client: system.Client,
54
+ *,
55
+ limit: int | None = None,
56
+ room_id: eorm.RoomID | None = None,
57
+ created_before: datetime.datetime | None = None,
58
+ additional_query_transform: Callable[
59
+ [sa.Select[tuple[transfer.OrmT]]], sa.Select[tuple[transfer.OrmT]]
60
+ ]
61
+ | None = None,
62
+ existing_session: sa_orm.Session | None = None,
63
+ ) -> Ok[list[transfer.ProtoT]] | NotFoundError | InvalidArgumentError:
64
+ return super().list_as_proto(
65
+ client,
66
+ limit=limit,
67
+ created_before=created_before,
68
+ additional_query_transform=_make_room_filter_query_transfrom(
69
+ room_id, additional_query_transform
70
+ ),
71
+ existing_session=existing_session,
72
+ )
73
+
74
+
75
+ class HasIdOrmBackedModel(
76
+ Generic[transfer.OrmIdT, transfer.ProtoHasIdT, transfer.OrmHasIdT],
77
+ transfer.HasIdOrmBackedProto[
78
+ transfer.OrmIdT, transfer.ProtoHasIdT, transfer.OrmHasIdT
79
+ ],
80
+ ):
81
+ @classmethod
82
+ def list_as_proto(
83
+ cls,
84
+ client: system.Client,
85
+ *,
86
+ limit: int | None = None,
87
+ room_id: eorm.RoomID | None = None,
88
+ created_before: datetime.datetime | None = None,
89
+ ids: Iterable[transfer.OrmIdT] | None = None,
90
+ additional_query_transform: Callable[
91
+ [sa.Select[tuple[transfer.OrmHasIdT]]], sa.Select[tuple[transfer.OrmHasIdT]]
92
+ ]
93
+ | None = None,
94
+ existing_session: sa_orm.Session | None = None,
95
+ ) -> Ok[list[transfer.ProtoHasIdT]] | NotFoundError | InvalidArgumentError:
96
+ return super().list_as_proto(
97
+ client,
98
+ limit=limit,
99
+ created_before=created_before,
100
+ ids=ids,
101
+ additional_query_transform=_make_room_filter_query_transfrom(
102
+ room_id, additional_query_transform
103
+ ),
104
+ existing_session=existing_session,
105
+ )
106
+
107
+
108
+ class BelongsToOrgModelMixin(
109
+ Generic[ProtoBelongsToOrgT], transfer.HasProtoSelf[ProtoBelongsToOrgT]
110
+ ):
111
+ """Base for orm wrappers with org mixin providing a unified update mechanism."""
112
+
113
+ @property
114
+ def org_id(self) -> eorm.OrgID:
115
+ return eorm.OrgID().from_str(self.proto_self.org_id)
116
+
117
+
118
+ class BelongsToRoomModelMixin(
119
+ Generic[ProtoBelongsToRoomT], transfer.HasProtoSelf[ProtoBelongsToRoomT]
120
+ ):
121
+ """Base for orm wrappers with room mixin providing a unified update mechanism."""
122
+
123
+ @property
124
+ def room_id(self) -> eorm.RoomID:
125
+ return eorm.RoomID().from_str(self.proto_self.room_id)
126
+
127
+
128
+ class OrgWideStandardModel(
129
+ Generic[transfer.OrmIdT, ProtoHasIdBelongsToOrgT, OrmHasIdBelongsToOrgT],
130
+ BelongsToOrgModelMixin[ProtoHasIdBelongsToOrgT],
131
+ HasIdOrmBackedModel[
132
+ transfer.OrmIdT, ProtoHasIdBelongsToOrgT, OrmHasIdBelongsToOrgT
133
+ ],
134
+ ):
135
+ """Base for most models, though the lion's share are StandardModels.
136
+
137
+ Most models are typically referenced by an ID, and belong to an org.
138
+ """
139
+
140
+
141
+ class StandardModel(
142
+ Generic[transfer.OrmIdT, ProtoHasIdBelongsToRoomT, OrmHasIdBelongsToRoomT],
143
+ BelongsToRoomModelMixin[ProtoHasIdBelongsToRoomT],
144
+ OrgWideStandardModel[
145
+ transfer.OrmIdT, ProtoHasIdBelongsToRoomT, OrmHasIdBelongsToRoomT
146
+ ],
147
+ ):
148
+ """Base for most models.
149
+
150
+ Like OrgWideStandardModel, but more specific. The majority of models belong to a
151
+ room.
152
+ """
153
+
154
+
155
+ class NoIdModel(
156
+ Generic[ProtoBelongsToRoomT, OrmBelongsToRoomT],
157
+ BelongsToRoomModelMixin[ProtoBelongsToRoomT],
158
+ BelongsToOrgModelMixin[ProtoBelongsToRoomT],
159
+ transfer.OrmBackedProto[ProtoBelongsToRoomT, OrmBelongsToRoomT],
160
+ ):
161
+ """Like StandardModel, but for objects that are not usually referenced by ID."""
@@ -9,10 +9,10 @@ from typing import Literal, TypeAlias
9
9
 
10
10
  from sqlalchemy import orm as sa_orm
11
11
 
12
- from corvic import eorm, system
13
- from corvic.model._base_model import BelongsToOrgModel, non_empty_timestamp_to_datetime
14
- from corvic.model._defaults import Defaults
15
- from corvic.model._proto_orm_convert import (
12
+ from corvic import eorm, system, transfer
13
+ from corvic.emodel._base_model import OrgWideStandardModel
14
+ from corvic.emodel._defaults import Defaults
15
+ from corvic.emodel._proto_orm_convert import (
16
16
  completion_model_delete_orms,
17
17
  completion_model_orm_to_proto,
18
18
  completion_model_proto_to_orm,
@@ -26,9 +26,9 @@ OrgID: TypeAlias = eorm.OrgID
26
26
 
27
27
 
28
28
  class CompletionModel(
29
- BelongsToOrgModel[
29
+ OrgWideStandardModel[
30
30
  CompletionModelID, models_pb2.CompletionModel, eorm.CompletionModel
31
- ]
31
+ ],
32
32
  ):
33
33
  """Completion Models."""
34
34
 
@@ -112,11 +112,13 @@ class CompletionModel(
112
112
 
113
113
  @property
114
114
  def last_validation_time(self) -> datetime.datetime | None:
115
- return non_empty_timestamp_to_datetime(self.proto_self.last_validation_time)
115
+ return transfer.non_empty_timestamp_to_datetime(
116
+ self.proto_self.last_validation_time
117
+ )
116
118
 
117
119
  @property
118
120
  def last_successful_validation(self) -> datetime.datetime | None:
119
- return non_empty_timestamp_to_datetime(
121
+ return transfer.non_empty_timestamp_to_datetime(
120
122
  self.proto_self.last_successful_validation
121
123
  )
122
124
 
@@ -1,4 +1,4 @@
1
- import corvic.model._source as source
1
+ import corvic.emodel._source as source
2
2
  from corvic.op_graph import feature_type
3
3
 
4
4
  # types
@@ -16,15 +16,15 @@ from more_itertools import flatten
16
16
  from sqlalchemy import orm as sa_orm
17
17
  from sqlalchemy.orm.interfaces import LoaderOption
18
18
 
19
- from corvic import eorm, op_graph, system
20
- from corvic.model._base_model import BelongsToRoomModel, UsesOrmID
21
- from corvic.model._defaults import Defaults
22
- from corvic.model._proto_orm_convert import (
19
+ from corvic import eorm, op_graph, system, transfer
20
+ from corvic.emodel._base_model import StandardModel
21
+ from corvic.emodel._defaults import Defaults
22
+ from corvic.emodel._proto_orm_convert import (
23
23
  feature_view_delete_orms,
24
24
  feature_view_orm_to_proto,
25
25
  feature_view_proto_to_orm,
26
26
  )
27
- from corvic.model._source import Source, SourceID
27
+ from corvic.emodel._source import Source, SourceID
28
28
  from corvic.result import InvalidArgumentError, NotFoundError, Ok
29
29
  from corvic.table import (
30
30
  DataclassAsTypedMetadataMixin,
@@ -539,7 +539,9 @@ class RelationshipPath:
539
539
  return f"end-{uuid.uuid4()}"
540
540
 
541
541
 
542
- class FeatureViewSource(UsesOrmID[FeatureViewSourceID, models_pb2.FeatureViewSource]):
542
+ class FeatureViewSource(
543
+ transfer.UsesOrmID[FeatureViewSourceID, models_pb2.FeatureViewSource]
544
+ ):
543
545
  """A table from a source with some extra operations defined by a feature view."""
544
546
 
545
547
  @classmethod
@@ -642,7 +644,7 @@ class DeepGnnCsvUrlMetadata(DataclassAsTypedMetadataMixin):
642
644
 
643
645
 
644
646
  class FeatureView(
645
- BelongsToRoomModel[FeatureViewID, models_pb2.FeatureView, eorm.FeatureView]
647
+ StandardModel[FeatureViewID, models_pb2.FeatureView, eorm.FeatureView]
646
648
  ):
647
649
  """FeatureViews describe how Sources should be modeled to create a feature space.
648
650
 
@@ -14,14 +14,14 @@ from sqlalchemy.orm.interfaces import LoaderOption
14
14
 
15
15
  import corvic.table
16
16
  from corvic import eorm, op_graph, system
17
- from corvic.model._base_model import BelongsToRoomModel
18
- from corvic.model._defaults import Defaults
19
- from corvic.model._proto_orm_convert import (
17
+ from corvic.emodel._base_model import StandardModel
18
+ from corvic.emodel._defaults import Defaults
19
+ from corvic.emodel._proto_orm_convert import (
20
20
  pipeline_delete_orms,
21
21
  pipeline_orm_to_proto,
22
22
  pipeline_proto_to_orm,
23
23
  )
24
- from corvic.model._source import Source
24
+ from corvic.emodel._source import Source
25
25
  from corvic.result import InvalidArgumentError, NotFoundError, Ok, UnavailableError
26
26
  from corvic_generated.model.v1alpha import models_pb2
27
27
  from corvic_generated.orm.v1 import pipeline_pb2
@@ -30,7 +30,7 @@ PipelineID: TypeAlias = eorm.PipelineID
30
30
  RoomID: TypeAlias = eorm.RoomID
31
31
 
32
32
 
33
- class Pipeline(BelongsToRoomModel[PipelineID, models_pb2.Pipeline, eorm.Pipeline]):
33
+ class Pipeline(StandardModel[PipelineID, models_pb2.Pipeline, eorm.Pipeline]):
34
34
  """Pipelines map resources to sources."""
35
35
 
36
36
  @classmethod