corvic-engine 0.3.0rc85__tar.gz → 0.3.0rc86__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 (217) hide show
  1. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/Cargo.lock +2 -2
  2. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/PKG-INFO +1 -1
  4. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/pyproject.toml +2 -2
  5. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_base_model.py +2 -3
  6. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_completion_model.py +2 -4
  7. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_feature_view.py +2 -2
  8. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_pipeline.py +2 -2
  9. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_proto_orm_convert.py +15 -15
  10. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_resource.py +2 -2
  11. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_source.py +2 -2
  12. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_space.py +2 -2
  13. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/__init__.py +2 -0
  14. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/_soft_delete.py +12 -3
  15. corvic_engine-0.3.0rc86/python/corvic/orm/errors.py +54 -0
  16. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/transfer/_orm_backed_proto.py +6 -22
  17. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/resource_pb2.py +11 -5
  18. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/resource_pb2.pyi +12 -0
  19. corvic_engine-0.3.0rc85/python/corvic/orm/errors.py +0 -18
  20. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/LICENSE +0 -0
  21. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/README.md +0 -0
  22. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/Cargo.toml +0 -0
  23. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/buf/validate/validate_pb2.py +0 -0
  24. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/buf/validate/validate_pb2.pyi +0 -0
  25. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/buf/validate/validate_pb2_grpc.py +0 -0
  26. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  27. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/context/__init__.py +0 -0
  28. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/context/py.typed +0 -0
  29. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embed/__init__.py +0 -0
  30. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embed/node2vec.py +0 -0
  31. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embed/py.typed +0 -0
  32. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embedding_metric/__init__.py +0 -0
  33. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embedding_metric/embeddings.py +0 -0
  34. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/embedding_metric/py.typed +0 -0
  35. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/__init__.py +0 -0
  36. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_defaults.py +0 -0
  37. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_errors.py +0 -0
  38. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_feature_type.py +0 -0
  39. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/_room.py +0 -0
  40. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/emodel/py.typed +0 -0
  41. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/engine/__init__.py +0 -0
  42. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/engine/_native.pyi +0 -0
  43. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/engine/py.typed +0 -0
  44. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/eorm/__init__.py +0 -0
  45. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/__init__.py +0 -0
  46. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/_schema.py +0 -0
  47. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/_transformations.py +0 -0
  48. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/aggregation.py +0 -0
  49. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/encoders.py +0 -0
  50. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/errors.py +0 -0
  51. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/feature_types.py +0 -0
  52. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/ops.py +0 -0
  53. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/py.typed +0 -0
  54. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  55. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  56. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  57. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/op_graph/sample_strategy.py +0 -0
  58. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/_proto_columns.py +0 -0
  59. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/func/__init__.py +0 -0
  60. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/func/utc_func.py +0 -0
  61. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/func/uuid_func.py +0 -0
  62. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/ids.py +0 -0
  63. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/keys.py +0 -0
  64. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/orm/py.typed +0 -0
  65. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/__init__.py +0 -0
  66. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/_const.py +0 -0
  67. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/_from_value.py +0 -0
  68. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/_temporal.py +0 -0
  69. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/_to_value.py +0 -0
  70. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/_types.py +0 -0
  71. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/pa_scalar/py.typed +0 -0
  72. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/proto_wrapper/__init__.py +0 -0
  73. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/proto_wrapper/_errors.py +0 -0
  74. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  75. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/proto_wrapper/py.typed +0 -0
  76. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/result/__init__.py +0 -0
  77. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/result/py.typed +0 -0
  78. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/sql/__init__.py +0 -0
  79. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/sql/parse_ops.py +0 -0
  80. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/sql/py.typed +0 -0
  81. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/__init__.py +0 -0
  82. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_column_encoding.py +0 -0
  83. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_dimension_reduction.py +0 -0
  84. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_embedder.py +0 -0
  85. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_image_embedder.py +0 -0
  86. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_planner.py +0 -0
  87. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/_text_embedder.py +0 -0
  88. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/client.py +0 -0
  89. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/in_memory_executor.py +0 -0
  90. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/op_graph_executor.py +0 -0
  91. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/py.typed +0 -0
  92. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/staging.py +0 -0
  93. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system/storage.py +0 -0
  94. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/__init__.py +0 -0
  95. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/client.py +0 -0
  96. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  97. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/py.typed +0 -0
  98. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  99. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/system_sqlite/staging.py +0 -0
  100. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/table/__init__.py +0 -0
  101. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/table/py.typed +0 -0
  102. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/table/table.py +0 -0
  103. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/transfer/__init__.py +0 -0
  104. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/transfer/_common_transformations.py +0 -0
  105. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/transfer/py.typed +0 -0
  106. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/version/__init__.py +0 -0
  107. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/version/py.typed +0 -0
  108. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/well_known_types/__init__.py +0 -0
  109. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic/well_known_types/py.typed +0 -0
  110. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/__init__.py +0 -0
  111. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/__init__.py +0 -0
  112. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
  113. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
  114. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  115. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  116. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  117. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  118. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/__init__.py +0 -0
  119. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/v1/__init__.py +0 -0
  120. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
  121. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
  122. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  123. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  124. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/__init__.py +0 -0
  125. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/__init__.py +0 -0
  126. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  127. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  128. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  129. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  130. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  131. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  132. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  133. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  134. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/__init__.py +0 -0
  135. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  136. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  137. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  138. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  139. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  140. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  141. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  142. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  143. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/__init__.py +0 -0
  144. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v1/__init__.py +0 -0
  145. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  146. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  147. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  148. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  149. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/__init__.py +0 -0
  150. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  151. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  152. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  153. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  154. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  155. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  156. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  157. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  158. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
  159. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
  160. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  161. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  162. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  163. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  164. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  165. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  166. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  167. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  168. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  169. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  170. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  171. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  172. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/__init__.py +0 -0
  173. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
  174. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/v1alpha/models_pb2.py +0 -0
  175. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/v1alpha/models_pb2.pyi +0 -0
  176. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  177. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  178. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/__init__.py +0 -0
  179. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/__init__.py +0 -0
  180. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
  181. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
  182. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  183. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  184. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  185. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  186. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  187. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  188. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
  189. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
  190. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  191. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  192. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  193. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  194. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  195. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  196. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  197. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  198. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  199. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  200. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  201. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  202. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  203. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  204. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  205. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  206. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  207. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  208. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/__init__.py +0 -0
  209. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/__init__.py +0 -0
  210. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  211. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  212. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
  213. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
  214. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  215. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  216. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  217. {corvic_engine-0.3.0rc85 → corvic_engine-0.3.0rc86}/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.85"
