proximadb 0.2.2__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 (777) hide show
  1. proximadb-0.2.2/.gitignore +50 -0
  2. proximadb-0.2.2/EMBEDDING_ARCHITECTURE_REDESIGN.md +544 -0
  3. proximadb-0.2.2/EMBEDDING_PROVIDERS.md +523 -0
  4. proximadb-0.2.2/ENUM_CONSTANTS_REFERENCE.md +405 -0
  5. proximadb-0.2.2/GRAPH_API_TEST_RESULTS.md +427 -0
  6. proximadb-0.2.2/Makefile +74 -0
  7. proximadb-0.2.2/PKG-INFO +156 -0
  8. proximadb-0.2.2/README.adoc +1023 -0
  9. proximadb-0.2.2/README.md +48 -0
  10. proximadb-0.2.2/SDK_DOCUMENTATION.adoc +95 -0
  11. proximadb-0.2.2/TEST_REPORT.md +162 -0
  12. proximadb-0.2.2/benchmarks/compression_benchmark.py +423 -0
  13. proximadb-0.2.2/codegen/.gitignore +1 -0
  14. proximadb-0.2.2/codegen/config.yaml +27 -0
  15. proximadb-0.2.2/codegen/gen.sh +85 -0
  16. proximadb-0.2.2/codegen/requirements.txt +13 -0
  17. proximadb-0.2.2/demo_v1_proto.py +151 -0
  18. proximadb-0.2.2/docs/diagrams/sdk_migration_flow.mmd +103 -0
  19. proximadb-0.2.2/docs/diagrams/smart_cache_architecture.mmd +118 -0
  20. proximadb-0.2.2/docs/diagrams/unified_sdk_architecture.mmd +103 -0
  21. proximadb-0.2.2/docs/multi_model_guide.md +779 -0
  22. proximadb-0.2.2/example_graph_hybrid_search.py +378 -0
  23. proximadb-0.2.2/example_v1_client.py +132 -0
  24. proximadb-0.2.2/examples/README.md +414 -0
  25. proximadb-0.2.2/examples/advanced_search.py +480 -0
  26. proximadb-0.2.2/examples/arrow_export_examples.py +790 -0
  27. proximadb-0.2.2/examples/auth_examples.py +401 -0
  28. proximadb-0.2.2/examples/basic_usage.py +436 -0
  29. proximadb-0.2.2/examples/basic_usage_working.py +256 -0
  30. proximadb-0.2.2/examples/bert_utils.py +223 -0
  31. proximadb-0.2.2/examples/chunking_embedding_demo.py +292 -0
  32. proximadb-0.2.2/examples/complete_workflow_demo.py +214 -0
  33. proximadb-0.2.2/examples/compression_example.py +271 -0
  34. proximadb-0.2.2/examples/dashboard_metrics_demo.py +328 -0
  35. proximadb-0.2.2/examples/domain_specific_embeddings.py +497 -0
  36. proximadb-0.2.2/examples/embedding_providers_demo.py +431 -0
  37. proximadb-0.2.2/examples/monitoring_example.py +588 -0
  38. proximadb-0.2.2/examples/production_setup.py +539 -0
  39. proximadb-0.2.2/examples/sks_graph_first_demo.py +387 -0
  40. proximadb-0.2.2/examples/sks_real_world_demo.py +642 -0
  41. proximadb-0.2.2/examples/sql_queries.py +365 -0
  42. proximadb-0.2.2/examples/streaming_upload.py +489 -0
  43. proximadb-0.2.2/grpc_transport_example.py +208 -0
  44. proximadb-0.2.2/list_collections_test.py +58 -0
  45. proximadb-0.2.2/log/proximadb.log.2025-06-24 +454 -0
  46. proximadb-0.2.2/metadata/current/op_0000000000000001.oplog +1 -0
  47. proximadb-0.2.2/pyproject.toml +386 -0
  48. proximadb-0.2.2/pytest.ini +70 -0
  49. proximadb-0.2.2/reports/report.html +1091 -0
  50. proximadb-0.2.2/run_tests_no_cache.sh +18 -0
  51. proximadb-0.2.2/scripts/download_and_verify_models.py +325 -0
  52. proximadb-0.2.2/scripts/generate_protos.py +232 -0
  53. proximadb-0.2.2/scripts/generate_v2_protos.py +140 -0
  54. proximadb-0.2.2/setup.cfg +4 -0
  55. proximadb-0.2.2/setup_test_environment.sh +89 -0
  56. proximadb-0.2.2/src/proximadb/__init__.py +1 -0
  57. proximadb-0.2.2/src/proximadb/v1/__init__.py +2 -0
  58. proximadb-0.2.2/src/proximadb/v1/collection_pb2.py +65 -0
  59. proximadb-0.2.2/src/proximadb/v1/collection_pb2_grpc.py +267 -0
  60. proximadb-0.2.2/src/proximadb/v1/collection_types_pb2.py +117 -0
  61. proximadb-0.2.2/src/proximadb/v1/collection_types_pb2_grpc.py +28 -0
  62. proximadb-0.2.2/src/proximadb/v1/entity_pb2.py +124 -0
  63. proximadb-0.2.2/src/proximadb/v1/entity_pb2_grpc.py +250 -0
  64. proximadb-0.2.2/src/proximadb/v1/graph_collection_pb2.py +109 -0
  65. proximadb-0.2.2/src/proximadb/v1/graph_collection_pb2_grpc.py +28 -0
  66. proximadb-0.2.2/src/proximadb/v1/graph_pb2.py +228 -0
  67. proximadb-0.2.2/src/proximadb/v1/graph_pb2_grpc.py +1478 -0
  68. proximadb-0.2.2/src/proximadb/v1/relations_pb2.py +56 -0
  69. proximadb-0.2.2/src/proximadb/v1/relations_pb2_grpc.py +261 -0
  70. proximadb-0.2.2/src/proximadb/v1/sql_pb2.py +35 -0
  71. proximadb-0.2.2/src/proximadb/v1/sql_pb2_grpc.py +109 -0
  72. proximadb-0.2.2/src/proximadb/v1/types_pb2.py +51 -0
  73. proximadb-0.2.2/src/proximadb/v1/types_pb2_grpc.py +28 -0
  74. proximadb-0.2.2/src/proximadb/v1/vector_pb2.py +55 -0
  75. proximadb-0.2.2/src/proximadb/v1/vector_pb2_grpc.py +265 -0
  76. proximadb-0.2.2/src/proximadb/v1/vector_types_pb2.py +134 -0
  77. proximadb-0.2.2/src/proximadb/v1/vector_types_pb2_grpc.py +28 -0
  78. proximadb-0.2.2/src/proximadb/v2/__init__.py +1 -0
  79. proximadb-0.2.2/src/proximadb/v2/document_pb2.py +107 -0
  80. proximadb-0.2.2/src/proximadb/v2/document_pb2_grpc.py +347 -0
  81. proximadb-0.2.2/src/proximadb/v2/entity_pb2.py +121 -0
  82. proximadb-0.2.2/src/proximadb/v2/entity_pb2_grpc.py +262 -0
  83. proximadb-0.2.2/src/proximadb/v2/fusion_pb2.py +46 -0
  84. proximadb-0.2.2/src/proximadb/v2/fusion_pb2_grpc.py +115 -0
  85. proximadb-0.2.2/src/proximadb/v2/graph_pb2.py +157 -0
  86. proximadb-0.2.2/src/proximadb/v2/graph_pb2_grpc.py +1138 -0
  87. proximadb-0.2.2/src/proximadb/v2/record_pb2.py +215 -0
  88. proximadb-0.2.2/src/proximadb/v2/record_pb2_grpc.py +890 -0
  89. proximadb-0.2.2/src/proximadb.egg-info/PKG-INFO +156 -0
  90. proximadb-0.2.2/src/proximadb.egg-info/SOURCES.txt +775 -0
  91. proximadb-0.2.2/src/proximadb.egg-info/dependency_links.txt +1 -0
  92. proximadb-0.2.2/src/proximadb.egg-info/entry_points.txt +3 -0
  93. proximadb-0.2.2/src/proximadb.egg-info/requires.txt +103 -0
  94. proximadb-0.2.2/src/proximadb.egg-info/top_level.txt +2 -0
  95. proximadb-0.2.2/src/proximadb_sdk/__init__.py +1257 -0
  96. proximadb-0.2.2/src/proximadb_sdk/_code_oid.py +52 -0
  97. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/__init__.py +14 -0
  98. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/__init__.py +6 -0
  99. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/collections/__init__.py +6 -0
  100. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/collections/create_collection.py +314 -0
  101. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/collections/delete_collection.py +179 -0
  102. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/collections/get_collection.py +223 -0
  103. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/collections/list_collections.py +258 -0
  104. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/__init__.py +6 -0
  105. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/create_document_collection.py +167 -0
  106. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/ingest_documents.py +209 -0
  107. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/insert_document.py +185 -0
  108. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/list_document_collections.py +134 -0
  109. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/documents/query_documents.py +158 -0
  110. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/entities/__init__.py +6 -0
  111. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/entities/delete_entity_v2.py +177 -0
  112. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/entities/get_entity_v2.py +177 -0
  113. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/entities/search_entities_v2.py +185 -0
  114. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/entities/upsert_entity_v2.py +185 -0
  115. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/__init__.py +6 -0
  116. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/batch_create_edges.py +197 -0
  117. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/batch_create_nodes.py +201 -0
  118. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/create_edge.py +189 -0
  119. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/create_graph.py +170 -0
  120. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/create_node.py +189 -0
  121. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/delete_graph.py +163 -0
  122. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/delete_node.py +177 -0
  123. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/fusion_search_v2.py +193 -0
  124. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/get_graph.py +163 -0
  125. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/get_graph_stats.py +158 -0
  126. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/get_node.py +177 -0
  127. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/impact_analysis_v2.py +197 -0
  128. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/list_graphs.py +132 -0
  129. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/graphs/traverse_graph.py +189 -0
  130. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/health/__init__.py +6 -0
  131. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/health/get_health.py +132 -0
  132. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/health/get_liveness.py +132 -0
  133. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/health/get_readiness.py +132 -0
  134. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/hybrid/__init__.py +6 -0
  135. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/hybrid/hybrid_index.py +165 -0
  136. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/hybrid/hybrid_search.py +170 -0
  137. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/meta/__init__.py +6 -0
  138. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/meta/get_capabilities.py +144 -0
  139. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/observability/__init__.py +6 -0
  140. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/observability/ingest_log.py +180 -0
  141. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/observability/query_logs.py +180 -0
  142. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/query/__init__.py +6 -0
  143. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/query/execute_query.py +194 -0
  144. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/query/explain_query.py +170 -0
  145. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/records/__init__.py +6 -0
  146. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/records/delete_record.py +180 -0
  147. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/records/get_record.py +297 -0
  148. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/records/insert_records.py +377 -0
  149. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/records/scan_records.py +229 -0
  150. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/schema/__init__.py +6 -0
  151. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/schema/get_collection_schema.py +223 -0
  152. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/schema/update_collection_schema.py +373 -0
  153. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/search/__init__.py +6 -0
  154. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/api/search/search_records.py +309 -0
  155. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/client.py +291 -0
  156. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/errors.py +21 -0
  157. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/__init__.py +246 -0
  158. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_create_edges_request.py +83 -0
  159. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_create_nodes_request.py +83 -0
  160. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_edges_response.py +89 -0
  161. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_edges_response_data.py +91 -0
  162. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_nodes_response.py +89 -0
  163. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/batch_nodes_response_data.py +91 -0
  164. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/capabilities_response.py +135 -0
  165. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/capabilities_response_error_envelope.py +52 -0
  166. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/capabilities_response_limits.py +52 -0
  167. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/collection_stats_v2.py +91 -0
  168. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/collection_v2_response.py +267 -0
  169. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/collection_v2_summary.py +119 -0
  170. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_collection_v2_request.py +410 -0
  171. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_collection_v2_response.py +127 -0
  172. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_document_collection_body.py +52 -0
  173. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_document_collection_response_200.py +52 -0
  174. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_edge_request.py +76 -0
  175. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_graph_request.py +106 -0
  176. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/create_node_request.py +76 -0
  177. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/delete_collection_v2_response.py +75 -0
  178. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/delete_graph_response.py +66 -0
  179. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/delete_node_response.py +73 -0
  180. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/delete_record_v2_response.py +83 -0
  181. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/edge_input.py +136 -0
  182. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/edge_input_properties.py +52 -0
  183. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/edge_response.py +164 -0
  184. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/edge_response_properties_type_0.py +52 -0
  185. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/embedding_input.py +106 -0
  186. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_dto.py +92 -0
  187. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_dto_flexible_metadata.py +52 -0
  188. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_embedding_input.py +103 -0
  189. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_provenance_input.py +119 -0
  190. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_provenance_input_metadata.py +52 -0
  191. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_relation_input.py +119 -0
  192. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_relation_input_properties.py +52 -0
  193. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/entity_search_result.py +82 -0
  194. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/error_body.py +141 -0
  195. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/error_body_details_type_0.py +52 -0
  196. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/error_response.py +79 -0
  197. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/explain_query_request.py +95 -0
  198. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/fusion_hit.py +96 -0
  199. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/fusion_search_request.py +313 -0
  200. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/fusion_search_response.py +93 -0
  201. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/fusion_stats_dto.py +90 -0
  202. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/graph_collection_response.py +148 -0
  203. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/graph_stats_response.py +94 -0
  204. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/health_response.py +82 -0
  205. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hnsw_config_input.py +117 -0
  206. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hnsw_config_output.py +117 -0
  207. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hybrid_index_body.py +52 -0
  208. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hybrid_index_response_200.py +52 -0
  209. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hybrid_search_body.py +104 -0
  210. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/hybrid_search_response_200.py +52 -0
  211. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/impact_analysis_request.py +115 -0
  212. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/impact_analysis_response.py +82 -0
  213. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/index_config_input.py +197 -0
  214. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/index_config_input_parameters.py +52 -0
  215. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/index_policy_input.py +143 -0
  216. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/index_spec_output.py +146 -0
  217. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_document.py +145 -0
  218. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_document_metadata.py +52 -0
  219. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_documents_request.py +82 -0
  220. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_documents_response.py +110 -0
  221. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_log_body.py +52 -0
  222. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingest_log_response_200.py +52 -0
  223. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ingested_record.py +74 -0
  224. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/insert_document_body.py +52 -0
  225. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/insert_document_response_200.py +52 -0
  226. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/insert_error.py +95 -0
  227. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/insert_records_request.py +159 -0
  228. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/insert_records_response.py +107 -0
  229. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ivf_config_input.py +97 -0
  230. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/ivf_config_output.py +97 -0
  231. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/list_collections_v2_response.py +115 -0
  232. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/list_document_collections_response_200.py +52 -0
  233. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/list_graphs_response.py +93 -0
  234. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/node_input.py +122 -0
  235. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/node_input_properties.py +52 -0
  236. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/node_response.py +137 -0
  237. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/node_response_properties_type_0.py +52 -0
  238. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/predicate_shortfall_wire.py +97 -0
  239. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/probe_response.py +66 -0
  240. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/proxima_record_input.py +181 -0
  241. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/proxima_record_input_props_type_0.py +52 -0
  242. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/quantization_config_input.py +99 -0
  243. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/quantization_config_output.py +75 -0
  244. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_documents_response_200.py +52 -0
  245. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_language.py +15 -0
  246. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_logs_body.py +52 -0
  247. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_logs_response_200.py +52 -0
  248. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_request.py +174 -0
  249. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_request_parameters_type_0_item.py +52 -0
  250. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/query_response.py +56 -0
  251. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/record_v2_response.py +200 -0
  252. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/record_v2_response_props.py +52 -0
  253. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/rest_column_definition.py +244 -0
  254. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/scan_records_request.py +150 -0
  255. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/scan_records_response.py +125 -0
  256. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/schema_change.py +95 -0
  257. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/schema_definition.py +134 -0
  258. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/schema_response.py +149 -0
  259. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/search_entities_request.py +105 -0
  260. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/search_entities_request_filters.py +52 -0
  261. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/search_entities_response.py +90 -0
  262. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/text_field_input.py +103 -0
  263. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/text_field_output.py +103 -0
  264. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/traverse_request.py +139 -0
  265. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/traverse_response.py +124 -0
  266. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/typed_filter.py +107 -0
  267. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/typed_search_request.py +207 -0
  268. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/typed_search_response.py +181 -0
  269. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/typed_search_result.py +168 -0
  270. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/typed_search_result_props.py +52 -0
  271. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/update_schema_request.py +175 -0
  272. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/update_schema_response.py +123 -0
  273. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/upsert_entity_request.py +175 -0
  274. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/upsert_entity_request_flexible_metadata.py +52 -0
  275. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/models/upsert_entity_response.py +82 -0
  276. proximadb-0.2.2/src/proximadb_sdk/_generated/rest/types.py +51 -0
  277. proximadb-0.2.2/src/proximadb_sdk/adapters/__init__.py +104 -0
  278. proximadb-0.2.2/src/proximadb_sdk/adapters/base.py +370 -0
  279. proximadb-0.2.2/src/proximadb_sdk/adapters/embedded_adapter.py +2023 -0
  280. proximadb-0.2.2/src/proximadb_sdk/adapters/grpc_adapter.py +616 -0
  281. proximadb-0.2.2/src/proximadb_sdk/adapters/rest_adapter.py +970 -0
  282. proximadb-0.2.2/src/proximadb_sdk/arrow_export.py +596 -0
  283. proximadb-0.2.2/src/proximadb_sdk/auth.py +672 -0
  284. proximadb-0.2.2/src/proximadb_sdk/automl.py +964 -0
  285. proximadb-0.2.2/src/proximadb_sdk/batching.py +42 -0
  286. proximadb-0.2.2/src/proximadb_sdk/batching_unified.py +551 -0
  287. proximadb-0.2.2/src/proximadb_sdk/builders/__init__.py +15 -0
  288. proximadb-0.2.2/src/proximadb_sdk/builders/collection.py +314 -0
  289. proximadb-0.2.2/src/proximadb_sdk/builders/insert.py +360 -0
  290. proximadb-0.2.2/src/proximadb_sdk/builders/search.py +210 -0
  291. proximadb-0.2.2/src/proximadb_sdk/cache.py +708 -0
  292. proximadb-0.2.2/src/proximadb_sdk/chunking.py +883 -0
  293. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/__init__.py +227 -0
  294. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/base.py +225 -0
  295. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/code.py +4427 -0
  296. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/document_parsers.py +1111 -0
  297. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/factory.py +131 -0
  298. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/fixed_size.py +154 -0
  299. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/paragraph.py +346 -0
  300. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/parser_utils.py +434 -0
  301. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/pipeline.py +1399 -0
  302. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/recursive.py +186 -0
  303. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/semantic.py +398 -0
  304. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/semantic_embedding.py +256 -0
  305. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/sentence.py +258 -0
  306. proximadb-0.2.2/src/proximadb_sdk/chunking_strategies/sliding_window.py +207 -0
  307. proximadb-0.2.2/src/proximadb_sdk/circuit_breaker.py +494 -0
  308. proximadb-0.2.2/src/proximadb_sdk/cli.py +654 -0
  309. proximadb-0.2.2/src/proximadb_sdk/client_v1.py +1530 -0
  310. proximadb-0.2.2/src/proximadb_sdk/code_knowledge.py +1027 -0
  311. proximadb-0.2.2/src/proximadb_sdk/config.py +438 -0
  312. proximadb-0.2.2/src/proximadb_sdk/document.py +1627 -0
  313. proximadb-0.2.2/src/proximadb_sdk/document_pipeline.py +830 -0
  314. proximadb-0.2.2/src/proximadb_sdk/document_processor.py +1029 -0
  315. proximadb-0.2.2/src/proximadb_sdk/document_v2.py +479 -0
  316. proximadb-0.2.2/src/proximadb_sdk/embedded.py +2500 -0
  317. proximadb-0.2.2/src/proximadb_sdk/embedded_multi.py +871 -0
  318. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/__init__.py +234 -0
  319. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/cohere.py +205 -0
  320. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/__init__.py +19 -0
  321. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/base.py +263 -0
  322. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/cache.py +282 -0
  323. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/config.py +123 -0
  324. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/device.py +43 -0
  325. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/core/registry.py +254 -0
  326. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/fastembed.py +130 -0
  327. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/finbert_provider.py +321 -0
  328. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/instructor.py +211 -0
  329. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/mixins/__init__.py +17 -0
  330. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/mixins/batching.py +143 -0
  331. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/mixins/instruction.py +163 -0
  332. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/mixins/normalization.py +116 -0
  333. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/mixins/sentence_transformer.py +199 -0
  334. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/multi_bert_provider.py +713 -0
  335. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/openai_compatible.py +215 -0
  336. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/openai_provider.py +222 -0
  337. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/__init__.py +7 -0
  338. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/__init__.py +3 -0
  339. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/bge.py +111 -0
  340. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/e5.py +123 -0
  341. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/gte_qwen.py +100 -0
  342. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/sentence_transformer.py +106 -0
  343. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/local/sfr.py +82 -0
  344. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/testing/__init__.py +1 -0
  345. proximadb-0.2.2/src/proximadb_sdk/embedding_providers/providers/testing/simulated.py +113 -0
  346. proximadb-0.2.2/src/proximadb_sdk/entity_v2.py +407 -0
  347. proximadb-0.2.2/src/proximadb_sdk/enum_packing.py +545 -0
  348. proximadb-0.2.2/src/proximadb_sdk/exceptions.py +362 -0
  349. proximadb-0.2.2/src/proximadb_sdk/filters.py +420 -0
  350. proximadb-0.2.2/src/proximadb_sdk/fusion_v2.py +157 -0
  351. proximadb-0.2.2/src/proximadb_sdk/graph.py +1182 -0
  352. proximadb-0.2.2/src/proximadb_sdk/graph_analytics.py +912 -0
  353. proximadb-0.2.2/src/proximadb_sdk/hybrid.py +1340 -0
  354. proximadb-0.2.2/src/proximadb_sdk/integrations/__init__.py +26 -0
  355. proximadb-0.2.2/src/proximadb_sdk/integrations/_records.py +34 -0
  356. proximadb-0.2.2/src/proximadb_sdk/integrations/agentic_ddl.py +178 -0
  357. proximadb-0.2.2/src/proximadb_sdk/integrations/agentic_io.py +504 -0
  358. proximadb-0.2.2/src/proximadb_sdk/integrations/agentic_store.py +588 -0
  359. proximadb-0.2.2/src/proximadb_sdk/integrations/autogen.py +472 -0
  360. proximadb-0.2.2/src/proximadb_sdk/integrations/crewai.py +154 -0
  361. proximadb-0.2.2/src/proximadb_sdk/integrations/dspy.py +88 -0
  362. proximadb-0.2.2/src/proximadb_sdk/integrations/dual_use_store.py +215 -0
  363. proximadb-0.2.2/src/proximadb_sdk/integrations/graph_walk_client.py +175 -0
  364. proximadb-0.2.2/src/proximadb_sdk/integrations/haystack.py +614 -0
  365. proximadb-0.2.2/src/proximadb_sdk/integrations/langchain.py +315 -0
  366. proximadb-0.2.2/src/proximadb_sdk/integrations/langgraph.py +85 -0
  367. proximadb-0.2.2/src/proximadb_sdk/integrations/llama_index.py +312 -0
  368. proximadb-0.2.2/src/proximadb_sdk/integrations/mcp_tools.py +199 -0
  369. proximadb-0.2.2/src/proximadb_sdk/integrations/mlops.py +150 -0
  370. proximadb-0.2.2/src/proximadb_sdk/integrations/victor.py +276 -0
  371. proximadb-0.2.2/src/proximadb_sdk/integrations/victor_embedded.py +411 -0
  372. proximadb-0.2.2/src/proximadb_sdk/integrations/victor_graph.py +697 -0
  373. proximadb-0.2.2/src/proximadb_sdk/integrations/victor_multi.py +813 -0
  374. proximadb-0.2.2/src/proximadb_sdk/intelligent_router.py +744 -0
  375. proximadb-0.2.2/src/proximadb_sdk/llm/__init__.py +66 -0
  376. proximadb-0.2.2/src/proximadb_sdk/llm/config.py +165 -0
  377. proximadb-0.2.2/src/proximadb_sdk/llm/embedding.py +289 -0
  378. proximadb-0.2.2/src/proximadb_sdk/llm/rag.py +430 -0
  379. proximadb-0.2.2/src/proximadb_sdk/llm/semantic_cache.py +349 -0
  380. proximadb-0.2.2/src/proximadb_sdk/metadata_utils.py +113 -0
  381. proximadb-0.2.2/src/proximadb_sdk/models.py +1651 -0
  382. proximadb-0.2.2/src/proximadb_sdk/models_v2.py +1902 -0
  383. proximadb-0.2.2/src/proximadb_sdk/multimodal_query.py +2544 -0
  384. proximadb-0.2.2/src/proximadb_sdk/observability.py +870 -0
  385. proximadb-0.2.2/src/proximadb_sdk/operation_router.py +44 -0
  386. proximadb-0.2.2/src/proximadb_sdk/performance/__init__.py +34 -0
  387. proximadb-0.2.2/src/proximadb_sdk/performance/data_models.py +271 -0
  388. proximadb-0.2.2/src/proximadb_sdk/proto_conversion.py +412 -0
  389. proximadb-0.2.2/src/proximadb_sdk/protocol_selector.py +65 -0
  390. proximadb-0.2.2/src/proximadb_sdk/protocols/__init__.py +40 -0
  391. proximadb-0.2.2/src/proximadb_sdk/protocols/_grpc_v2_codec.py +275 -0
  392. proximadb-0.2.2/src/proximadb_sdk/protocols/_rest_codegen.py +314 -0
  393. proximadb-0.2.2/src/proximadb_sdk/protocols/_rest_codegen_async.py +154 -0
  394. proximadb-0.2.2/src/proximadb_sdk/protocols/arrow_flight.py +940 -0
  395. proximadb-0.2.2/src/proximadb_sdk/protocols/connection_pools.py +612 -0
  396. proximadb-0.2.2/src/proximadb_sdk/protocols/grpc_async.py +357 -0
  397. proximadb-0.2.2/src/proximadb_sdk/protocols/grpc_sync.py +2546 -0
  398. proximadb-0.2.2/src/proximadb_sdk/protocols/rest_async.py +106 -0
  399. proximadb-0.2.2/src/proximadb_sdk/protocols/rest_sync.py +3407 -0
  400. proximadb-0.2.2/src/proximadb_sdk/py.typed +0 -0
  401. proximadb-0.2.2/src/proximadb_sdk/repository_indexer.py +755 -0
  402. proximadb-0.2.2/src/proximadb_sdk/repository_manager.py +1367 -0
  403. proximadb-0.2.2/src/proximadb_sdk/resilience.py +117 -0
  404. proximadb-0.2.2/src/proximadb_sdk/resource_pool.py +676 -0
  405. proximadb-0.2.2/src/proximadb_sdk/search_utils.py +330 -0
  406. proximadb-0.2.2/src/proximadb_sdk/security.py +1119 -0
  407. proximadb-0.2.2/src/proximadb_sdk/timeseries.py +1468 -0
  408. proximadb-0.2.2/src/proximadb_sdk/unified_client.py +4830 -0
  409. proximadb-0.2.2/src/proximadb_sdk/unified_client_async.py +773 -0
  410. proximadb-0.2.2/src/proximadb_sdk/unified_client_v2.py +686 -0
  411. proximadb-0.2.2/src/proximadb_sdk/v1/__init__.py +1 -0
  412. proximadb-0.2.2/src/proximadb_sdk/v1/collection_pb2.py +65 -0
  413. proximadb-0.2.2/src/proximadb_sdk/v1/collection_pb2_grpc.py +267 -0
  414. proximadb-0.2.2/src/proximadb_sdk/v1/collection_types_pb2.py +117 -0
  415. proximadb-0.2.2/src/proximadb_sdk/v1/collection_types_pb2_grpc.py +28 -0
  416. proximadb-0.2.2/src/proximadb_sdk/v1/document_pb2.py +128 -0
  417. proximadb-0.2.2/src/proximadb_sdk/v1/document_pb2_grpc.py +485 -0
  418. proximadb-0.2.2/src/proximadb_sdk/v1/entity_pb2.py +124 -0
  419. proximadb-0.2.2/src/proximadb_sdk/v1/entity_pb2_grpc.py +250 -0
  420. proximadb-0.2.2/src/proximadb_sdk/v1/graph_collection_pb2.py +109 -0
  421. proximadb-0.2.2/src/proximadb_sdk/v1/graph_collection_pb2_grpc.py +28 -0
  422. proximadb-0.2.2/src/proximadb_sdk/v1/graph_pb2.py +228 -0
  423. proximadb-0.2.2/src/proximadb_sdk/v1/graph_pb2_grpc.py +1478 -0
  424. proximadb-0.2.2/src/proximadb_sdk/v1/hybrid_pb2.py +67 -0
  425. proximadb-0.2.2/src/proximadb_sdk/v1/hybrid_pb2_grpc.py +176 -0
  426. proximadb-0.2.2/src/proximadb_sdk/v1/proximadb/v1/timeseries_pb2.py +107 -0
  427. proximadb-0.2.2/src/proximadb_sdk/v1/proximadb/v1/timeseries_pb2_grpc.py +391 -0
  428. proximadb-0.2.2/src/proximadb_sdk/v1/relations_pb2.py +56 -0
  429. proximadb-0.2.2/src/proximadb_sdk/v1/relations_pb2_grpc.py +261 -0
  430. proximadb-0.2.2/src/proximadb_sdk/v1/sql_pb2.py +35 -0
  431. proximadb-0.2.2/src/proximadb_sdk/v1/sql_pb2_grpc.py +109 -0
  432. proximadb-0.2.2/src/proximadb_sdk/v1/types_pb2.py +51 -0
  433. proximadb-0.2.2/src/proximadb_sdk/v1/types_pb2_grpc.py +28 -0
  434. proximadb-0.2.2/src/proximadb_sdk/v1/vector_pb2.py +55 -0
  435. proximadb-0.2.2/src/proximadb_sdk/v1/vector_pb2_grpc.py +265 -0
  436. proximadb-0.2.2/src/proximadb_sdk/v1/vector_types_pb2.py +134 -0
  437. proximadb-0.2.2/src/proximadb_sdk/v1/vector_types_pb2_grpc.py +28 -0
  438. proximadb-0.2.2/src/proximadb_sdk/v2/__init__.py +0 -0
  439. proximadb-0.2.2/src/proximadb_sdk/v2/document_pb2.py +107 -0
  440. proximadb-0.2.2/src/proximadb_sdk/v2/document_pb2_grpc.py +347 -0
  441. proximadb-0.2.2/src/proximadb_sdk/v2/entity_pb2.py +121 -0
  442. proximadb-0.2.2/src/proximadb_sdk/v2/entity_pb2_grpc.py +262 -0
  443. proximadb-0.2.2/src/proximadb_sdk/v2/fusion_pb2.py +46 -0
  444. proximadb-0.2.2/src/proximadb_sdk/v2/fusion_pb2_grpc.py +115 -0
  445. proximadb-0.2.2/src/proximadb_sdk/v2/graph_pb2.py +157 -0
  446. proximadb-0.2.2/src/proximadb_sdk/v2/graph_pb2_grpc.py +1138 -0
  447. proximadb-0.2.2/src/proximadb_sdk/v2/record_pb2.py +215 -0
  448. proximadb-0.2.2/src/proximadb_sdk/v2/record_pb2_grpc.py +890 -0
  449. proximadb-0.2.2/test-results.xml +154 -0
  450. proximadb-0.2.2/test_all_sdk_validation.py +261 -0
  451. proximadb-0.2.2/test_delete.py +29 -0
  452. proximadb-0.2.2/test_distance_metric.py +81 -0
  453. proximadb-0.2.2/test_embedded_multimodel.py +176 -0
  454. proximadb-0.2.2/test_final_sdk_validation.py +368 -0
  455. proximadb-0.2.2/test_graph_hybrid_search.py +547 -0
  456. proximadb-0.2.2/test_grpc_get_simple.py +91 -0
  457. proximadb-0.2.2/test_grpc_insert_debug.py +139 -0
  458. proximadb-0.2.2/test_grpc_simple.py +121 -0
  459. proximadb-0.2.2/test_grpc_workflow.py +95 -0
  460. proximadb-0.2.2/test_immediate_search.py +70 -0
  461. proximadb-0.2.2/test_metadata_debug.py +49 -0
  462. proximadb-0.2.2/test_recovery.py +79 -0
  463. proximadb-0.2.2/test_runner.py +238 -0
  464. proximadb-0.2.2/test_search_after_insert.py +50 -0
  465. proximadb-0.2.2/test_search_correct_format.py +63 -0
  466. proximadb-0.2.2/test_search_fix.py +63 -0
  467. proximadb-0.2.2/test_search_simple.py +68 -0
  468. proximadb-0.2.2/test_simple_recovery.py +84 -0
  469. proximadb-0.2.2/test_sql_v1.py +288 -0
  470. proximadb-0.2.2/test_status.py +92 -0
  471. proximadb-0.2.2/test_trace_issue.py +91 -0
  472. proximadb-0.2.2/test_v1_client.py +146 -0
  473. proximadb-0.2.2/test_v1_integration.py +205 -0
  474. proximadb-0.2.2/test_vector_insert_and_persist.py +97 -0
  475. proximadb-0.2.2/test_vector_persist_correct.py +131 -0
  476. proximadb-0.2.2/test_vector_persist_rest.py +81 -0
  477. proximadb-0.2.2/test_vector_persistence.py +120 -0
  478. proximadb-0.2.2/test_wal_verification.py +217 -0
  479. proximadb-0.2.2/tests/README.md +69 -0
  480. proximadb-0.2.2/tests/__init__.py +0 -0
  481. proximadb-0.2.2/tests/all_databases_benchmark.py +414 -0
  482. proximadb-0.2.2/tests/ann_functional_test.py +634 -0
  483. proximadb-0.2.2/tests/benchmark_vector_dbs.py +1218 -0
  484. proximadb-0.2.2/tests/bottleneck_analysis.py +221 -0
  485. proximadb-0.2.2/tests/chunking/__init__.py +9 -0
  486. proximadb-0.2.2/tests/chunking/conftest.py +112 -0
  487. proximadb-0.2.2/tests/chunking/loader.py +205 -0
  488. proximadb-0.2.2/tests/chunking/resources/bash/sample.sh +264 -0
  489. proximadb-0.2.2/tests/chunking/resources/c/sample.c +258 -0
  490. proximadb-0.2.2/tests/chunking/resources/cpp/sample.cpp +210 -0
  491. proximadb-0.2.2/tests/chunking/resources/csharp/Sample.cs +226 -0
  492. proximadb-0.2.2/tests/chunking/resources/elixir/sample.ex +269 -0
  493. proximadb-0.2.2/tests/chunking/resources/go/sample.go +192 -0
  494. proximadb-0.2.2/tests/chunking/resources/haskell/Sample.hs +216 -0
  495. proximadb-0.2.2/tests/chunking/resources/java/Sample.java +175 -0
  496. proximadb-0.2.2/tests/chunking/resources/javascript/sample.js +156 -0
  497. proximadb-0.2.2/tests/chunking/resources/kotlin/Sample.kt +177 -0
  498. proximadb-0.2.2/tests/chunking/resources/lua/sample.lua +219 -0
  499. proximadb-0.2.2/tests/chunking/resources/perl/sample.pl +202 -0
  500. proximadb-0.2.2/tests/chunking/resources/php/sample.php +232 -0
  501. proximadb-0.2.2/tests/chunking/resources/python/sample.py +129 -0
  502. proximadb-0.2.2/tests/chunking/resources/ruby/sample.rb +181 -0
  503. proximadb-0.2.2/tests/chunking/resources/rust/sample.rs +175 -0
  504. proximadb-0.2.2/tests/chunking/resources/scala/Sample.scala +197 -0
  505. proximadb-0.2.2/tests/chunking/resources/sql/sample.sql +289 -0
  506. proximadb-0.2.2/tests/chunking/resources/swift/Sample.swift +232 -0
  507. proximadb-0.2.2/tests/chunking/resources/typescript/sample.ts +212 -0
  508. proximadb-0.2.2/tests/chunking/resources/xml/sample.xml +241 -0
  509. proximadb-0.2.2/tests/chunking/resources/yaml/sample.yaml +265 -0
  510. proximadb-0.2.2/tests/chunking/test_code_chunking_strategy.py +1098 -0
  511. proximadb-0.2.2/tests/chunking/test_code_knowledge_builder.py +843 -0
  512. proximadb-0.2.2/tests/chunking/test_code_parsers.py +1197 -0
  513. proximadb-0.2.2/tests/chunking/test_document_parsers.py +479 -0
  514. proximadb-0.2.2/tests/chunking/test_document_pipeline.py +770 -0
  515. proximadb-0.2.2/tests/chunking/test_pipeline.py +734 -0
  516. proximadb-0.2.2/tests/chunking/test_repository_indexer.py +612 -0
  517. proximadb-0.2.2/tests/chunking/test_repository_manager.py +730 -0
  518. proximadb-0.2.2/tests/conftest.py +293 -0
  519. proximadb-0.2.2/tests/detailed_timing.py +82 -0
  520. proximadb-0.2.2/tests/e2e/__init__.py +0 -0
  521. proximadb-0.2.2/tests/e2e/conftest.py +366 -0
  522. proximadb-0.2.2/tests/e2e/test_e2e_vector_flow.py +364 -0
  523. proximadb-0.2.2/tests/e2e/test_simple_e2e.py +163 -0
  524. proximadb-0.2.2/tests/embedded_consolidated_benchmark.py +4463 -0
  525. proximadb-0.2.2/tests/embedded_graph_db_benchmark.py +930 -0
  526. proximadb-0.2.2/tests/embedded_vector_db_benchmark.py +655 -0
  527. proximadb-0.2.2/tests/embedded_victor_shape_benchmark.py +912 -0
  528. proximadb-0.2.2/tests/embedding_utils.py +158 -0
  529. proximadb-0.2.2/tests/engine_compression_benchmark.py +347 -0
  530. proximadb-0.2.2/tests/integration/__init__.py +0 -0
  531. proximadb-0.2.2/tests/integration/bert_embedding_service.py +349 -0
  532. proximadb-0.2.2/tests/integration/conftest.py +382 -0
  533. proximadb-0.2.2/tests/integration/integration_test.py +249 -0
  534. proximadb-0.2.2/tests/integration/test_batching_real_server.py +461 -0
  535. proximadb-0.2.2/tests/integration/test_benchmark.py +656 -0
  536. proximadb-0.2.2/tests/integration/test_chunking_embedding_benchmark.py +428 -0
  537. proximadb-0.2.2/tests/integration/test_chunking_embedding_integration.py +404 -0
  538. proximadb-0.2.2/tests/integration/test_code_indexing_integration.py +1117 -0
  539. proximadb-0.2.2/tests/integration/test_collection_config.py +994 -0
  540. proximadb-0.2.2/tests/integration/test_collection_config_all_combinations.py +501 -0
  541. proximadb-0.2.2/tests/integration/test_connection_pools.py +406 -0
  542. proximadb-0.2.2/tests/integration/test_demo_container.py +238 -0
  543. proximadb-0.2.2/tests/integration/test_document_v2.py +198 -0
  544. proximadb-0.2.2/tests/integration/test_emb_collection_lifecycle_cov.py +384 -0
  545. proximadb-0.2.2/tests/integration/test_emb_hybrid_search_cov.py +327 -0
  546. proximadb-0.2.2/tests/integration/test_emb_query_sql_cov.py +387 -0
  547. proximadb-0.2.2/tests/integration/test_emb_vector_cov.py +290 -0
  548. proximadb-0.2.2/tests/integration/test_entity_store_comprehensive.py +628 -0
  549. proximadb-0.2.2/tests/integration/test_entity_store_extended.py +464 -0
  550. proximadb-0.2.2/tests/integration/test_entity_v2.py +159 -0
  551. proximadb-0.2.2/tests/integration/test_fusion_v2.py +69 -0
  552. proximadb-0.2.2/tests/integration/test_graph_operations.py +596 -0
  553. proximadb-0.2.2/tests/integration/test_grpc_sync_real_server.py +380 -0
  554. proximadb-0.2.2/tests/integration/test_integration.py +143 -0
  555. proximadb-0.2.2/tests/integration/test_multilang_code_indexing.py +1519 -0
  556. proximadb-0.2.2/tests/integration/test_operation_router_integration.py +718 -0
  557. proximadb-0.2.2/tests/integration/test_quantization_e2e.py +370 -0
  558. proximadb-0.2.2/tests/integration/test_response_cache_integration.py +642 -0
  559. proximadb-0.2.2/tests/integration/test_rest_batching_integration.py +255 -0
  560. proximadb-0.2.2/tests/integration/test_semantic_chunking_integration.py +692 -0
  561. proximadb-0.2.2/tests/integration/test_simple_atomic_wal.py +172 -0
  562. proximadb-0.2.2/tests/integration/test_sks_graph_first_integration.py +474 -0
  563. proximadb-0.2.2/tests/integration/test_sks_semantic_graph_and_vector.py +174 -0
  564. proximadb-0.2.2/tests/integration/test_sql_integration.py +456 -0
  565. proximadb-0.2.2/tests/integration/test_v2_insert_search_e2e.py +176 -0
  566. proximadb-0.2.2/tests/integration/test_vector_operations_sdk.py +730 -0
  567. proximadb-0.2.2/tests/integration_sks/test_grpc_end_to_end.py +83 -0
  568. proximadb-0.2.2/tests/integration_sks/test_rest_end_to_end.py +59 -0
  569. proximadb-0.2.2/tests/integration_sks/test_rest_get_delete.py +64 -0
  570. proximadb-0.2.2/tests/integration_sks/test_unified_client_end_to_end.py +58 -0
  571. proximadb-0.2.2/tests/integrations/test_agentic_embedded.py +199 -0
  572. proximadb-0.2.2/tests/integrations/test_agentic_io.py +214 -0
  573. proximadb-0.2.2/tests/integrations/test_agentic_store.py +174 -0
  574. proximadb-0.2.2/tests/integrations/test_dual_use_store.py +354 -0
  575. proximadb-0.2.2/tests/integrations/test_graph_walk_client.py +152 -0
  576. proximadb-0.2.2/tests/integrations/test_mcp_tools.py +171 -0
  577. proximadb-0.2.2/tests/integrations/test_victor_graph.py +326 -0
  578. proximadb-0.2.2/tests/performance/__init__.py +0 -0
  579. proximadb-0.2.2/tests/performance/bert_embedding_utils.py +294 -0
  580. proximadb-0.2.2/tests/performance/conftest.py +346 -0
  581. proximadb-0.2.2/tests/pytest.ini +25 -0
  582. proximadb-0.2.2/tests/requirements.txt +6 -0
  583. proximadb-0.2.2/tests/server_lifecycle/BUG_REPORT_RECOVERY.md +149 -0
  584. proximadb-0.2.2/tests/server_lifecycle/DIAGNOSIS_WAL_RECOVERY.md +256 -0
  585. proximadb-0.2.2/tests/server_lifecycle/PRODUCTION_RECOVERY_STRATEGY.md +223 -0
  586. proximadb-0.2.2/tests/server_lifecycle/README.md +115 -0
  587. proximadb-0.2.2/tests/server_lifecycle/RECOVERY_PROGRESS.md +123 -0
  588. proximadb-0.2.2/tests/server_lifecycle/TESTING.md +160 -0
  589. proximadb-0.2.2/tests/server_lifecycle/conftest.py +37 -0
  590. proximadb-0.2.2/tests/server_lifecycle/test_comprehensive_recovery.py +391 -0
  591. proximadb-0.2.2/tests/server_lifecycle/test_fp16_grpc_lifecycle.py +124 -0
  592. proximadb-0.2.2/tests/server_lifecycle/test_fp16_precision_lifecycle.py +134 -0
  593. proximadb-0.2.2/tests/server_lifecycle/test_grpc_error_propagation_lifecycle.py +129 -0
  594. proximadb-0.2.2/tests/server_lifecycle/test_grpc_vector_get.py +169 -0
  595. proximadb-0.2.2/tests/server_lifecycle/test_wal_persistence_detailed.py +290 -0
  596. proximadb-0.2.2/tests/setup_graph_databases.sh +206 -0
  597. proximadb-0.2.2/tests/sst_nprobe_accuracy_benchmark.py +350 -0
  598. proximadb-0.2.2/tests/target/consolidated_benchmark_latest.md +38 -0
  599. proximadb-0.2.2/tests/tdd/__init__.py +143 -0
  600. proximadb-0.2.2/tests/test_50k_benchmark.py +372 -0
  601. proximadb-0.2.2/tests/test_arrow_export_sdk.py +291 -0
  602. proximadb-0.2.2/tests/test_arrow_interop.py +594 -0
  603. proximadb-0.2.2/tests/test_chunking_integration.py +1086 -0
  604. proximadb-0.2.2/tests/test_chunking_metadata.py +377 -0
  605. proximadb-0.2.2/tests/test_chunking_strategies.py +298 -0
  606. proximadb-0.2.2/tests/test_client_sdk.py +435 -0
  607. proximadb-0.2.2/tests/test_codegraph_delegation.py +61 -0
  608. proximadb-0.2.2/tests/test_collection_operations.py +373 -0
  609. proximadb-0.2.2/tests/test_compression_integration.py +407 -0
  610. proximadb-0.2.2/tests/test_document_api.py +376 -0
  611. proximadb-0.2.2/tests/test_embedded_multi_model.py +614 -0
  612. proximadb-0.2.2/tests/test_engine_index_matrix.py +501 -0
  613. proximadb-0.2.2/tests/test_engine_search.py +426 -0
  614. proximadb-0.2.2/tests/test_filter_api.py +233 -0
  615. proximadb-0.2.2/tests/test_grpc_api_completeness.py +565 -0
  616. proximadb-0.2.2/tests/test_grpc_basic.py +126 -0
  617. proximadb-0.2.2/tests/test_helpers.py +129 -0
  618. proximadb-0.2.2/tests/test_hybrid_api.py +498 -0
  619. proximadb-0.2.2/tests/test_models_and_utils.py +45 -0
  620. proximadb-0.2.2/tests/test_parquet_interop.py +1077 -0
  621. proximadb-0.2.2/tests/test_rest_api_completeness.py +433 -0
  622. proximadb-0.2.2/tests/test_rl_planner_embedded.py +341 -0
  623. proximadb-0.2.2/tests/test_sdk_stable_oid.py +76 -0
  624. proximadb-0.2.2/tests/test_sdk_upsert_operations.py +469 -0
  625. proximadb-0.2.2/tests/test_search_operations.py +698 -0
  626. proximadb-0.2.2/tests/test_sql_api.py +228 -0
  627. proximadb-0.2.2/tests/test_temp_edges.py +58 -0
  628. proximadb-0.2.2/tests/test_timeseries_api.py +535 -0
  629. proximadb-0.2.2/tests/test_unified_client.py +264 -0
  630. proximadb-0.2.2/tests/test_validation_vs_persistence.py +148 -0
  631. proximadb-0.2.2/tests/test_vector_operations.py +569 -0
  632. proximadb-0.2.2/tests/trace_bottleneck.py +66 -0
  633. proximadb-0.2.2/tests/trace_edge_bottleneck.py +108 -0
  634. proximadb-0.2.2/tests/unit/README_EMBEDDING_TESTS.md +271 -0
  635. proximadb-0.2.2/tests/unit/__init__.py +0 -0
  636. proximadb-0.2.2/tests/unit/conftest.py +803 -0
  637. proximadb-0.2.2/tests/unit/grpc_drift_baseline.json +20 -0
  638. proximadb-0.2.2/tests/unit/test_adapter_record_methods.py +527 -0
  639. proximadb-0.2.2/tests/unit/test_agentic_ddl.py +70 -0
  640. proximadb-0.2.2/tests/unit/test_arrow_export_cov.py +548 -0
  641. proximadb-0.2.2/tests/unit/test_arrow_flight_cov.py +686 -0
  642. proximadb-0.2.2/tests/unit/test_arrow_flight_protocol.py +377 -0
  643. proximadb-0.2.2/tests/unit/test_atomic_wal.py +223 -0
  644. proximadb-0.2.2/tests/unit/test_auth_cov.py +784 -0
  645. proximadb-0.2.2/tests/unit/test_autogen_integration.py +197 -0
  646. proximadb-0.2.2/tests/unit/test_automl_cov.py +605 -0
  647. proximadb-0.2.2/tests/unit/test_batching.py +335 -0
  648. proximadb-0.2.2/tests/unit/test_batching_records.py +41 -0
  649. proximadb-0.2.2/tests/unit/test_batching_unified_cov.py +604 -0
  650. proximadb-0.2.2/tests/unit/test_builder_search_utils_core.py +284 -0
  651. proximadb-0.2.2/tests/unit/test_cache_cov.py +587 -0
  652. proximadb-0.2.2/tests/unit/test_chunker_pooling.py +488 -0
  653. proximadb-0.2.2/tests/unit/test_chunking.py +499 -0
  654. proximadb-0.2.2/tests/unit/test_chunking_code_cov.py +1040 -0
  655. proximadb-0.2.2/tests/unit/test_chunking_doc_parsers_cov.py +823 -0
  656. proximadb-0.2.2/tests/unit/test_chunking_parser_utils_cov.py +363 -0
  657. proximadb-0.2.2/tests/unit/test_chunking_pipeline_cov.py +1016 -0
  658. proximadb-0.2.2/tests/unit/test_chunking_records.py +84 -0
  659. proximadb-0.2.2/tests/unit/test_chunking_refactored.py +533 -0
  660. proximadb-0.2.2/tests/unit/test_chunking_strategies_rest_cov.py +589 -0
  661. proximadb-0.2.2/tests/unit/test_chunking_strategy_core_coverage.py +285 -0
  662. proximadb-0.2.2/tests/unit/test_chunking_top_cov.py +690 -0
  663. proximadb-0.2.2/tests/unit/test_chunking_true_streaming.py +369 -0
  664. proximadb-0.2.2/tests/unit/test_cli_cov.py +653 -0
  665. proximadb-0.2.2/tests/unit/test_client_v1_cov.py +959 -0
  666. proximadb-0.2.2/tests/unit/test_client_v1_record_writes.py +59 -0
  667. proximadb-0.2.2/tests/unit/test_code_knowledge_cov.py +909 -0
  668. proximadb-0.2.2/tests/unit/test_collection_operations.py +363 -0
  669. proximadb-0.2.2/tests/unit/test_config.py +374 -0
  670. proximadb-0.2.2/tests/unit/test_config_cov.py +488 -0
  671. proximadb-0.2.2/tests/unit/test_core_low_coverage_helpers.py +459 -0
  672. proximadb-0.2.2/tests/unit/test_core_utils_cov.py +1300 -0
  673. proximadb-0.2.2/tests/unit/test_crewai_integration.py +131 -0
  674. proximadb-0.2.2/tests/unit/test_document_cov.py +824 -0
  675. proximadb-0.2.2/tests/unit/test_document_pipeline_cov.py +612 -0
  676. proximadb-0.2.2/tests/unit/test_document_processing_pipeline_core.py +447 -0
  677. proximadb-0.2.2/tests/unit/test_document_processor_cov.py +784 -0
  678. proximadb-0.2.2/tests/unit/test_dspy_integration.py +102 -0
  679. proximadb-0.2.2/tests/unit/test_emb_core_mixins_cov.py +985 -0
  680. proximadb-0.2.2/tests/unit/test_emb_providers_cloud_cov.py +447 -0
  681. proximadb-0.2.2/tests/unit/test_emb_providers_finbert_cov.py +236 -0
  682. proximadb-0.2.2/tests/unit/test_emb_providers_instructor_cov.py +111 -0
  683. proximadb-0.2.2/tests/unit/test_emb_providers_local_cov.py +372 -0
  684. proximadb-0.2.2/tests/unit/test_embedded_adapter_cov.py +1706 -0
  685. proximadb-0.2.2/tests/unit/test_embedded_cov.py +1364 -0
  686. proximadb-0.2.2/tests/unit/test_embedded_multi_cov.py +722 -0
  687. proximadb-0.2.2/tests/unit/test_embedded_record_http.py +75 -0
  688. proximadb-0.2.2/tests/unit/test_embedding_precision.py +158 -0
  689. proximadb-0.2.2/tests/unit/test_embedding_providers.py +420 -0
  690. proximadb-0.2.2/tests/unit/test_embedding_providers_v2.py +450 -0
  691. proximadb-0.2.2/tests/unit/test_enum_packing_cov.py +247 -0
  692. proximadb-0.2.2/tests/unit/test_exceptions.py +524 -0
  693. proximadb-0.2.2/tests/unit/test_exceptions_cov.py +537 -0
  694. proximadb-0.2.2/tests/unit/test_fallback_warnings.py +234 -0
  695. proximadb-0.2.2/tests/unit/test_filters_cov.py +489 -0
  696. proximadb-0.2.2/tests/unit/test_filters_simple.py +198 -0
  697. proximadb-0.2.2/tests/unit/test_graph_analytics_cov.py +694 -0
  698. proximadb-0.2.2/tests/unit/test_graph_client_unit.py +352 -0
  699. proximadb-0.2.2/tests/unit/test_graph_cov.py +742 -0
  700. proximadb-0.2.2/tests/unit/test_graph_grpc_overrides.py +224 -0
  701. proximadb-0.2.2/tests/unit/test_graph_rest_async_overrides.py +82 -0
  702. proximadb-0.2.2/tests/unit/test_graph_rest_overrides.py +52 -0
  703. proximadb-0.2.2/tests/unit/test_graph_rest_sync_overrides.py +63 -0
  704. proximadb-0.2.2/tests/unit/test_grpc_adapter_cov.py +664 -0
  705. proximadb-0.2.2/tests/unit/test_grpc_async_native.py +252 -0
  706. proximadb-0.2.2/tests/unit/test_grpc_proto_drift.py +213 -0
  707. proximadb-0.2.2/tests/unit/test_grpc_sync_basic.py +152 -0
  708. proximadb-0.2.2/tests/unit/test_grpc_sync_collections.py +150 -0
  709. proximadb-0.2.2/tests/unit/test_grpc_sync_cov.py +1102 -0
  710. proximadb-0.2.2/tests/unit/test_grpc_sync_integration.py +274 -0
  711. proximadb-0.2.2/tests/unit/test_haystack_integration.py +279 -0
  712. proximadb-0.2.2/tests/unit/test_hybrid_cov.py +565 -0
  713. proximadb-0.2.2/tests/unit/test_insert_builder_records.py +61 -0
  714. proximadb-0.2.2/tests/unit/test_integration_record_helpers.py +67 -0
  715. proximadb-0.2.2/tests/unit/test_integrations_frameworks_cov.py +732 -0
  716. proximadb-0.2.2/tests/unit/test_integrations_victor_cov.py +206 -0
  717. proximadb-0.2.2/tests/unit/test_langchain_integration.py +207 -0
  718. proximadb-0.2.2/tests/unit/test_langgraph_integration.py +81 -0
  719. proximadb-0.2.2/tests/unit/test_llm_cov.py +785 -0
  720. proximadb-0.2.2/tests/unit/test_misc_core_cov.py +385 -0
  721. proximadb-0.2.2/tests/unit/test_mlops_contracts.py +76 -0
  722. proximadb-0.2.2/tests/unit/test_models_builders_cov.py +1048 -0
  723. proximadb-0.2.2/tests/unit/test_models_coverage.py +60 -0
  724. proximadb-0.2.2/tests/unit/test_multi_bert_provider_cov.py +534 -0
  725. proximadb-0.2.2/tests/unit/test_multimodal_query_cov.py +805 -0
  726. proximadb-0.2.2/tests/unit/test_observability_cov.py +491 -0
  727. proximadb-0.2.2/tests/unit/test_openapi_contract.py +351 -0
  728. proximadb-0.2.2/tests/unit/test_operation_router.py +386 -0
  729. proximadb-0.2.2/tests/unit/test_proto_conversion_cov.py +304 -0
  730. proximadb-0.2.2/tests/unit/test_proto_conversions.py +380 -0
  731. proximadb-0.2.2/tests/unit/test_protocol_selector.py +598 -0
  732. proximadb-0.2.2/tests/unit/test_protocols_async_pools_cov.py +683 -0
  733. proximadb-0.2.2/tests/unit/test_quantization_features.py +411 -0
  734. proximadb-0.2.2/tests/unit/test_real_embedding_providers.py +543 -0
  735. proximadb-0.2.2/tests/unit/test_relaxed_validation.py +182 -0
  736. proximadb-0.2.2/tests/unit/test_repository_indexer_core.py +375 -0
  737. proximadb-0.2.2/tests/unit/test_repository_indexer_cov.py +715 -0
  738. proximadb-0.2.2/tests/unit/test_repository_manager_core.py +447 -0
  739. proximadb-0.2.2/tests/unit/test_repository_manager_cov.py +1093 -0
  740. proximadb-0.2.2/tests/unit/test_response_cache.py +728 -0
  741. proximadb-0.2.2/tests/unit/test_rest_adapter_cov.py +926 -0
  742. proximadb-0.2.2/tests/unit/test_rest_batching.py +196 -0
  743. proximadb-0.2.2/tests/unit/test_rest_record_ingest.py +220 -0
  744. proximadb-0.2.2/tests/unit/test_rest_sync_collections.py +116 -0
  745. proximadb-0.2.2/tests/unit/test_rest_sync_extend_cov.py +1126 -0
  746. proximadb-0.2.2/tests/unit/test_rest_sync_methods_coverage.py +234 -0
  747. proximadb-0.2.2/tests/unit/test_rest_sync_more_cov.py +957 -0
  748. proximadb-0.2.2/tests/unit/test_scan_records.py +201 -0
  749. proximadb-0.2.2/tests/unit/test_sdk_imports.py +172 -0
  750. proximadb-0.2.2/tests/unit/test_sdk_imports_moved.py +163 -0
  751. proximadb-0.2.2/tests/unit/test_search_operations.py +531 -0
  752. proximadb-0.2.2/tests/unit/test_search_utils_cov.py +369 -0
  753. proximadb-0.2.2/tests/unit/test_security_cov.py +844 -0
  754. proximadb-0.2.2/tests/unit/test_semantic_chunking.py +452 -0
  755. proximadb-0.2.2/tests/unit/test_semantic_embedding_chunking.py +218 -0
  756. proximadb-0.2.2/tests/unit/test_timeseries_cov.py +715 -0
  757. proximadb-0.2.2/tests/unit/test_unified_client_async.py +124 -0
  758. proximadb-0.2.2/tests/unit/test_unified_client_async_core_ops.py +332 -0
  759. proximadb-0.2.2/tests/unit/test_unified_client_async_grpc_routing.py +152 -0
  760. proximadb-0.2.2/tests/unit/test_unified_client_cov.py +3163 -0
  761. proximadb-0.2.2/tests/unit/test_unified_client_ingest_documents.py +242 -0
  762. proximadb-0.2.2/tests/unit/test_unified_client_intelligent_selection.py +538 -0
  763. proximadb-0.2.2/tests/unit/test_unified_client_v2_cov.py +637 -0
  764. proximadb-0.2.2/tests/unit/test_vector_operations.py +640 -0
  765. proximadb-0.2.2/tests/unit/test_victor_integration.py +217 -0
  766. proximadb-0.2.2/tests/unit/test_victor_integrations_cov.py +1283 -0
  767. proximadb-0.2.2/tests/update_tests_real_server.py +312 -0
  768. proximadb-0.2.2/tests/utils/__init__.py +24 -0
  769. proximadb-0.2.2/tests/utils/base_test.py +245 -0
  770. proximadb-0.2.2/tests/utils/bert_embedding_service.py +352 -0
  771. proximadb-0.2.2/tests/utils/bert_embedding_utils.py +294 -0
  772. proximadb-0.2.2/tests/utils/embedded_base_test.py +270 -0
  773. proximadb-0.2.2/tests/utils/embedded_client_adapter.py +280 -0
  774. proximadb-0.2.2/tests/utils/server_utils.py +151 -0
  775. proximadb-0.2.2/tests/utils/test_helpers.py +91 -0
  776. proximadb-0.2.2/tests/validate_sst_recall.py +231 -0
  777. proximadb-0.2.2/tests/working_graph_benchmark.py +551 -0