19
+ version = "0.3.0-rc.86"
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.85"
60
+ version = "0.3.0-rc.86"
61
61
  dependencies = [
62
62
  "version_check",
63
63
  ]
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.85"
6
+ version = "0.3.0-rc.86"
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.0rc85
3
+ Version: 0.3.0rc86
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.85" # sync this with tool.poetry.version below
21
+ version = "0.3.0-rc.86" # 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.85"
76
+ version = "0.3.0-rc.86"
77
77
 
78
78
  [tool.poetry.scripts]
79
79
  check = "corvic_check.cli:main"
@@ -3,7 +3,6 @@ from collections.abc import Callable, Iterable
3
3
  from typing import Generic
4
4
 
5
5
  import sqlalchemy as sa
6
- import sqlalchemy.orm as sa_orm
7
6
 
8
7
  from corvic import eorm, system, transfer
9
8
  from corvic.emodel._proto_orm_convert import (
@@ -59,7 +58,7 @@ class OrmBackedModel(
59
58
  [sa.Select[tuple[transfer.OrmT]]], sa.Select[tuple[transfer.OrmT]]
60
59
  ]
61
60
  | None = None,
62
- existing_session: sa_orm.Session | None = None,
61
+ existing_session: eorm.Session | None = None,
63
62
  ) -> Ok[list[transfer.ProtoT]] | NotFoundError | InvalidArgumentError:
64
63
  return super().list_as_proto(
65
64
  client,
@@ -91,7 +90,7 @@ class HasIdOrmBackedModel(
91
90
  [sa.Select[tuple[transfer.OrmHasIdT]]], sa.Select[tuple[transfer.OrmHasIdT]]
92
91
  ]
93
92
  | None = None,
94
- existing_session: sa_orm.Session | None = None,
93
+ existing_session: eorm.Session | None = None,
95
94
  ) -> Ok[list[transfer.ProtoHasIdT]] | NotFoundError | InvalidArgumentError:
96
95
  return super().list_as_proto(
97
96
  client,
@@ -7,8 +7,6 @@ import datetime
7
7
  from collections.abc import Iterable, Sequence
8
8
  from typing import Literal, TypeAlias
9
9
 
10
- from sqlalchemy import orm as sa_orm
11
-
12
10
  from corvic import eorm, system, transfer
13
11
  from corvic.emodel._base_model import OrgWideStandardModel
14
12
  from corvic.emodel._defaults import Defaults
@@ -151,7 +149,7 @@ class CompletionModel(
151
149
  created_before: datetime.datetime | None = None,
152
150
  client: system.Client | None = None,
153
151
  ids: Iterable[CompletionModelID] | None = None,
154
- existing_session: sa_orm.Session | None = None,
152
+ existing_session: eorm.Session | None = None,
155
153
  ) -> Ok[list[CompletionModel]] | NotFoundError | InvalidArgumentError:
156
154
  """List completion models."""
157
155
  client = client or Defaults.get_default_client()
@@ -179,7 +177,7 @@ class CompletionModel(
179
177
  cls,
180
178
  completion_model_id: CompletionModelID,
181
179
  client: system.Client | None = None,
182
- session: sa_orm.Session | None = None,
180
+ session: eorm.Session | None = None,
183
181
  ) -> Ok[CompletionModel] | NotFoundError:
184
182
  client = client or Defaults.get_default_client()
185
183
  return cls.load_proto_for(completion_model_id, client, session).map(
@@ -691,7 +691,7 @@ class FeatureView(
691
691
  cls,
692
692
  feature_view_id: FeatureViewID,
693
693
  client: system.Client | None = None,
694
- session: sa_orm.Session | None = None,
694
+ session: eorm.Session | None = None,
695
695
  ) -> Ok[Self] | NotFoundError:
696
696
  client = client or Defaults.get_default_client()
697
697
  return cls.load_proto_for(feature_view_id, client, session).map(
@@ -723,7 +723,7 @@ class FeatureView(
723
723
  created_before: datetime.datetime | None = None,
724
724
  client: system.Client | None = None,
725
725
  ids: Iterable[FeatureViewID] | None = None,
726
- existing_session: sa_orm.Session | None = None,
726
+ existing_session: eorm.Session | None = None,
727
727
  ) -> Ok[list[FeatureView]] | NotFoundError | InvalidArgumentError:
728
728
  """List resources."""
729
729
  client = client or Defaults.get_default_client()
@@ -100,7 +100,7 @@ class Pipeline(StandardModel[PipelineID, models_pb2.Pipeline, eorm.Pipeline]):
100
100
  cls,
101
101
  obj_id: PipelineID,
102
102
  client: system.Client | None = None,
103
- session: sa_orm.Session | None = None,
103
+ session: eorm.Session | None = None,
104
104
  ) -> Ok[SpecificPipeline] | NotFoundError:
105
105
  client = client or Defaults.get_default_client()
106
106
  match cls.list_as_proto(
@@ -134,7 +134,7 @@ class Pipeline(StandardModel[PipelineID, models_pb2.Pipeline, eorm.Pipeline]):
134
134
  created_before: datetime.datetime | None = None,
135
135
  client: system.Client | None = None,
136
136
  ids: Iterable[PipelineID] | None = None,
137
- existing_session: sa_orm.Session | None = None,
137
+ existing_session: eorm.Session | None = None,
138
138
  ) -> Ok[list[SpecificPipeline]] | InvalidArgumentError | NotFoundError:
139
139
  client = client or Defaults.get_default_client()
140
140
 
@@ -231,7 +231,7 @@ def add_orm_org_mixin_to_session(
231
231
  orm_obj: OrmHasIdBelongsToOrgT,
232
232
  proto_obj: _ModelHasIdBelongsToOrgProto,
233
233
  id_class: type[transfer.OrmIdT],
234
- session: sa_orm.Session,
234
+ session: eorm.Session,
235
235
  ) -> Ok[OrmHasIdBelongsToOrgT] | orm.InvalidORMIdentifierError:
236
236
  match transfer.translate_orm_id(proto_obj.id, id_class):
237
237
  case Ok(orm_id):
@@ -257,7 +257,7 @@ def add_orm_room_mixin_to_session(
257
257
  orm_obj: OrmHasIdBelongsToRoomT,
258
258
  proto_obj: _ModelHasIdBelongsToRoomProto,
259
259
  id_class: type[transfer.OrmIdT],
260
- session: sa_orm.Session,
260
+ session: eorm.Session,
261
261
  ) -> Ok[OrmHasIdBelongsToRoomT] | orm.InvalidORMIdentifierError:
262
262
  room_id = eorm.RoomID(proto_obj.room_id)
263
263
  match room_id.to_db():
@@ -270,7 +270,7 @@ def add_orm_room_mixin_to_session(
270
270
 
271
271
 
272
272
  def _resource_pipeline_to_orm(
273
- proto_obj: models_pb2.Resource, orm_obj: eorm.Resource, session: sa_orm.Session
273
+ proto_obj: models_pb2.Resource, orm_obj: eorm.Resource, session: eorm.Session
274
274
  ) -> Ok[None] | InvalidArgumentError:
275
275
  if proto_obj.pipeline_id:
276
276
  match transfer.translate_orm_id(proto_obj.pipeline_id, eorm.PipelineID):
@@ -296,7 +296,7 @@ def _resource_pipeline_to_orm(
296
296
 
297
297
 
298
298
  def resource_proto_to_orm(
299
- proto_obj: models_pb2.Resource, session: sa_orm.Session
299
+ proto_obj: models_pb2.Resource, session: eorm.Session
300
300
  ) -> Ok[eorm.Resource] | InvalidArgumentError:
301
301
  orm_obj = eorm.Resource(
302
302
  name=proto_obj.name,
@@ -321,11 +321,11 @@ def resource_proto_to_orm(
321
321
  def _ensure_id(
322
322
  proto_obj: transfer.ProtoHasIdT,
323
323
  proto_to_orm: Callable[
324
- [transfer.ProtoHasIdT, sa_orm.Session],
324
+ [transfer.ProtoHasIdT, eorm.Session],
325
325
  Ok[transfer.OrmHasIdT] | InvalidArgumentError,
326
326
  ],
327
327
  id_type: type[transfer.OrmIdT],
328
- session: sa_orm.Session,
328
+ session: eorm.Session,
329
329
  ) -> Ok[transfer.OrmIdT] | orm.InvalidORMIdentifierError | InvalidArgumentError:
330
330
  match transfer.translate_orm_id(proto_obj.id, id_type):
331
331
  case orm.InvalidORMIdentifierError() as err:
@@ -344,7 +344,7 @@ def _ensure_id(
344
344
 
345
345
 
346
346
  def pipeline_proto_to_orm( # noqa: C901
347
- proto_obj: models_pb2.Pipeline, session: sa_orm.Session
347
+ proto_obj: models_pb2.Pipeline, session: eorm.Session
348
348
  ) -> Ok[eorm.Pipeline] | orm.InvalidORMIdentifierError | InvalidArgumentError:
349
349
  orm_obj = eorm.Pipeline(
350
350
  name=proto_obj.name,
@@ -389,7 +389,7 @@ def pipeline_proto_to_orm( # noqa: C901
389
389
 
390
390
 
391
391
  def source_proto_to_orm(
392
- proto_obj: models_pb2.Source, session: sa_orm.Session
392
+ proto_obj: models_pb2.Source, session: eorm.Session
393
393
  ) -> Ok[eorm.Source] | orm.InvalidORMIdentifierError | InvalidArgumentError:
394
394
  orm_obj = eorm.Source(
395
395
  name=proto_obj.name,
@@ -399,7 +399,7 @@ def source_proto_to_orm(
399
399
 
400
400
 
401
401
  def space_proto_to_orm(
402
- proto_obj: models_pb2.Space, session: sa_orm.Session
402
+ proto_obj: models_pb2.Space, session: eorm.Session
403
403
  ) -> Ok[eorm.Space] | orm.InvalidORMIdentifierError | InvalidArgumentError:
404
404
  match _ensure_id(
405
405
  proto_obj.feature_view, feature_view_proto_to_orm, eorm.FeatureViewID, session
@@ -423,7 +423,7 @@ def space_proto_to_orm(
423
423
 
424
424
 
425
425
  def feature_view_proto_to_orm(
426
- proto_obj: models_pb2.FeatureView, session: sa_orm.Session
426
+ proto_obj: models_pb2.FeatureView, session: eorm.Session
427
427
  ) -> Ok[eorm.FeatureView] | orm.InvalidORMIdentifierError | InvalidArgumentError:
428
428
  orm_obj = eorm.FeatureView(
429
429
  name=proto_obj.name,
@@ -493,7 +493,7 @@ def _feature_view_source_proto_to_orm(
493
493
  proto_obj: models_pb2.FeatureViewSource,
494
494
  room_id: eorm.RoomID,
495
495
  feature_view_id: eorm.FeatureViewID,
496
- session: sa_orm.Session,
496
+ session: eorm.Session,
497
497
  ) -> Ok[eorm.FeatureViewSource] | orm.InvalidORMIdentifierError | InvalidArgumentError:
498
498
  match _ensure_id(proto_obj.source, source_proto_to_orm, eorm.SourceID, session):
499
499
  case orm.InvalidORMIdentifierError() | InvalidArgumentError() as err:
@@ -514,14 +514,14 @@ def _feature_view_source_proto_to_orm(
514
514
 
515
515
 
516
516
  def room_proto_to_orm(
517
- proto_obj: models_pb2.Room, session: sa_orm.Session
517
+ proto_obj: models_pb2.Room, session: eorm.Session
518
518
  ) -> Ok[eorm.Room] | orm.InvalidORMIdentifierError | InvalidArgumentError:
519
519
  orm_obj = eorm.Room(name=proto_obj.name)
520
520
  return add_orm_org_mixin_to_session(orm_obj, proto_obj, eorm.RoomID, session)
521
521
 
522
522
 
523
523
  def completion_model_proto_to_orm(
524
- proto_obj: models_pb2.CompletionModel, session: sa_orm.Session
524
+ proto_obj: models_pb2.CompletionModel, session: eorm.Session
525
525
  ) -> Ok[eorm.CompletionModel] | InvalidArgumentError:
526
526
  orm_obj = eorm.CompletionModel(
527
527
  name=proto_obj.name,
@@ -538,7 +538,7 @@ def completion_model_proto_to_orm(
538
538
 
539
539
  def source_delete_orms(
540
540
  orm_ids: Sequence[eorm.SourceID],
541
- session: sa_orm.Session,
541
+ session: eorm.Session,
542
542
  ) -> Ok[None] | InvalidArgumentError:
543
543
  feat_view_refs = list(
544
544
  session.scalars(
@@ -557,7 +557,7 @@ def source_delete_orms(
557
557
 
558
558
 
559
559
  def pipeline_delete_orms(
560
- ids: Sequence[eorm.PipelineID], session: sa_orm.Session
560
+ ids: Sequence[eorm.PipelineID], session: eorm.Session
561
561
  ) -> Ok[None] | InvalidArgumentError:
562
562
  source_ids = [
563
563
  val[0]
@@ -135,7 +135,7 @@ class Resource(StandardModel[ResourceID, models_pb2.Resource, eorm.Resource]):
135
135
  client: system.Client | None = None,
136
136
  ids: Iterable[ResourceID] | None = None,
137
137
  is_terminal: bool | None = None,
138
- existing_session: sa_orm.Session | None = None,
138
+ existing_session: eorm.Session | None = None,
139
139
  url: str | None = None,
140
140
  ) -> Ok[list[Resource]] | NotFoundError | InvalidArgumentError:
141
141
  """List resources."""
@@ -192,7 +192,7 @@ class Resource(StandardModel[ResourceID, models_pb2.Resource, eorm.Resource]):
192
192
  cls,
193
193
  resource_id: ResourceID,
194
194
  client: system.Client | None = None,
195
- session: sa_orm.Session | None = None,
195
+ session: eorm.Session | None = None,
196
196
  ) -> Ok[Resource] | NotFoundError:
197
197
  client = client or Defaults.get_default_client()
198
198
  return cls.load_proto_for(resource_id, client, session).map(
@@ -83,7 +83,7 @@ class Source(StandardModel[SourceID, models_pb2.Source, eorm.Source]):
83
83
  cls,
84
84
  source_id: SourceID,
85
85
  client: system.Client | None = None,
86
- session: sa_orm.Session | None = None,
86
+ session: eorm.Session | None = None,
87
87
  ) -> Ok[Self] | NotFoundError:
88
88
  client = client or Defaults.get_default_client()
89
89
  return cls.load_proto_for(source_id, client, session).map(
@@ -212,7 +212,7 @@ class Source(StandardModel[SourceID, models_pb2.Source, eorm.Source]):
212
212
  created_before: datetime.datetime | None = None,
213
213
  client: system.Client | None = None,
214
214
  ids: Iterable[SourceID] | None = None,
215
- existing_session: sa_orm.Session | None = None,
215
+ existing_session: eorm.Session | None = None,
216
216
  ) -> Ok[list[Source]] | NotFoundError | InvalidArgumentError:
217
217
  """List sources that exist in storage."""
218
218
  client = client or Defaults.get_default_client()
@@ -265,7 +265,7 @@ class Space(StandardModel[SpaceID, models_pb2.Space, eorm.Space]):
265
265
  cls,
266
266
  space_id: SpaceID,
267
267
  client: system.Client | None = None,
268
- session: sa_orm.Session | None = None,
268
+ session: eorm.Session | None = None,
269
269
  ) -> Ok[SpecificSpace] | NotFoundError:
270
270
  client = client or Defaults.get_default_client()
271
271
  return cls.load_proto_for(space_id, client, session).map(
@@ -284,7 +284,7 @@ class Space(StandardModel[SpaceID, models_pb2.Space, eorm.Space]):
284
284
  created_before: datetime.datetime | None = None,
285
285
  client: system.Client | None = None,
286
286
  ids: Iterable[eorm.SpaceID] | None = None,
287
- existing_session: sa_orm.Session | None = None,
287
+ existing_session: eorm.Session | None = None,
288
288
  ) -> Ok[list[SpecificSpace]] | InvalidArgumentError | NotFoundError:
289
289
  client = client or Defaults.get_default_client()
290
290
 
@@ -23,6 +23,7 @@ from corvic.orm.errors import (
23
23
  DeletedObjectError,
24
24
  InvalidORMIdentifierError,
25
25
  RequestedObjectsForNobodyError,
26
+ dbapi_error_to_result,
26
27
  )
27
28
  from corvic.orm.func import utc_now
28
29
  from corvic.orm.ids import (
@@ -278,4 +279,5 @@ __all__ = [
278
279
  "primary_key_foreign_column",
279
280
  "primary_key_identity_column",
280
281
  "primary_key_uuid_column",
282
+ "dbapi_error_to_result",
281
283
  ]
@@ -1,6 +1,7 @@
1
1
  """Mixin models for corvic orm tables."""
2
2
 
3
3
  from datetime import UTC, datetime
4
+ from types import TracebackType
4
5
  from typing import Any, LiteralString
5
6
 
6
7
  import sqlalchemy as sa
@@ -9,9 +10,7 @@ from sqlalchemy import orm as sa_orm
9
10
  from sqlalchemy.ext import hybrid
10
11
  from sqlalchemy.ext.hybrid import hybrid_property
11
12
 
12
- from corvic.orm.errors import (
13
- DeletedObjectError,
14
- )
13
+ from corvic.orm.errors import DeletedObjectError, dbapi_error_to_result
15
14
 
16
15
 
17
16
  class BadDeleteError(DeletedObjectError):
@@ -155,6 +154,16 @@ class Session(sa_orm.Session):
155
154
 
156
155
  _soft_deleted: dict[sa_orm.InstanceState[Any], Any] | None = None
157
156
 
157
+ def __exit__(
158
+ self,
159
+ type_: type[BaseException] | None,
160
+ value: BaseException | None,
161
+ traceback: TracebackType | None,
162
+ ):
163
+ super().__exit__(type_, value, traceback)
164
+ if isinstance(value, sa.exc.DBAPIError):
165
+ raise dbapi_error_to_result(value) from value
166
+
158
167
  def _track_soft_deleted(self, instance: object):
159
168
  if self._soft_deleted is None:
160
169
  self._soft_deleted = {}
@@ -0,0 +1,54 @@
1
+ """Errors specific to communicating with the database."""
2
+
3
+ import sqlalchemy as sa
4
+
5
+ from corvic import result
6
+
7
+
8
+ class InvalidORMIdentifierError(result.InvalidArgumentError):
9
+ """Raised when an identifier can't be translated to its orm equivalent."""
10
+
11
+
12
+ class RequestedObjectsForNobodyError(result.Error):
13
+ """Raised when attempts are made to access database objects as the nobody org."""
14
+
15
+
16
+ class DeletedObjectError(result.Error):
17
+ """DeletedObjectError result Error.
18
+
19
+ Raised on invalid operations to objects which are soft deleted.
20
+ """
21
+
22
+
23
+ def dbapi_error_to_result(err: sa.exc.DBAPIError):
24
+ # based on https://docs.sqlalchemy.org/en/20/errors.html
25
+ match err:
26
+ case sa.exc.NotSupportedError():
27
+ # raised in the unexpected case that we're doing something that the
28
+ # database just doesn't support
29
+ raise result.InternalError.from_(err) from err
30
+ case (
31
+ sa.exc.OperationalError()
32
+ | sa.exc.InterfaceError()
33
+ | sa.exc.InternalError()
34
+ ):
35
+ # These are commonly things that are outside of our control that might
36
+ # succeed on retry, e.g., connections being dropped
37
+ return result.UnavailableError.from_(err)
38
+ case sa.exc.IntegrityError:
39
+ return result.InvalidArgumentError.from_(err)
40
+ case sa.exc.ProgrammingError():
41
+ if "could not serialize" in str(err):
42
+ return result.UnavailableError.from_(err)
43
+ case _:
44
+ pass
45
+
46
+ try:
47
+ import psycopg.errors
48
+
49
+ if isinstance(err.orig, psycopg.errors.SerializationFailure):
50
+ return result.UnavailableError.from_(err)
51
+ except ModuleNotFoundError:
52
+ pass
53
+
54
+ return result.InvalidArgumentError.from_(err)
@@ -102,7 +102,7 @@ class OrmBackedProto(Generic[ProtoT, OrmT], HasProtoSelf[ProtoT]):
102
102
 
103
103
  @classmethod
104
104
  def _generate_query_results(
105
- cls, query: sa.Select[tuple[OrmT]], session: sa_orm.Session
105
+ cls, query: sa.Select[tuple[OrmT]], session: orm.Session
106
106
  ) -> Iterator[OrmT]:
107
107
  it = iter(session.scalars(query))
108
108
  while True:
@@ -131,7 +131,7 @@ class OrmBackedProto(Generic[ProtoT, OrmT], HasProtoSelf[ProtoT]):
131
131
  [sa.Select[tuple[OrmT]]], sa.Select[tuple[OrmT]]
132
132
  ]
133
133
  | None = None,
134
- existing_session: sa_orm.Session | None = None,
134
+ existing_session: orm.Session | None = None,
135
135
  ) -> Ok[list[ProtoT]] | NotFoundError | InvalidArgumentError:
136
136
  """List sources that exist in storage."""
137
137
  orm_class = cls.orm_class()
@@ -172,7 +172,7 @@ class OrmBackedProto(Generic[ProtoT, OrmT], HasProtoSelf[ProtoT]):
172
172
  ).unwrap_or_raise()
173
173
  session.commit()
174
174
  except sa.exc.DBAPIError as err:
175
- return self._dbapi_error_to_result(err)
175
+ return orm.dbapi_error_to_result(err)
176
176
  return Ok(
177
177
  self.__class__(
178
178
  client=self.client,
@@ -180,22 +180,6 @@ class OrmBackedProto(Generic[ProtoT, OrmT], HasProtoSelf[ProtoT]):
180
180
  )
181
181
  )
182
182
 
183
- @staticmethod
184
- def _dbapi_error_to_result(err: sa.exc.DBAPIError):
185
- try:
186
- import psycopg.errors
187
-
188
- if isinstance(err.orig, psycopg.errors.SerializationFailure):
189
- return UnavailableError.from_(err)
190
- except ModuleNotFoundError:
191
- pass
192
- if isinstance(err, sa.exc.ProgrammingError):
193
- if "violates foreign key constraint" in str(err):
194
- return InvalidArgumentError.from_(err)
195
- if "could not serialize access due to concurrent update" in str(err):
196
- return UnavailableError.from_(err)
197
- return InvalidArgumentError.from_(err)
198
-
199
183
  def add_to_session(
200
184
  self, session: orm.Session
201
185
  ) -> Ok[None] | InvalidArgumentError | UnavailableError:
@@ -210,7 +194,7 @@ class OrmBackedProto(Generic[ProtoT, OrmT], HasProtoSelf[ProtoT]):
210
194
  session.flush()
211
195
  # TODO(thunt): Possibly separate out DatabaseError into a precondition error
212
196
  except sa.exc.DBAPIError as err:
213
- return self._dbapi_error_to_result(err)
197
+ return orm.dbapi_error_to_result(err)
214
198
  return Ok(None)
215
199
 
216
200
 
@@ -230,7 +214,7 @@ class HasIdOrmBackedProto(
230
214
  cls,
231
215
  obj_id: OrmIdT,
232
216
  client: system.Client,
233
- existing_session: sa_orm.Session | None = None,
217
+ existing_session: orm.Session | None = None,
234
218
  ) -> Ok[ProtoHasIdT] | NotFoundError:
235
219
  """Create a model object by loading it from the database."""
236
220
  with (
@@ -280,7 +264,7 @@ class HasIdOrmBackedProto(
280
264
  [sa.Select[tuple[OrmHasIdT]]], sa.Select[tuple[OrmHasIdT]]
281
265
  ]
282
266
  | None = None,
283
- existing_session: sa_orm.Session | None = None,
267
+ existing_session: orm.Session | None = None,
284
268
  ) -> Ok[list[ProtoHasIdT]] | NotFoundError | InvalidArgumentError:
285
269
  def query_transform(
286
270
  query: sa.Select[tuple[OrmHasIdT]],
@@ -18,7 +18,7 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor
18
18
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63orvic/ingest/v2/resource.proto\x12\x10\x63orvic.ingest.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1c\x63orvic/status/v1/event.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x99\x04\n\x10ResourceMetadata\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\xc8\x01R\x04name\x12%\n\tmime_type\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xc8\x01R\x08mimeType\x12\x7f\n\x07room_id\x18\x03 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x06roomId\x12-\n\roriginal_path\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0coriginalPath\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0b\x64\x65scription\x12\x87\x01\n\x0bpipeline_id\x18\x08 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\npipelineId\x12;\n\ttype_hint\x18\x04 \x01(\x0e\x32\x1e.corvic.ingest.v2.ResourceTypeR\x08typeHint\x12\x1b\n\x04size\x18\x07 \x01(\x03\x42\x07\xbaH\x04\"\x02 \x00R\x04size\"\xee\x02\n\rResourceEntry\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1b\n\tmime_type\x18\x03 \x01(\tR\x08mimeType\x12\x10\n\x03md5\x18\x05 \x01(\tR\x03md5\x12\x17\n\x07room_id\x18\x06 \x01(\tR\x06roomId\x12\x12\n\x04size\x18\x07 \x01(\x04R\x04size\x12#\n\roriginal_path\x18\t \x01(\tR\x0coriginalPath\x12 \n\x0b\x64\x65scription\x18\x0b \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x0bpipeline_id\x18\x0c \x01(\tR\npipelineId\x12\x37\n\x18referenced_by_source_ids\x18\n \x03(\tR\x15referencedBySourceIds\x12<\n\rrecent_events\x18\x08 \x03(\x0b\x32\x17.corvic.status.v1.EventR\x0crecentEvents\"p\n\x16\x43reateUploadURLRequest\x12>\n\x08metadata\x18\x01 \x01(\x0b\x32\".corvic.ingest.v2.ResourceMetadataR\x08metadata\x12\x16\n\x06origin\x18\x02 \x01(\tR\x06origin\"A\n\x17\x43reateUploadURLResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"s\n\x15UploadURLTokenPayload\x12>\n\x08metadata\x18\x01 \x01(\x0b\x32\".corvic.ingest.v2.ResourceMetadataR\x08metadata\x12\x1a\n\x08\x66ilename\x18\x02 \x01(\tR\x08\x66ilename\"0\n\x18\x46inalizeUploadURLRequest\x12\x14\n\x05token\x18\x01 \x01(\tR\x05token\"R\n\x19\x46inalizeUploadURLResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x8f\x01\n\x15\x44\x65leteResourceRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"\x18\n\x16\x44\x65leteResourceResponse\"\x8c\x01\n\x12GetResourceRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"L\n\x13GetResourceResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x97\x01\n\x14ListResourcesRequest\x12\x7f\n\x07room_id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x06roomId\"N\n\x15ListResourcesResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x8b\x01\n\x0cResourceList\x12{\n\x02id\x18\x01 \x03(\tBk\xbaHh\x92\x01\x65\"cr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"\xdb\x01\n\x15WatchResourcesRequest\x12\x81\x01\n\x07room_id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')H\x00R\x06roomId\x12\x32\n\x03ids\x18\x02 \x01(\x0b\x32\x1e.corvic.ingest.v2.ResourceListH\x00R\x03idsB\n\n\x08selector\"d\n\x16WatchResourcesResponse\x12J\n\x10updated_resource\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x0fupdatedResource\"\xb5\x01\n#ListResourcesPaginatedCursorPayload\x12T\n\x19\x63reate_time_of_last_entry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x63reateTimeOfLastEntry\x12\x17\n\x07room_id\x18\x02 \x01(\tR\x06roomId\x12\x1f\n\x0bpipeline_id\x18\x03 \x01(\tR\npipelineId\"\xef\x02\n\x1dListResourcesPaginatedRequest\x12\x80\x01\n\x07room_id\x18\x01 \x01(\tBg\xbaHdr\x02\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')\xd8\x01\x01R\x06roomId\x12\x88\x01\n\x0bpipeline_id\x18\x04 \x01(\tBg\xbaHdr\x02\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')\xd8\x01\x01R\npipelineId\x12(\n\x10\x65ntries_per_page\x18\x02 \x01(\rR\x0e\x65ntriesPerPage\x12\x16\n\x06\x63ursor\x18\x03 \x01(\tR\x06\x63ursor\"\x91\x01\n\x1eListResourcesPaginatedResponse\x12J\n\x10resource_entries\x18\x03 \x03(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x0fresourceEntries\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursorJ\x04\x08\x01\x10\x02R\x05\x65ntry\"\x9a\x01\n CreateResourceDownloadURLRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"5\n!CreateResourceDownloadURLResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url*\xab\x01\n\x0cResourceType\x12\x1d\n\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x13RESOURCE_TYPE_TABLE\x10\x01\x1a\x02\x08\x01\x12!\n\x1dRESOURCE_TYPE_DIMENSION_TABLE\x10\x02\x12\x1c\n\x18RESOURCE_TYPE_FACT_TABLE\x10\x03\x12\x1e\n\x1aRESOURCE_TYPE_PDF_DOCUMENT\x10\x04\x32\x97\x07\n\x0fResourceService\x12h\n\x0f\x43reateUploadURL\x12(.corvic.ingest.v2.CreateUploadURLRequest\x1a).corvic.ingest.v2.CreateUploadURLResponse\"\x00\x12q\n\x11\x46inalizeUploadURL\x12*.corvic.ingest.v2.FinalizeUploadURLRequest\x1a+.corvic.ingest.v2.FinalizeUploadURLResponse\"\x03\x90\x02\x02\x12\x65\n\x0e\x44\x65leteResource\x12\'.corvic.ingest.v2.DeleteResourceRequest\x1a(.corvic.ingest.v2.DeleteResourceResponse\"\x00\x12_\n\x0bGetResource\x12$.corvic.ingest.v2.GetResourceRequest\x1a%.corvic.ingest.v2.GetResourceResponse\"\x03\x90\x02\x01\x12g\n\rListResources\x12&.corvic.ingest.v2.ListResourcesRequest\x1a\'.corvic.ingest.v2.ListResourcesResponse\"\x03\x90\x02\x01\x30\x01\x12\x80\x01\n\x16ListResourcesPaginated\x12/.corvic.ingest.v2.ListResourcesPaginatedRequest\x1a\x30.corvic.ingest.v2.ListResourcesPaginatedResponse\"\x03\x90\x02\x01\x12j\n\x0eWatchResources\x12\'.corvic.ingest.v2.WatchResourcesRequest\x1a(.corvic.ingest.v2.WatchResourcesResponse\"\x03\x90\x02\x01\x30\x01\x12\x86\x01\n\x19\x43reateResourceDownloadURL\x12\x32.corvic.ingest.v2.CreateResourceDownloadURLRequest\x1a\x33.corvic.ingest.v2.CreateResourceDownloadURLResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63orvic/ingest/v2/resource.proto\x12\x10\x63orvic.ingest.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1c\x63orvic/status/v1/event.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x99\x04\n\x10ResourceMetadata\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\xc8\x01R\x04name\x12%\n\tmime_type\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\xc8\x01R\x08mimeType\x12\x7f\n\x07room_id\x18\x03 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x06roomId\x12-\n\roriginal_path\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0coriginalPath\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0b\x64\x65scription\x12\x87\x01\n\x0bpipeline_id\x18\x08 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\npipelineId\x12;\n\ttype_hint\x18\x04 \x01(\x0e\x32\x1e.corvic.ingest.v2.ResourceTypeR\x08typeHint\x12\x1b\n\x04size\x18\x07 \x01(\x03\x42\x07\xbaH\x04\"\x02 \x00R\x04size\"\xee\x02\n\rResourceEntry\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1b\n\tmime_type\x18\x03 \x01(\tR\x08mimeType\x12\x10\n\x03md5\x18\x05 \x01(\tR\x03md5\x12\x17\n\x07room_id\x18\x06 \x01(\tR\x06roomId\x12\x12\n\x04size\x18\x07 \x01(\x04R\x04size\x12#\n\roriginal_path\x18\t \x01(\tR\x0coriginalPath\x12 \n\x0b\x64\x65scription\x18\x0b \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x0bpipeline_id\x18\x0c \x01(\tR\npipelineId\x12\x37\n\x18referenced_by_source_ids\x18\n \x03(\tR\x15referencedBySourceIds\x12<\n\rrecent_events\x18\x08 \x03(\x0b\x32\x17.corvic.status.v1.EventR\x0crecentEvents\"p\n\x16\x43reateUploadURLRequest\x12>\n\x08metadata\x18\x01 \x01(\x0b\x32\".corvic.ingest.v2.ResourceMetadataR\x08metadata\x12\x16\n\x06origin\x18\x02 \x01(\tR\x06origin\"A\n\x17\x43reateUploadURLResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"s\n\x15UploadURLTokenPayload\x12>\n\x08metadata\x18\x01 \x01(\x0b\x32\".corvic.ingest.v2.ResourceMetadataR\x08metadata\x12\x1a\n\x08\x66ilename\x18\x02 \x01(\tR\x08\x66ilename\"0\n\x18\x46inalizeUploadURLRequest\x12\x14\n\x05token\x18\x01 \x01(\tR\x05token\"R\n\x19\x46inalizeUploadURLResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x8f\x01\n\x15\x44\x65leteResourceRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"\x18\n\x16\x44\x65leteResourceResponse\"\x8c\x01\n\x12GetResourceRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"L\n\x13GetResourceResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x97\x01\n\x14ListResourcesRequest\x12\x7f\n\x07room_id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x06roomId\"N\n\x15ListResourcesResponse\x12\x35\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x05\x65ntry\"\x8b\x01\n\x0cResourceList\x12{\n\x02id\x18\x01 \x03(\tBk\xbaHh\x92\x01\x65\"cr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"\xdb\x01\n\x15WatchResourcesRequest\x12\x81\x01\n\x07room_id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')H\x00R\x06roomId\x12\x32\n\x03ids\x18\x02 \x01(\x0b\x32\x1e.corvic.ingest.v2.ResourceListH\x00R\x03idsB\n\n\x08selector\"d\n\x16WatchResourcesResponse\x12J\n\x10updated_resource\x18\x01 \x01(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x0fupdatedResource\"\xb5\x01\n#ListResourcesPaginatedCursorPayload\x12T\n\x19\x63reate_time_of_last_entry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x63reateTimeOfLastEntry\x12\x17\n\x07room_id\x18\x02 \x01(\tR\x06roomId\x12\x1f\n\x0bpipeline_id\x18\x03 \x01(\tR\npipelineId\"\xef\x02\n\x1dListResourcesPaginatedRequest\x12\x80\x01\n\x07room_id\x18\x01 \x01(\tBg\xbaHdr\x02\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')\xd8\x01\x01R\x06roomId\x12\x88\x01\n\x0bpipeline_id\x18\x04 \x01(\tBg\xbaHdr\x02\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')\xd8\x01\x01R\npipelineId\x12(\n\x10\x65ntries_per_page\x18\x02 \x01(\rR\x0e\x65ntriesPerPage\x12\x16\n\x06\x63ursor\x18\x03 \x01(\tR\x06\x63ursor\"\x91\x01\n\x1eListResourcesPaginatedResponse\x12J\n\x10resource_entries\x18\x03 \x03(\x0b\x32\x1f.corvic.ingest.v2.ResourceEntryR\x0fresourceEntries\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursorJ\x04\x08\x01\x10\x02R\x05\x65ntry\"\x9a\x01\n CreateResourceDownloadURLRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"5\n!CreateResourceDownloadURLResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\"\x99\x01\n\x1f\x43reateResourcePreviewURLRequest\x12v\n\x02id\x18\x01 \x01(\tBf\xbaHcr\x04\x10\x01\x18\x14\xba\x01Z\n\x0estring.pattern\x12\x16value must be a number\x1a\x30this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')R\x02id\"4\n CreateResourcePreviewURLResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url*\xab\x01\n\x0cResourceType\x12\x1d\n\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x13RESOURCE_TYPE_TABLE\x10\x01\x1a\x02\x08\x01\x12!\n\x1dRESOURCE_TYPE_DIMENSION_TABLE\x10\x02\x12\x1c\n\x18RESOURCE_TYPE_FACT_TABLE\x10\x03\x12\x1e\n\x1aRESOURCE_TYPE_PDF_DOCUMENT\x10\x04\x32\x97\x07\n\x0fResourceService\x12h\n\x0f\x43reateUploadURL\x12(.corvic.ingest.v2.CreateUploadURLRequest\x1a).corvic.ingest.v2.CreateUploadURLResponse\"\x00\x12q\n\x11\x46inalizeUploadURL\x12*.corvic.ingest.v2.FinalizeUploadURLRequest\x1a+.corvic.ingest.v2.FinalizeUploadURLResponse\"\x03\x90\x02\x02\x12\x65\n\x0e\x44\x65leteResource\x12\'.corvic.ingest.v2.DeleteResourceRequest\x1a(.corvic.ingest.v2.DeleteResourceResponse\"\x00\x12_\n\x0bGetResource\x12$.corvic.ingest.v2.GetResourceRequest\x1a%.corvic.ingest.v2.GetResourceResponse\"\x03\x90\x02\x01\x12g\n\rListResources\x12&.corvic.ingest.v2.ListResourcesRequest\x1a\'.corvic.ingest.v2.ListResourcesResponse\"\x03\x90\x02\x01\x30\x01\x12\x80\x01\n\x16ListResourcesPaginated\x12/.corvic.ingest.v2.ListResourcesPaginatedRequest\x1a\x30.corvic.ingest.v2.ListResourcesPaginatedResponse\"\x03\x90\x02\x01\x12j\n\x0eWatchResources\x12\'.corvic.ingest.v2.WatchResourcesRequest\x1a(.corvic.ingest.v2.WatchResourcesResponse\"\x03\x90\x02\x01\x30\x01\x12\x86\x01\n\x19\x43reateResourceDownloadURL\x12\x32.corvic.ingest.v2.CreateResourceDownloadURLRequest\x1a\x33.corvic.ingest.v2.CreateResourceDownloadURLResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -57,6 +57,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
57
57
  _globals['_LISTRESOURCESPAGINATEDREQUEST'].fields_by_name['pipeline_id']._serialized_options = b'\272Hdr\002\030\024\272\001Z\n\016string.pattern\022\026value must be a number\0320this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')\330\001\001'
58
58
  _globals['_CREATERESOURCEDOWNLOADURLREQUEST'].fields_by_name['id']._options = None
59
59
  _globals['_CREATERESOURCEDOWNLOADURLREQUEST'].fields_by_name['id']._serialized_options = b'\272Hcr\004\020\001\030\024\272\001Z\n\016string.pattern\022\026value must be a number\0320this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')'
60
+ _globals['_CREATERESOURCEPREVIEWURLREQUEST'].fields_by_name['id']._options = None
61
+ _globals['_CREATERESOURCEPREVIEWURLREQUEST'].fields_by_name['id']._serialized_options = b'\272Hcr\004\020\001\030\024\272\001Z\n\016string.pattern\022\026value must be a number\0320this.matches(\'^[0-9]+$\') && !this.endsWith(\'\\n\')'
60
62
  _globals['_RESOURCESERVICE'].methods_by_name['FinalizeUploadURL']._options = None
61
63
  _globals['_RESOURCESERVICE'].methods_by_name['FinalizeUploadURL']._serialized_options = b'\220\002\002'
62
64
  _globals['_RESOURCESERVICE'].methods_by_name['GetResource']._options = None
@@ -67,8 +69,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
67
69
  _globals['_RESOURCESERVICE'].methods_by_name['ListResourcesPaginated']._serialized_options = b'\220\002\001'
68
70
  _globals['_RESOURCESERVICE'].methods_by_name['WatchResources']._options = None
69
71
  _globals['_RESOURCESERVICE'].methods_by_name['WatchResources']._serialized_options = b'\220\002\001'
70
- _globals['_RESOURCETYPE']._serialized_start=3528
71
- _globals['_RESOURCETYPE']._serialized_end=3699
72
+ _globals['_RESOURCETYPE']._serialized_start=3738
73
+ _globals['_RESOURCETYPE']._serialized_end=3909
72
74
  _globals['_RESOURCEMETADATA']._serialized_start=180
73
75
  _globals['_RESOURCEMETADATA']._serialized_end=717
74
76
  _globals['_RESOURCEENTRY']._serialized_start=720
@@ -111,6 +113,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
111
113
  _globals['_CREATERESOURCEDOWNLOADURLREQUEST']._serialized_end=3470
112
114
  _globals['_CREATERESOURCEDOWNLOADURLRESPONSE']._serialized_start=3472
113
115
  _globals['_CREATERESOURCEDOWNLOADURLRESPONSE']._serialized_end=3525
114
- _globals['_RESOURCESERVICE']._serialized_start=3702
115
- _globals['_RESOURCESERVICE']._serialized_end=4621
116
+ _globals['_CREATERESOURCEPREVIEWURLREQUEST']._serialized_start=3528
117
+ _globals['_CREATERESOURCEPREVIEWURLREQUEST']._serialized_end=3681
118
+ _globals['_CREATERESOURCEPREVIEWURLRESPONSE']._serialized_start=3683
119
+ _globals['_CREATERESOURCEPREVIEWURLRESPONSE']._serialized_end=3735
120
+ _globals['_RESOURCESERVICE']._serialized_start=3912
121
+ _globals['_RESOURCESERVICE']._serialized_end=4831
116
122
  # @@protoc_insertion_point(module_scope)
@@ -200,3 +200,15 @@ class CreateResourceDownloadURLResponse(_message.Message):
200
200
  URL_FIELD_NUMBER: _ClassVar[int]
201
201
  url: str
202
202
  def __init__(self, url: _Optional[str] = ...) -> None: ...
203
+
204
+ class CreateResourcePreviewURLRequest(_message.Message):
205
+ __slots__ = ("id",)
206
+ ID_FIELD_NUMBER: _ClassVar[int]
207
+ id: str
208
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
209
+
210
+ class CreateResourcePreviewURLResponse(_message.Message):
211
+ __slots__ = ("url",)
212
+ URL_FIELD_NUMBER: _ClassVar[int]
213
+ url: str
214
+ def __init__(self, url: _Optional[str] = ...) -> None: ...
@@ -1,18 +0,0 @@
1
- """Errors specific to communicating with the database."""
2
-
3
- from corvic import result
4
-
5
-
6
- class InvalidORMIdentifierError(result.InvalidArgumentError):
7
- """Raised when an identifier can't be translated to its orm equivalent."""
8
-
9
-
10
- class RequestedObjectsForNobodyError(result.Error):
11
- """Raised when attempts are made to access database objects as the nobody org."""
12
-
13
-
14
- class DeletedObjectError(result.Error):
15
- """DeletedObjectError result Error.
16
-
17
- Raised on invalid operations to objects which are soft deleted.
18
- """