@@ -0,0 +1,50 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ MANIFEST
23
+
24
+ # Virtual environments
25
+ venv/
26
+ ENV/
27
+ env/
28
+ .venv
29
+
30
+ # IDEs
31
+ .vscode/
32
+ .idea/
33
+ *.swp
34
+ *.swo
35
+ *~
36
+
37
+ # Testing
38
+ .pytest_cache/
39
+ .coverage
40
+ htmlcov/
41
+ .tox/
42
+
43
+ # ProximaDB test data directories
44
+ data/
45
+ metadata/
46
+ manifest/
47
+
48
+ # Temporary files
49
+ *.log
50
+ =1.75.1
@@ -0,0 +1,544 @@
1
+ # Embedding Providers Architecture Redesign
2
+
3
+ ## Current Issues
4
+
5
+ ### 1. **Code Duplication**
6
+ - Each provider (BGE, E5, SFR, gte-Qwen) repeats similar initialization logic
7
+ - Model loading code is duplicated across providers
8
+ - Normalization, batching, and dimension detection repeated everywhere
9
+
10
+ ### 2. **Clunky Factory Pattern**
11
+ - Factory has hardcoded default models and dimensions
12
+ - Adding new providers requires modifying factory code
13
+ - No clean separation between provider metadata and implementation
14
+
15
+ ### 3. **Poor Extensibility**
16
+ - No plugin system for third-party providers
17
+ - Hardcoded provider registry in factory.py
18
+ - Difficult to add new model variants without code changes
19
+
20
+ ### 4. **Missing Features**
21
+ - No provider lifecycle management (init, warmup, cleanup)
22
+ - No model caching/pooling across provider instances
23
+ - No automatic model discovery from HuggingFace
24
+ - No provider-level configuration inheritance
25
+
26
+ ### 5. **Performance Issues**
27
+ - Models loaded on every provider instantiation
28
+ - No shared model instances across requests
29
+ - No async/concurrent embedding support
30
+ - No batch optimization strategies
31
+
32
+ ### 6. **Testing Challenges**
33
+ - Hard to mock providers for testing
34
+ - No clear provider interface contract
35
+ - Integration tests require real model downloads
36
+
37
+ ---
38
+
39
+ ## Optimized Architecture
40
+
41
+ ### Design Principles
42
+
43
+ 1. **Composition over Inheritance** - Use mixins for shared functionality
44
+ 2. **Plugin-Based** - Dynamic provider registration via decorators
45
+ 3. **Lazy Loading** - Load models only when first used
46
+ 4. **Singleton Models** - Share model instances across provider instances
47
+ 5. **Type Safety** - Full type hints and runtime validation
48
+ 6. **Async-First** - Support both sync and async APIs
49
+
50
+ ---
51
+
52
+ ### New Architecture Components
53
+
54
+ ```
55
+ embedding_providers/
56
+ ├── __init__.py # Public API exports
57
+ ├── core/
58
+ │ ├── __init__.py
59
+ │ ├── base.py # Abstract base classes
60
+ │ ├── config.py # Configuration classes
61
+ │ ├── registry.py # Provider registry system
62
+ │ ├── lifecycle.py # Provider lifecycle management
63
+ │ └── cache.py # Model caching and pooling
64
+ ├── mixins/
65
+ │ ├── __init__.py
66
+ │ ├── sentence_transformer.py # SentenceTransformer mixin
67
+ │ ├── normalization.py # Embedding normalization mixin
68
+ │ ├── batching.py # Batch processing mixin
69
+ │ └── instruction.py # Query instruction mixin
70
+ ├── providers/
71
+ │ ├── __init__.py
72
+ │ ├── local/ # Local model providers
73
+ │ │ ├── __init__.py
74
+ │ │ ├── gte_qwen.py
75
+ │ │ ├── sfr.py
76
+ │ │ ├── bge.py
77
+ │ │ ├── e5.py
78
+ │ │ └── sentence_transformer.py
79
+ │ ├── api/ # API-based providers
80
+ │ │ ├── __init__.py
81
+ │ │ ├── openai.py
82
+ │ │ └── cohere.py
83
+ │ └── testing/
84
+ │ ├── __init__.py
85
+ │ └── simulated.py
86
+ ├── factory.py # Smart factory with auto-discovery
87
+ └── utils/
88
+ ├── __init__.py
89
+ ├── model_info.py # HuggingFace model metadata
90
+ └── validators.py # Input validation utilities
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Implementation Plan
96
+
97
+ ### Phase 1: Core Infrastructure (This Session)
98
+
99
+ #### 1.1 New Base Classes (`core/base.py`)
100
+
101
+ ```python
102
+ from abc import ABC, abstractmethod
103
+ from typing import Optional, List, Dict, Any
104
+ import numpy as np
105
+
106
+ class EmbeddingProviderProtocol(Protocol):
107
+ """Type protocol for embedding providers"""
108
+ def embed(self, texts: List[str]) -> np.ndarray: ...
109
+ def get_dimension(self) -> int: ...
110
+
111
+ class BaseEmbeddingProvider(ABC):
112
+ """Enhanced base class with lifecycle support"""
113
+
114
+ def __init__(self, config: Optional['ProviderConfig'] = None):
115
+ self.config = config or self.default_config()
116
+ self._initialized = False
117
+ self._model = None
118
+
119
+ @abstractmethod
120
+ def default_config(self) -> 'ProviderConfig':
121
+ """Return default configuration"""
122
+ pass
123
+
124
+ @abstractmethod
125
+ def _load_model(self):
126
+ """Load the embedding model"""
127
+ pass
128
+
129
+ def ensure_initialized(self):
130
+ """Lazy initialization"""
131
+ if not self._initialized:
132
+ self._model = self._load_model()
133
+ self._initialized = True
134
+
135
+ @abstractmethod
136
+ def embed(self, texts: List[str]) -> np.ndarray:
137
+ """Generate embeddings (concrete implementation)"""
138
+ pass
139
+
140
+ def cleanup(self):
141
+ """Cleanup resources"""
142
+ if self._model is not None:
143
+ del self._model
144
+ self._model = None
145
+ self._initialized = False
146
+ ```
147
+
148
+ #### 1.2 Provider Configuration (`core/config.py`)
149
+
150
+ ```python
151
+ from dataclasses import dataclass, field
152
+ from typing import Optional, Dict, Any
153
+
154
+ @dataclass(frozen=True)
155
+ class ModelMetadata:
156
+ """Immutable model metadata"""
157
+ name: str
158
+ dimension: int
159
+ max_length: int = 512
160
+ provider_type: str = "sentence-transformer"
161
+ requires_instruction: bool = False
162
+ instruction_template: Optional[str] = None
163
+ mteb_score: Optional[float] = None
164
+ languages: str = "en"
165
+
166
+ @dataclass
167
+ class ProviderConfig:
168
+ """Unified provider configuration"""
169
+ model: ModelMetadata
170
+ batch_size: int = 32
171
+ normalize: bool = True
172
+ device: Optional[str] = None
173
+ cache_dir: Optional[str] = None
174
+ trust_remote_code: bool = False
175
+ extra: Dict[str, Any] = field(default_factory=dict)
176
+
177
+ def merge(self, **kwargs) -> 'ProviderConfig':
178
+ """Return new config with updated values"""
179
+ data = asdict(self)
180
+ data['extra'].update(kwargs.pop('extra', {}))
181
+ data.update(kwargs)
182
+ return ProviderConfig(**data)
183
+ ```
184
+
185
+ #### 1.3 Provider Registry (`core/registry.py`)
186
+
187
+ ```python
188
+ from typing import Dict, Type, Optional, Callable
189
+ from functools import wraps
190
+
191
+ class ProviderRegistry:
192
+ """Global provider registry with auto-discovery"""
193
+
194
+ _providers: Dict[str, Type[BaseEmbeddingProvider]] = {}
195
+ _metadata: Dict[str, Dict[str, ModelMetadata]] = {}
196
+ _aliases: Dict[str, str] = {}
197
+
198
+ @classmethod
199
+ def register(
200
+ cls,
201
+ name: str,
202
+ models: Dict[str, ModelMetadata],
203
+ aliases: Optional[List[str]] = None
204
+ ):
205
+ """Decorator for provider registration"""
206
+ def decorator(provider_class: Type[BaseEmbeddingProvider]):
207
+ cls._providers[name] = provider_class
208
+ cls._metadata[name] = models
209
+
210
+ # Register aliases
211
+ for alias in (aliases or []):
212
+ cls._aliases[alias] = name
213
+
214
+ return provider_class
215
+ return decorator
216
+
217
+ @classmethod
218
+ def get_provider(cls, name: str) -> Type[BaseEmbeddingProvider]:
219
+ """Get provider class by name"""
220
+ name = cls._aliases.get(name, name)
221
+ if name not in cls._providers:
222
+ raise ValueError(f"Unknown provider: {name}")
223
+ return cls._providers[name]
224
+
225
+ @classmethod
226
+ def get_models(cls, provider_name: str) -> Dict[str, ModelMetadata]:
227
+ """Get available models for provider"""
228
+ provider_name = cls._aliases.get(provider_name, provider_name)
229
+ return cls._metadata.get(provider_name, {})
230
+
231
+ @classmethod
232
+ def list_providers(cls) -> List[str]:
233
+ """List all registered providers"""
234
+ return sorted(cls._providers.keys())
235
+ ```
236
+
237
+ #### 1.4 Model Cache (`core/cache.py`)
238
+
239
+ ```python
240
+ from typing import Optional, Any
241
+ import threading
242
+
243
+ class ModelCache:
244
+ """Thread-safe singleton model cache"""
245
+
246
+ _instance = None
247
+ _lock = threading.Lock()
248
+ _models: Dict[str, Any] = {}
249
+
250
+ def __new__(cls):
251
+ if cls._instance is None:
252
+ with cls._lock:
253
+ if cls._instance is None:
254
+ cls._instance = super().__new__(cls)
255
+ return cls._instance
256
+
257
+ def get_or_load(
258
+ self,
259
+ key: str,
260
+ loader: Callable[[], Any]
261
+ ) -> Any:
262
+ """Get cached model or load it"""
263
+ if key not in self._models:
264
+ with self._lock:
265
+ if key not in self._models:
266
+ self._models[key] = loader()
267
+ return self._models[key]
268
+
269
+ def clear(self, key: Optional[str] = None):
270
+ """Clear cache entry or entire cache"""
271
+ with self._lock:
272
+ if key:
273
+ self._models.pop(key, None)
274
+ else:
275
+ self._models.clear()
276
+ ```
277
+
278
+ ---
279
+
280
+ ### Phase 2: Mixins for Shared Functionality
281
+
282
+ #### 2.1 SentenceTransformer Mixin (`mixins/sentence_transformer.py`)
283
+
284
+ ```python
285
+ class SentenceTransformerMixin:
286
+ """Mixin for sentence-transformers based providers"""
287
+
288
+ def _load_model(self):
289
+ """Load sentence-transformer model with caching"""
290
+ from sentence_transformers import SentenceTransformer
291
+
292
+ cache = ModelCache()
293
+ cache_key = f"st_{self.config.model.name}"
294
+
295
+ return cache.get_or_load(
296
+ cache_key,
297
+ lambda: SentenceTransformer(
298
+ self.config.model.name,
299
+ device=self.config.device,
300
+ trust_remote_code=self.config.trust_remote_code,
301
+ cache_folder=self.config.cache_dir
302
+ )
303
+ )
304
+
305
+ def embed(self, texts: List[str]) -> np.ndarray:
306
+ """Generate embeddings using sentence-transformers"""
307
+ self.ensure_initialized()
308
+
309
+ embeddings = self._model.encode(
310
+ texts,
311
+ batch_size=self.config.batch_size,
312
+ normalize_embeddings=self.config.normalize,
313
+ show_progress_bar=False
314
+ )
315
+ return embeddings
316
+ ```
317
+
318
+ #### 2.2 Instruction Mixin (`mixins/instruction.py`)
319
+
320
+ ```python
321
+ class InstructionMixin:
322
+ """Mixin for providers with query instructions"""
323
+
324
+ def apply_instruction(self, text: str, is_query: bool = True) -> str:
325
+ """Apply instruction template to text"""
326
+ if not is_query or not self.config.model.requires_instruction:
327
+ return text
328
+
329
+ template = self.config.model.instruction_template
330
+ if not template:
331
+ return text
332
+
333
+ return template.format(query=text)
334
+
335
+ def embed_query(self, query: str) -> np.ndarray:
336
+ """Embed query with instruction"""
337
+ instructed = self.apply_instruction(query, is_query=True)
338
+ return self.embed([instructed])[0]
339
+ ```
340
+
341
+ ---
342
+
343
+ ### Phase 3: Refactored Providers
344
+
345
+ #### 3.1 Example: gte-Qwen Provider
346
+
347
+ ```python
348
+ from ..core.base import BaseEmbeddingProvider
349
+ from ..core.config import ProviderConfig, ModelMetadata
350
+ from ..core.registry import ProviderRegistry
351
+ from ..mixins.sentence_transformer import SentenceTransformerMixin
352
+ from ..mixins.instruction import InstructionMixin
353
+
354
+ # Model metadata
355
+ GTE_QWEN_MODELS = {
356
+ "Alibaba-NLP/gte-Qwen2-7B-instruct": ModelMetadata(
357
+ name="Alibaba-NLP/gte-Qwen2-7B-instruct",
358
+ dimension=3584,
359
+ max_length=32768,
360
+ requires_instruction=True,
361
+ instruction_template="Instruct: Given a query, retrieve relevant passages\\nQuery: {query}",
362
+ mteb_score=71.0,
363
+ languages="100+"
364
+ ),
365
+ "Alibaba-NLP/gte-Qwen2-1.5B-instruct": ModelMetadata(
366
+ name="Alibaba-NLP/gte-Qwen2-1.5B-instruct",
367
+ dimension=1536,
368
+ max_length=32768,
369
+ requires_instruction=True,
370
+ instruction_template="Instruct: Given a query, retrieve relevant passages\\nQuery: {query}",
371
+ mteb_score=68.0,
372
+ languages="100+"
373
+ )
374
+ }
375
+
376
+ @ProviderRegistry.register(
377
+ name="gte-qwen",
378
+ models=GTE_QWEN_MODELS,
379
+ aliases=["alibaba", "qwen", "gte"]
380
+ )
381
+ class GTEQwenProvider(
382
+ InstructionMixin,
383
+ SentenceTransformerMixin,
384
+ BaseEmbeddingProvider
385
+ ):
386
+ """Optimized gte-Qwen provider"""
387
+
388
+ def default_config(self) -> ProviderConfig:
389
+ """Default configuration"""
390
+ return ProviderConfig(
391
+ model=GTE_QWEN_MODELS["Alibaba-NLP/gte-Qwen2-1.5B-instruct"],
392
+ batch_size=16,
393
+ normalize=True,
394
+ trust_remote_code=False # Use standard implementation
395
+ )
396
+ ```
397
+
398
+ **Lines of code: ~30 (vs 336 in current implementation)**
399
+
400
+ ---
401
+
402
+ ### Phase 4: Smart Factory
403
+
404
+ ```python
405
+ class EmbeddingProviderFactory:
406
+ """Smart factory with auto-discovery"""
407
+
408
+ @staticmethod
409
+ def create(
410
+ provider_name: str,
411
+ model_name: Optional[str] = None,
412
+ **kwargs
413
+ ) -> BaseEmbeddingProvider:
414
+ """
415
+ Create provider with intelligent defaults
416
+
417
+ Examples:
418
+ # Use default model
419
+ provider = EmbeddingProviderFactory.create("gte-qwen")
420
+
421
+ # Specify model
422
+ provider = EmbeddingProviderFactory.create(
423
+ "gte-qwen",
424
+ model_name="Alibaba-NLP/gte-Qwen2-7B-instruct"
425
+ )
426
+
427
+ # Custom config
428
+ provider = EmbeddingProviderFactory.create(
429
+ "bge",
430
+ batch_size=64,
431
+ device="cuda"
432
+ )
433
+ """
434
+ # Get provider class
435
+ provider_class = ProviderRegistry.get_provider(provider_name)
436
+
437
+ # Get default config
438
+ config = provider_class().default_config()
439
+
440
+ # Override model if specified
441
+ if model_name:
442
+ models = ProviderRegistry.get_models(provider_name)
443
+ if model_name not in models:
444
+ raise ValueError(f"Unknown model: {model_name}")
445
+ config = config.merge(model=models[model_name])
446
+
447
+ # Merge kwargs
448
+ if kwargs:
449
+ config = config.merge(**kwargs)
450
+
451
+ return provider_class(config)
452
+
453
+ @staticmethod
454
+ def list_providers() -> Dict[str, List[str]]:
455
+ """List all providers with their models"""
456
+ result = {}
457
+ for provider_name in ProviderRegistry.list_providers():
458
+ models = ProviderRegistry.get_models(provider_name)
459
+ result[provider_name] = list(models.keys())
460
+ return result
461
+ ```
462
+
463
+ ---
464
+
465
+ ## Benefits
466
+
467
+ ### 1. **Extensibility**
468
+ - Add new providers with ~30 lines of code
469
+ - Register providers via decorator
470
+ - No factory code changes needed
471
+
472
+ ### 2. **Performance**
473
+ - Model caching reduces memory usage
474
+ - Lazy loading improves startup time
475
+ - Shared models across instances
476
+
477
+ ### 3. **Maintainability**
478
+ - DRY principle via mixins
479
+ - Clear separation of concerns
480
+ - Type-safe with full hints
481
+
482
+ ### 4. **Testing**
483
+ - Easy to mock with protocols
484
+ - Provider registration is testable
485
+ - Clear interface contracts
486
+
487
+ ### 5. **Developer Experience**
488
+ - Auto-discovery of providers
489
+ - Intelligent defaults
490
+ - Comprehensive error messages
491
+
492
+ ---
493
+
494
+ ## Migration Path
495
+
496
+ ### Backward Compatibility
497
+
498
+ ```python
499
+ # Old API (still works)
500
+ from proximadb.embedding_providers import get_embedding_provider
501
+ provider = get_embedding_provider("simulated", dimension=384)
502
+
503
+ # New API (recommended)
504
+ from proximadb.embedding_providers import EmbeddingProviderFactory
505
+ provider = EmbeddingProviderFactory.create("gte-qwen")
506
+ ```
507
+
508
+ ### Migration Steps
509
+
510
+ 1. Implement core infrastructure (core/, mixins/)
511
+ 2. Refactor one provider as proof-of-concept
512
+ 3. Add backward compatibility layer
513
+ 4. Migrate remaining providers
514
+ 5. Deprecate old API (with warnings)
515
+ 6. Remove deprecated code in next major version
516
+
517
+ ---
518
+
519
+ ## Implementation Checklist
520
+
521
+ - [ ] Create core/ module structure
522
+ - [ ] Implement BaseEmbeddingProvider
523
+ - [ ] Implement ProviderConfig and ModelMetadata
524
+ - [ ] Implement ProviderRegistry
525
+ - [ ] Implement ModelCache
526
+ - [ ] Create mixins/ module structure
527
+ - [ ] Implement SentenceTransformerMixin
528
+ - [ ] Implement InstructionMixin
529
+ - [ ] Refactor gte-Qwen provider as POC
530
+ - [ ] Implement new Factory
531
+ - [ ] Add backward compatibility layer
532
+ - [ ] Migrate all providers
533
+ - [ ] Update tests
534
+ - [ ] Update documentation
535
+
536
+ ---
537
+
538
+ ## Success Metrics
539
+
540
+ - **Code Reduction**: 70%+ reduction in provider code
541
+ - **Performance**: 50%+ reduction in memory usage (model caching)
542
+ - **Extensibility**: Add new provider in <50 lines
543
+ - **Test Coverage**: 95%+ coverage on core modules
544
+ - **Backward Compatibility**: 100% of existing tests pass