iris-vector-graph 2.3.0__tar.gz → 2.4.1__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 (785) hide show
  1. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/PKG-INFO +2 -1
  2. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/EdgeScan.cls +24 -0
  3. iris_vector_graph-2.4.1/iris_src/src/Graph/KG/EmbedQueue.cls +210 -0
  4. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/GraphIndex.cls +8 -4
  5. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Loader.cls +8 -1
  6. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/NKGAccelAdjacency.cls +7 -0
  7. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/NKGAccelTraversal.cls +8 -0
  8. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/admin.py +93 -0
  9. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/embeddings.py +152 -20
  10. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/fhir.py +15 -0
  11. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/nodes_edges.py +11 -0
  12. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/temporal.py +11 -0
  13. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher_api.py +5 -2
  14. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/engine.py +4 -2
  15. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/status.py +34 -0
  16. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/pyproject.toml +9 -2
  17. iris_vector_graph-2.4.1/tests/integration/test_embed_queue_e2e.py +146 -0
  18. iris_vector_graph-2.4.1/tests/integration/test_index_consistency_e2e.py +150 -0
  19. iris_vector_graph-2.4.1/tests/unit/test_drift_detector.py +146 -0
  20. iris_vector_graph-2.4.1/tests/unit/test_embed_queue_unit.py +268 -0
  21. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embeddings_unit.py +79 -35
  22. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_unit.py +34 -0
  23. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_ivf_index.py +9 -0
  24. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_vector_unit.py +2 -0
  25. iris_vector_graph-2.3.0/iris_src/src/Graph/KG/EmbedQueue.cls +0 -114
  26. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/.gitignore +0 -0
  27. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/LICENSE +0 -0
  28. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/README.md +0 -0
  29. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_biomedical.py +0 -0
  30. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_fraud_detection.py +0 -0
  31. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_fraud_detection_sql.py +0 -0
  32. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_rdf_semantic_layer.py +0 -0
  33. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_utils.py +0 -0
  34. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/demo_working_system.py +0 -0
  35. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/__init__.py +0 -0
  36. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical/__init__.py +0 -0
  37. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical/loaders.py +0 -0
  38. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical/resolver.py +0 -0
  39. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical/types.py +0 -0
  40. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical_legacy/__init__.py +0 -0
  41. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  42. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  43. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  44. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/fraud/__init__.py +0 -0
  45. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/fraud/loaders.py +0 -0
  46. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/fraud/resolver.py +0 -0
  47. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/domains/fraud/types.py +0 -0
  48. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/graphQL.http +0 -0
  49. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/hybrid_vector_graph_query.cypher +0 -0
  50. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/examples/rest.http +0 -0
  51. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  52. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  53. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  54. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  55. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  56. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  57. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Centrality.cls +0 -0
  58. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Communities.cls +0 -0
  59. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Edge.cls +0 -0
  60. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  61. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  62. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  63. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  64. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Meta.cls +0 -0
  65. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
  66. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/NKGAccelCentrality.cls +0 -0
  67. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/NKGAccelLoader.cls +0 -0
  68. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  69. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  70. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  71. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Service.cls +0 -0
  72. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  73. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  74. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  75. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  76. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/Traversal.cls +0 -0
  77. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TraversalBFS.cls +0 -0
  78. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TraversalBuild.cls +0 -0
  79. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TraversalKHop.cls +0 -0
  80. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/TraversalPaths.cls +0 -0
  81. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  82. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/IVG/CypherEngine.cls +0 -0
  83. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/IVG/Percentile.cls +0 -0
  84. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/PageRankEmbedded.cls +0 -0
  85. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/User.Exec.cls +0 -0
  86. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  87. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/__init__.py +0 -0
  88. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/__init__.py +0 -0
  89. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/_rdf_utils.py +0 -0
  90. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/algorithms.py +0 -0
  91. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/prov.py +0 -0
  92. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/query.py +0 -0
  93. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/query.py,cover +0 -0
  94. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/rdf_export.py +0 -0
  95. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/schema.py +0 -0
  96. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/shacl.py +0 -0
  97. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/snapshot.py +0 -0
  98. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/snapshot.py,cover +0 -0
  99. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_engine/vector.py +0 -0
  100. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/_validate.py +0 -0
  101. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/api_auth.py +0 -0
  102. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/bolt_server.py +0 -0
  103. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
  104. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
  105. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
  106. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
  107. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
  108. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
  109. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
  110. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
  111. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
  112. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
  113. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
  114. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
  115. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
  116. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
  117. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
  118. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
  119. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
  120. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
  121. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
  122. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
  123. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
  124. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
  125. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
  126. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
  127. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
  128. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
  129. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
  130. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
  131. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
  132. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
  133. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
  134. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
  135. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
  136. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
  137. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
  138. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
  139. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
  140. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
  141. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
  142. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
  143. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
  144. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
  145. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
  146. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
  147. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
  148. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
  149. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
  150. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
  151. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
  152. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
  153. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
  154. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
  155. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
  156. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
  157. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
  158. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
  159. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
  160. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
  161. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
  162. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
  163. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
  164. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
  165. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
  166. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
  167. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
  168. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
  169. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
  170. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
  171. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
  172. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
  173. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
  174. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
  175. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
  176. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
  177. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
  178. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
  179. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
  180. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
  181. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
  182. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
  183. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
  184. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
  185. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
  186. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
  187. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
  188. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
  189. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
  190. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
  191. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
  192. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
  193. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
  194. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  195. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  196. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  197. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
  198. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
  199. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  200. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
  201. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
  202. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  203. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
  204. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
  205. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
  206. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
  207. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
  208. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
  209. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
  210. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
  211. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
  212. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
  213. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
  214. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
  215. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
  216. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
  217. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
  218. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
  219. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
  220. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
  221. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
  222. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
  223. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
  224. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
  225. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
  226. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
  227. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
  228. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
  229. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
  230. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
  231. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
  232. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
  233. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
  234. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
  235. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
  236. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
  237. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
  238. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
  239. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
  240. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
  241. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
  242. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
  243. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
  244. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
  245. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
  246. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
  247. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
  248. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
  249. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
  250. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
  251. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
  252. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
  253. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
  254. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
  255. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
  256. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
  257. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
  258. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
  259. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
  260. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
  261. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
  262. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
  263. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
  264. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
  265. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
  266. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
  267. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
  268. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
  269. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
  270. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
  271. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
  272. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
  273. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
  274. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
  275. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
  276. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
  277. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
  278. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
  279. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
  280. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
  281. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
  282. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
  283. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
  284. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
  285. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
  286. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
  287. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
  288. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
  289. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
  290. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/index.html +0 -0
  291. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/manifest.json +0 -0
  292. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
  293. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
  294. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
  295. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
  296. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
  297. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
  298. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
  299. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
  300. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
  301. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
  302. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
  303. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
  304. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
  305. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
  306. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
  307. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
  308. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
  309. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
  310. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
  311. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
  312. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
  313. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
  314. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
  315. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
  316. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
  317. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
  318. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
  319. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
  320. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
  321. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
  322. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
  323. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
  324. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
  325. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
  326. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
  327. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
  328. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
  329. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
  330. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
  331. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
  332. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
  333. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
  334. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
  335. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
  336. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
  337. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
  338. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
  339. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
  340. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
  341. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
  342. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
  343. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
  344. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
  345. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
  346. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
  347. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
  348. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
  349. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
  350. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
  351. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
  352. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
  353. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
  354. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
  355. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
  356. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
  357. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
  358. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
  359. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
  360. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
  361. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
  362. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
  363. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
  364. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
  365. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
  366. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
  367. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
  368. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/index.html +0 -0
  369. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
  370. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
  371. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
  372. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/bulk_loader.py +0 -0
  373. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/capabilities.py +0 -0
  374. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cli.py +0 -0
  375. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/__init__.py +0 -0
  376. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  377. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  378. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/aql/__init__.py +0 -0
  379. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/aql/ast.py +0 -0
  380. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/aql/lexer.py +0 -0
  381. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/aql/parser.py +0 -0
  382. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/aql/translator.py +0 -0
  383. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/ast.py +0 -0
  384. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/lexer.py +0 -0
  385. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/parser.py +0 -0
  386. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/translator.py +0 -0
  387. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/cypher/translator.py,cover +0 -0
  388. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/dbapi_utils.py +0 -0
  389. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/embed_selector.py +0 -0
  390. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/embedded.py +0 -0
  391. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/errors.py +0 -0
  392. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/fhir_bridge.py +0 -0
  393. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/fusion.py +0 -0
  394. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/__init__.py +0 -0
  395. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/constants.py +0 -0
  396. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/engine.py +0 -0
  397. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/pooling.py +0 -0
  398. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/resolvers.py +0 -0
  399. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/gql/schema.py +0 -0
  400. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/index_config.py +0 -0
  401. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/index_protocol.py +0 -0
  402. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/models.py +0 -0
  403. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/operators.py +0 -0
  404. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/py.typed +0 -0
  405. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/result.py +0 -0
  406. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/schema.py +0 -0
  407. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/sdk.py +0 -0
  408. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/security.py +0 -0
  409. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/store_protocol.py +0 -0
  410. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/stores/__init__.py +0 -0
  411. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/stores/arno_bridge.py +0 -0
  412. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/stores/iris_sql_store.py +0 -0
  413. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/stores/lazy_kg.py +0 -0
  414. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/text_search.py +0 -0
  415. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/utils.py +0 -0
  416. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/iris_vector_graph/vector_utils.py +0 -0
  417. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/fhir_bridges.sql +0 -0
  418. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/fraud_sample_data.sql +0 -0
  419. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/globals_schema.sql +0 -0
  420. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/graph_path_globals.sql +0 -0
  421. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/graph_walk_tvf.sql +0 -0
  422. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/migrations/000_base_schema_iris.sql +0 -0
  423. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/migrations/001_add_nodepk_table.sql +0 -0
  424. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/migrations/001_rollback_nodepk.sql +0 -0
  425. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/migrations/002_add_fk_constraints.sql +0 -0
  426. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/operators.sql +0 -0
  427. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/operators_fixed.sql +0 -0
  428. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/procedures/kg_PageRank.sql +0 -0
  429. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/rdf_reifications.sql +0 -0
  430. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/sql/schema.sql +0 -0
  431. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/TESTING.md +0 -0
  432. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmark_parser.py +0 -0
  433. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/README.md +0 -0
  434. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/bench.py +0 -0
  435. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/bench_193_full.py +0 -0
  436. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/bench_utils.py +0 -0
  437. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/benchmark_neo4j.py +0 -0
  438. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/bfs_benchmark.py +0 -0
  439. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/establish_baseline.py +0 -0
  440. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/graph_gen.py +0 -0
  441. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/ic2_profile.py +0 -0
  442. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/iris_baseline_run.py +0 -0
  443. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/iris_os_run.py +0 -0
  444. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/ldbc_full_loader.py +0 -0
  445. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/load_neo4j.py +0 -0
  446. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/benchmarks/synthetic_baseline.csv +0 -0
  447. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/conftest.py +0 -0
  448. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/__init__.py +0 -0
  449. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/conftest.py +0 -0
  450. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/test_cypher_api.py +0 -0
  451. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/test_cypher_api_errors.py +0 -0
  452. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/test_graphql_queries.py +0 -0
  453. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/test_graphql_schema.py +0 -0
  454. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/contract/test_ppr_api.py +0 -0
  455. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/curl_suite.sh +0 -0
  456. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/__init__.py +0 -0
  457. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/conftest.py +0 -0
  458. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/fixtures/__init__.py +0 -0
  459. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/fixtures/centrality_graphs.py +0 -0
  460. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/fixtures/community_graphs.py +0 -0
  461. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_analytics_dispatch.py +0 -0
  462. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_approx_count_distinct.py +0 -0
  463. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_aql_e2e.py +0 -0
  464. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_arno_bfs_global.py +0 -0
  465. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_arno_bfs_unified.py +0 -0
  466. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_betweenness_neighborhood_e2e.py +0 -0
  467. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_betweenness_os_e2e.py +0 -0
  468. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_biomedical_demo.py +0 -0
  469. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_biomedical_ui.py +0 -0
  470. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_centrality_e2e.py +0 -0
  471. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_closeness_os_e2e.py +0 -0
  472. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_communities_e2e.py +0 -0
  473. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_communities_perf.py +0 -0
  474. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  475. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
  476. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  477. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_cypher_vector_search.py +0 -0
  478. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
  479. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_edge_weights.py +0 -0
  480. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_eigenvector_os_e2e.py +0 -0
  481. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_embed_queue_e2e.py +0 -0
  482. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
  483. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_execution_contexts.py +0 -0
  484. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_execution_contexts_new.py +0 -0
  485. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  486. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_fraud_demo.py +0 -0
  487. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_fraud_ui.py +0 -0
  488. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_gql_autogen_startup.py +0 -0
  489. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  490. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_gql_node_queries.py +0 -0
  491. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_gql_semantic_search.py +0 -0
  492. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_gql_traversal.py +0 -0
  493. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  494. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_hla_kg_e2e.py +0 -0
  495. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_ic13_shortest_path.py +0 -0
  496. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_ic3_exact_count.py +0 -0
  497. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_igraph_fastpath_parity.py +0 -0
  498. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_index_protocol.py +0 -0
  499. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_introspection_api.py +0 -0
  500. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_ivf_insert.py +0 -0
  501. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_large_output_chunked.py +0 -0
  502. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_lazy_kg_e2e.py +0 -0
  503. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_lazy_node_resolution.py +0 -0
  504. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_msbfs_closeness.py +0 -0
  505. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  506. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_named_paths_e2e.py +0 -0
  507. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_nkg_index_e2e.py +0 -0
  508. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_objectscript_split_resolution.py +0 -0
  509. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  510. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
  511. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_plaid.py +0 -0
  512. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_plaid_search_e2e.py +0 -0
  513. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  514. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  515. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_procedure_installation.py +0 -0
  516. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_reification_e2e.py +0 -0
  517. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  518. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_sdk_ergonomics_178_180_e2e.py +0 -0
  519. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_store_injection_e2e.py +0 -0
  520. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_streaming_bfs.py +0 -0
  521. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_api.py +0 -0
  522. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_ingest.py +0 -0
  523. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_multi_context.py +0 -0
  524. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_search.py +0 -0
  525. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_setup.py +0 -0
  526. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_stress_traversal.py +0 -0
  527. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_subgraph_e2e.py +0 -0
  528. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_subquery_call_e2e.py +0 -0
  529. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_temporal_store_e2e.py +0 -0
  530. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_unified_index_api.py +0 -0
  531. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_untested_methods.py +0 -0
  532. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/e2e/test_vecindex_e2e.py +0 -0
  533. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/__init__.py +0 -0
  534. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/conftest.py +0 -0
  535. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/gql/__init__.py +0 -0
  536. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/gql/test_graphql_mutations.py +0 -0
  537. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  538. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/gql/test_graphql_queries.py +0 -0
  539. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  540. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_196_bug_fixes.py +0 -0
  541. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_admin_introspection.py +0 -0
  542. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_algorithm_branches.py +0 -0
  543. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_algorithms_deep_coverage.py +0 -0
  544. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_algorithms_error_paths.py +0 -0
  545. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_algorithms_integration.py +0 -0
  546. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_algorithms_new_paths.py +0 -0
  547. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_api_completeness.py +0 -0
  548. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_arno_bridge_mock_paths.py +0 -0
  549. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_arno_bridge_paths.py +0 -0
  550. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_arno_store_layer.py +0 -0
  551. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_bidirectional_ppr.py +0 -0
  552. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_bulk_load_session.py +0 -0
  553. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_bulk_loader_live.py +0 -0
  554. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cls_layer.py +0 -0
  555. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_coverage_final_push.py +0 -0
  556. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_coverage_push_final.py +0 -0
  557. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_advanced.py +0 -0
  558. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_api_e2e.py +0 -0
  559. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_api_exception_paths.py +0 -0
  560. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_enhancements.py +0 -0
  561. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_multi_type.py +0 -0
  562. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_rd.py +0 -0
  563. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_rel_vars.py +0 -0
  564. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_single_type.py +0 -0
  565. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_untyped.py +0 -0
  566. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_cypher_vector_search.py +0 -0
  567. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_diabolical_qa.py +0 -0
  568. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_doc_claims.py +0 -0
  569. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_embeddings_api.py +0 -0
  570. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_embeddings_integration.py +0 -0
  571. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_embeddings_paths.py +0 -0
  572. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_engine_misc_paths.py +0 -0
  573. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_engine_utils_paths.py +0 -0
  574. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_fastapi_graphql.py +0 -0
  575. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_fhir_bridges_integration.py +0 -0
  576. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_fhir_event_sidecar.py +0 -0
  577. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_fusion_dbapi_bulk.py +0 -0
  578. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_gql_resolvers_live.py +0 -0
  579. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_lazykg_algorithms.py +0 -0
  580. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_lazykg_fallback_forced.py +0 -0
  581. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_named_paths_integration.py +0 -0
  582. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  583. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_constraints.py +0 -0
  584. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  585. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_migration.py +0 -0
  586. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_performance.py +0 -0
  587. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodepk_production_scale.py +0 -0
  588. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodes_edges_and_algo_paths.py +0 -0
  589. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_nodes_edges_deep.py +0 -0
  590. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_objectscript_classes.py +0 -0
  591. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  592. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_deep.py +0 -0
  593. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_engine_branches.py +0 -0
  594. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_engine_special.py +0 -0
  595. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_fastpaths.py +0 -0
  596. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_paths_deep.py +0 -0
  597. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_query_special_patterns.py +0 -0
  598. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_rdf_semantic_layer_e2e.py +0 -0
  599. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_reification_integration.py +0 -0
  600. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_remaining_paths.py +0 -0
  601. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_schema_and_engine_procs.py +0 -0
  602. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_schema_deep.py +0 -0
  603. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_schema_migration.py +0 -0
  604. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_snapshot_deep.py +0 -0
  605. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_snapshot_import_export.py +0 -0
  606. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_snapshot_paths.py +0 -0
  607. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_sql_parameterization.py +0 -0
  608. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_sql_store_direct.py +0 -0
  609. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_sql_store_paths.py +0 -0
  610. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_store_algorithms.py +0 -0
  611. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_store_bfs_deep.py +0 -0
  612. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_store_exception_paths.py +0 -0
  613. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_store_write_paths.py +0 -0
  614. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_stored_procedure_install.py +0 -0
  615. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_subquery_call_integration.py +0 -0
  616. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_advanced_paths.py +0 -0
  617. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_engine_deep.py +0 -0
  618. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_index_paths.py +0 -0
  619. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_index_paths2.py +0 -0
  620. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_optimizer_live.py +0 -0
  621. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/integration/test_vector_paths.py +0 -0
  622. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/perf/__init__.py +0 -0
  623. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/perf/test_betweenness_vs_gds.py +0 -0
  624. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/perf/test_head_to_head.py +0 -0
  625. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/perf/test_leiden_four_way.py +0 -0
  626. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/performance/conftest.py +0 -0
  627. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/performance/scale_benchmark.py +0 -0
  628. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/performance/test_ppr_stress.py +0 -0
  629. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/performance/test_stress_v1_5.py +0 -0
  630. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/run_all_tests.py +0 -0
  631. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_iris_rest_api.py +0 -0
  632. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_networkx_loader.py +0 -0
  633. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_performance_benchmarks.py +0 -0
  634. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_pyops_vector_conversion.py +0 -0
  635. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_python_operators.py +0 -0
  636. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_python_sdk.py +0 -0
  637. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_schema_validation.py +0 -0
  638. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_sql_queries.py +0 -0
  639. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/python/test_vector_functions.py +0 -0
  640. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/__init__.py +0 -0
  641. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/engine_api_baseline.json +0 -0
  642. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/test_complexity.py +0 -0
  643. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/test_engine_api.py +0 -0
  644. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/test_module_size.py +0 -0
  645. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/regression/test_no_silent_swallow.py +0 -0
  646. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/test_schema_contract.py +0 -0
  647. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/cypher/__init__.py +0 -0
  648. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/cypher/test_lexer.py +0 -0
  649. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  650. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/cypher/test_parser.py +0 -0
  651. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/cypher/test_parser_advanced.py +0 -0
  652. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_193_bfs_nkg_fast_path.py +0 -0
  653. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_194_readme.py +0 -0
  654. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_admin_remaining.py +0 -0
  655. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_admin_unit.py +0 -0
  656. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_algorithm_warning_paths.py +0 -0
  657. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_algorithms_extended_unit.py +0 -0
  658. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_algorithms_large_graph_warn.py +0 -0
  659. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_algorithms_unit.py +0 -0
  660. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_api_security.py +0 -0
  661. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_aql_lexer.py +0 -0
  662. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_aql_parser.py +0 -0
  663. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_aql_translator.py +0 -0
  664. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_aql_translator_extra.py +0 -0
  665. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_arno_bridge.py +0 -0
  666. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_batch_mutations.py +0 -0
  667. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_betweenness_os_unit.py +0 -0
  668. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bfs_arno.py +0 -0
  669. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bm25_index.py +0 -0
  670. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bolt_relationship_encoding.py +0 -0
  671. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bolt_server.py +0 -0
  672. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bulk_load_session.py +0 -0
  673. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bulk_loader_coverage.py +0 -0
  674. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_bulk_loader_unit.py +0 -0
  675. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_centrality_translator.py +0 -0
  676. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_centrality_unit.py +0 -0
  677. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cli.py +0 -0
  678. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_closeness_os_unit.py +0 -0
  679. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cls_deployment.py +0 -0
  680. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_communities_translator.py +0 -0
  681. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_communities_unit.py +0 -0
  682. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_concept_first_status.py +0 -0
  683. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_coverage_boost.py +0 -0
  684. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_api_admin.py +0 -0
  685. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_api_coverage.py +0 -0
  686. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_api_extra.py +0 -0
  687. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_benchmark.py +0 -0
  688. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  689. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_case_when.py +0 -0
  690. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_e2e_new_features.py +0 -0
  691. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_functions.py +0 -0
  692. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_parser.py +0 -0
  693. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_posos_bugs.py +0 -0
  694. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_procedures.py +0 -0
  695. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_translator.py +0 -0
  696. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_union_exists.py +0 -0
  697. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_var_length.py +0 -0
  698. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_cypher_vector_search.py +0 -0
  699. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_dbapi_utils_unit.py +0 -0
  700. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_edge_embeddings.py +0 -0
  701. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_edgeprop_ndjson.py +0 -0
  702. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embed_nodes_params.py +0 -0
  703. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embed_selector.py +0 -0
  704. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embed_selector_unit.py +0 -0
  705. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embedded.py +0 -0
  706. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embedded_wgproto.py +0 -0
  707. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_embeddings_remaining.py +0 -0
  708. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_deep.py +0 -0
  709. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_dimension_fix.py +0 -0
  710. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_embeddings.py +0 -0
  711. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_mocked.py +0 -0
  712. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_engine_status.py +0 -0
  713. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_error_model.py +0 -0
  714. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_fhir_bridge.py +0 -0
  715. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_fhir_bridges.py +0 -0
  716. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_fhir_event_sidecar.py +0 -0
  717. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_gds_shims.py +0 -0
  718. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_get_nodes.py +0 -0
  719. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_gql_coverage.py +0 -0
  720. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_gql_edge_cases.py +0 -0
  721. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_gql_resolver_bodies.py +0 -0
  722. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_graph_kernels.py +0 -0
  723. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_graphql_dataloader.py +0 -0
  724. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_index_config.py +0 -0
  725. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_index_handle.py +0 -0
  726. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_index_protocol.py +0 -0
  727. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_ingest_formats.py +0 -0
  728. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_introspection_api.py +0 -0
  729. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_ivgresult.py +0 -0
  730. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_khop_dispatch.py +0 -0
  731. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_lazy_kg.py +0 -0
  732. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_module_coverage.py +0 -0
  733. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_named_graphs.py +0 -0
  734. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_named_paths.py +0 -0
  735. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_nodes_edges_unit.py +0 -0
  736. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_operators_coverage.py +0 -0
  737. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_operators_wiring.py +0 -0
  738. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_parse_cache.py +0 -0
  739. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_plaid_search.py +0 -0
  740. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  741. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_predicate_order.py +0 -0
  742. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_prov_export.py +0 -0
  743. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_query_extra_unit.py +0 -0
  744. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_query_fastpath_unit.py +0 -0
  745. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_query_unit.py +0 -0
  746. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_rdf_coverage_boost.py +0 -0
  747. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_rdf_export.py +0 -0
  748. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_reification.py +0 -0
  749. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
  750. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_schema_engine_unit.py +0 -0
  751. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_schema_init.py +0 -0
  752. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_schema_procedures.py +0 -0
  753. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_schema_remaining.py +0 -0
  754. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_schema_unit.py +0 -0
  755. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sdk.py +0 -0
  756. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sdk_async.py +0 -0
  757. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sdk_coverage.py +0 -0
  758. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_shacl_validation.py +0 -0
  759. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_shortest_path.py +0 -0
  760. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_snapshot.py +0 -0
  761. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_snapshot_restore_unit.py +0 -0
  762. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_snapshot_unit.py +0 -0
  763. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sql_splitter.py +0 -0
  764. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sql_store_unit.py +0 -0
  765. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sql_table_bridge.py +0 -0
  766. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_store_protocol.py +0 -0
  767. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_structural_guard.py +0 -0
  768. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_structural_guard_e2e.py +0 -0
  769. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_subgraph.py +0 -0
  770. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_subquery_call.py +0 -0
  771. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_supporting_modules.py +0 -0
  772. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_sync_model.py +0 -0
  773. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_temporal_cypher.py +0 -0
  774. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_temporal_edges.py +0 -0
  775. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_temporal_unit.py +0 -0
  776. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_translator_coverage.py +0 -0
  777. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_translator_deep_coverage.py +0 -0
  778. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_translator_extended.py +0 -0
  779. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_translator_gaps.py +0 -0
  780. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_unified_edge_store.py +0 -0
  781. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_utilities_final.py +0 -0
  782. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_utils_coverage.py +0 -0
  783. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_validation.py +0 -0
  784. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_vector_search_routing.py +0 -0
  785. {iris_vector_graph-2.3.0 → iris_vector_graph-2.4.1}/tests/unit/test_weighted_shortest_path.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 2.3.0
3
+ Version: 2.4.1
4
4
  Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
5
  Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
6
  Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
@@ -25,6 +25,7 @@ Classifier: Topic :: Scientific/Engineering
25
25
  Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
26
26
  Requires-Python: >=3.10
27
27
  Requires-Dist: intersystems-iris>=1.0.0
28
+ Requires-Dist: iris-embedded-python-wrapper>=0.5.20
28
29
  Provides-Extra: biodata
29
30
  Requires-Dist: biopython>=1.81; extra == 'biodata'
30
31
  Requires-Dist: bioservices>=1.11.0; extra == 'biodata'
@@ -1,3 +1,27 @@
1
+ /// Graph.KG.EdgeScan — adjacency-global maintenance + scan procedures.
2
+ ///
3
+ /// ============================================================================
4
+ /// ^KG ADJACENCY LAYOUT OF RECORD (canonical — do not deviate)
5
+ /// ============================================================================
6
+ /// The production adjacency layout is SHARD-PREFIXED:
7
+ ///
8
+ /// ^KG("out", 0, s, p, o) = weight outbound edges
9
+ /// ^KG("in", 0, o, p, s) = weight inbound edges
10
+ /// ^KG("deg", s) = out-degree
11
+ /// ^KG("degp", s, p) = per-predicate out-degree
12
+ ///
13
+ /// Every live reader scans this layout: MatchEdges (here), Graph.KG.Algorithms,
14
+ /// Graph.KG.Centrality, Graph.KG.Subgraph, and the NKG builders. WriteAdjacency
15
+ /// (below), TraversalBuild.BuildKG, TemporalIndex.InsertEdge, and the (currently
16
+ /// undeployed) Graph.KG.GraphIndex functional index all WRITE this exact form.
17
+ ///
18
+ /// There is a LEGACY no-shard layout — ^KG("out", s, p, o) — still written by
19
+ /// the bench harness (Graph.KG.BenchSeeder / BenchFormat) and the standalone CSV
20
+ /// Graph.KG.Loader, and read by dead Else-fallback branches in NKGAccelTraversal
21
+ /// / NKGAccelAdjacency. Nothing in the production write/read path uses it.
22
+ /// DO NOT add new readers or writers of the no-shard form. If you need adjacency,
23
+ /// use ^KG("out", 0, ...). See docs/index-maintenance-architecture-review.md.
24
+ /// ============================================================================
1
25
  Class Graph.KG.EdgeScan Extends %RegisteredObject
2
26
  {
3
27
 
@@ -0,0 +1,210 @@
1
+ Class Graph.KG.EmbedQueue Extends %RegisteredObject
2
+ {
3
+
4
+ /// Enhanced embedding queue (spec 199). Entries are subscripted:
5
+ /// ^EmbedQueue(reqId, "status") = "PENDING" | "DONE" | "ERROR"
6
+ /// ^EmbedQueue(reqId, "text") = text to embed
7
+ /// ^EmbedQueue(reqId, "node_id") = node id (node-keyed entries) or ""
8
+ /// ^EmbedQueue(reqId, "result") = "<f1>,<f2>,...,<fN>" comma-joined vector (on DONE)
9
+ /// ^EmbedQueue(reqId, "error") = message (on ERROR)
10
+ /// ^EmbedQueue(reqId, "queued_at") = $ZDateTime timestamp
11
+ ///
12
+ /// reqId = node_id (node-keyed enqueue; re-enqueue overwrites — one entry per node)
13
+ /// or "txt:<n>" (free-text enqueue; always-new, never deduplicated).
14
+ ///
15
+ /// Single-processor: ClaimPendingBatch is a plain ordered scan (no atomic claim state).
16
+ /// Statuses are written UPPERCASE; reads tolerate legacy lowercase pending/done/error.
17
+ /// The actual batched embedding is performed Python-side (process_embed_queue), which
18
+ /// claims a batch, encodes all texts in one model call, and writes results via SetResult.
19
+
20
+ /// Normalize a stored status value to UPPERCASE canonical form (back-compat).
21
+ ClassMethod NormStatus(s As %String) As %String [ Private ]
22
+ {
23
+ Quit $ZConvert(s, "U")
24
+ }
25
+
26
+ /// Node-keyed enqueue (one entry per node id; overwrite). The text to embed defaults
27
+ /// to the node id; pass an explicit ``text`` to embed something else for the node.
28
+ ClassMethod Enqueue(nodeId As %String, embeddingConfig As %String = "", text As %String = "") As %Status
29
+ {
30
+ If text = "" { Set text = nodeId }
31
+ Set ^EmbedQueue(nodeId, "status") = "PENDING"
32
+ Set ^EmbedQueue(nodeId, "text") = text
33
+ Set ^EmbedQueue(nodeId, "node_id") = nodeId
34
+ Set ^EmbedQueue(nodeId, "result") = ""
35
+ Set ^EmbedQueue(nodeId, "error") = ""
36
+ Set ^EmbedQueue(nodeId, "config") = embeddingConfig
37
+ Set ^EmbedQueue(nodeId, "queued_at") = $ZDateTime($Horolog, 3)
38
+ Quit $$$OK
39
+ }
40
+
41
+ /// nodeIds may be a JSON array string (as sent by the Python client) or a
42
+ /// %DynamicArray. Returns count enqueued.
43
+ ClassMethod BulkEnqueue(nodeIds As %String, embeddingConfig As %String = "") As %Integer
44
+ {
45
+ Set arr = nodeIds
46
+ If '$IsObject(arr) { Set arr = ##class(%DynamicArray).%FromJSON(nodeIds) }
47
+ Set count = 0
48
+ Set iter = arr.%GetIterator()
49
+ While iter.%GetNext(.idx, .nodeId) {
50
+ Set sc = ..Enqueue(nodeId, embeddingConfig)
51
+ If $$$ISOK(sc) { Set count = count + 1 }
52
+ }
53
+ Quit count
54
+ }
55
+
56
+ /// Free-text enqueue (always-new entry; reqId = "txt:<seq>"). texts may be a JSON
57
+ /// array string (Python client) or a %DynamicArray. Returns count enqueued.
58
+ ClassMethod BulkEnqueueText(texts As %String, embeddingConfig As %String = "") As %Integer
59
+ {
60
+ Set arr = texts
61
+ If '$IsObject(arr) { Set arr = ##class(%DynamicArray).%FromJSON(texts) }
62
+ Set count = 0
63
+ Set iter = arr.%GetIterator()
64
+ While iter.%GetNext(.idx, .text) {
65
+ Continue:text=""
66
+ Set seq = $Increment(^EmbedQueue("$seq"))
67
+ Set reqId = "txt:" _ seq
68
+ Set ^EmbedQueue(reqId, "status") = "PENDING"
69
+ Set ^EmbedQueue(reqId, "text") = text
70
+ Set ^EmbedQueue(reqId, "node_id") = ""
71
+ Set ^EmbedQueue(reqId, "result") = ""
72
+ Set ^EmbedQueue(reqId, "error") = ""
73
+ Set ^EmbedQueue(reqId, "config") = embeddingConfig
74
+ Set ^EmbedQueue(reqId, "queued_at") = $ZDateTime($Horolog, 3)
75
+ Set count = count + 1
76
+ }
77
+ Quit count
78
+ }
79
+
80
+ /// Return up to batchSize PENDING entries as JSON [{reqId,text,node_id}, ...].
81
+ /// Plain ordered scan (single-processor; no claim state).
82
+ ClassMethod ClaimPendingBatch(batchSize As %Integer = 100) As %String
83
+ {
84
+ Set arr = []
85
+ Set reqId = ""
86
+ Set n = 0
87
+ For {
88
+ Set reqId = $Order(^EmbedQueue(reqId))
89
+ Quit:reqId=""
90
+ Continue:reqId="$seq"
91
+ Set st = ..NormStatus($Get(^EmbedQueue(reqId, "status")))
92
+ Continue:st'="PENDING"
93
+ Set obj = {}
94
+ Set obj.reqId = reqId
95
+ Set obj.text = $Get(^EmbedQueue(reqId, "text"))
96
+ Set obj."node_id" = $Get(^EmbedQueue(reqId, "node_id"))
97
+ Do arr.%Push(obj)
98
+ Set n = n + 1
99
+ Quit:n>=batchSize
100
+ }
101
+ Quit arr.%ToJSON()
102
+ }
103
+
104
+ /// Set an entry's result. status="DONE" → payload is the result vector string;
105
+ /// status="ERROR" → payload is the error message.
106
+ ClassMethod SetResult(reqId As %String, status As %String, payload As %String = "") As %Status
107
+ {
108
+ If '$Data(^EmbedQueue(reqId, "status")) { Quit $$$ERROR($$$GeneralError, "unknown reqId") }
109
+ Set up = $ZConvert(status, "U")
110
+ Set ^EmbedQueue(reqId, "status") = up
111
+ If up = "DONE" {
112
+ Set ^EmbedQueue(reqId, "result") = payload
113
+ Set ^EmbedQueue(reqId, "error") = ""
114
+ } ElseIf up = "ERROR" {
115
+ Set ^EmbedQueue(reqId, "error") = payload
116
+ }
117
+ Quit $$$OK
118
+ }
119
+
120
+ ClassMethod PendingCount() As %Integer
121
+ {
122
+ Set count = 0
123
+ Set reqId = ""
124
+ For {
125
+ Set reqId = $Order(^EmbedQueue(reqId))
126
+ Quit:reqId=""
127
+ Continue:reqId="$seq"
128
+ If ..NormStatus($Get(^EmbedQueue(reqId, "status"))) = "PENDING" { Set count = count + 1 }
129
+ }
130
+ Quit count
131
+ }
132
+
133
+ /// Remove DONE entries; leave PENDING and ERROR intact. Returns number cleared.
134
+ ClassMethod ClearDone() As %Integer
135
+ {
136
+ Set cleared = 0
137
+ Set reqId = ""
138
+ For {
139
+ Set reqId = $Order(^EmbedQueue(reqId))
140
+ Quit:reqId=""
141
+ Continue:reqId="$seq"
142
+ If ..NormStatus($Get(^EmbedQueue(reqId, "status"))) = "DONE" {
143
+ Kill ^EmbedQueue(reqId)
144
+ Set cleared = cleared + 1
145
+ }
146
+ }
147
+ Quit cleared
148
+ }
149
+
150
+ /// Legacy native-EMBEDDING() per-row processing path, retained for callers that do not
151
+ /// use the Python batched path. Reads the subscripted schema.
152
+ ClassMethod ProcessBatch(batchSize As %Integer = 100, timeout As %Integer = 30) As %String
153
+ {
154
+ Set processed = 0
155
+ Set errors = 0
156
+ Set reqId = ""
157
+ For {
158
+ Set reqId = $Order(^EmbedQueue(reqId))
159
+ Quit:reqId=""
160
+ Continue:reqId="$seq"
161
+ Quit:processed>=batchSize
162
+ Continue:..NormStatus($Get(^EmbedQueue(reqId, "status")))'="PENDING"
163
+
164
+ Set nodeId = $Get(^EmbedQueue(reqId, "node_id"))
165
+ Set embConfig = $Get(^EmbedQueue(reqId, "config"))
166
+ Set text = $Get(^EmbedQueue(reqId, "text"))
167
+ Try {
168
+ Set sql = "SELECT EMBEDDING(?, ?) FROM (SELECT 1)"
169
+ Set stmt = ##class(%SQL.Statement).%New()
170
+ Set sc = stmt.%Prepare(sql)
171
+ If $$$ISOK(sc) {
172
+ Set rs = stmt.%Execute(text, embConfig)
173
+ If rs.%SQLCODE = 0 && rs.%Next() {
174
+ Set embVal = rs.%GetData(1)
175
+ If (embVal '= "") && (nodeId '= "") {
176
+ Set insertSql = "INSERT OR REPLACE INTO Graph_KG.kg_NodeEmbeddings (id, emb) VALUES (?, TO_VECTOR(?, DOUBLE))"
177
+ Set stmt2 = ##class(%SQL.Statement).%New()
178
+ Do stmt2.%Prepare(insertSql)
179
+ Do stmt2.%Execute(nodeId, embVal)
180
+ }
181
+ If embVal '= "" { Set ^EmbedQueue(reqId, "result") = embVal }
182
+ }
183
+ }
184
+ Set ^EmbedQueue(reqId, "status") = "DONE"
185
+ Set processed = processed + 1
186
+ } Catch ex {
187
+ Set ^EmbedQueue(reqId, "status") = "ERROR"
188
+ Set ^EmbedQueue(reqId, "error") = ex.DisplayString()
189
+ Set errors = errors + 1
190
+ }
191
+ }
192
+ Set result = {"processed": (processed), "errors": (errors)}
193
+ Quit result.%ToJSON()
194
+ }
195
+
196
+ /// Start a background IRIS Task to process the queue.
197
+ ClassMethod StartBackgroundTask(batchSize As %Integer = 100) As %String
198
+ {
199
+ Set task = ##class(%SYSTEM.Task).%New()
200
+ Set task.Name = "IVG EmbedQueue Worker"
201
+ Set task.NameSpace = $ZNamespace
202
+ Set task.TaskClass = "Graph.KG.EmbedQueueTask"
203
+ Set sc = task.%Save()
204
+ If $$$ISERR(sc) { Quit "error: "_$System.Status.GetErrorText(sc) }
205
+ Set taskId = task.%Id()
206
+ Do ##class(%SYSTEM.Task).RunNow(taskId)
207
+ Quit taskId
208
+ }
209
+
210
+ }
@@ -62,8 +62,12 @@ ClassMethod InsertIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary
62
62
  {
63
63
  Set weight = ##class(Graph.KG.GraphIndex).ExtractWeight(qualifiers)
64
64
 
65
- Set ^KG("out", s, p, o) = weight
66
- Set ^KG("in", o, p, s) = weight
65
+ // Shard-0 layout MUST match EdgeScan.WriteAdjacency / TraversalBuild.BuildKG.
66
+ // Every live reader (MatchEdges, Algorithms, Centrality, NKG BFS) scans
67
+ // ^KG("out", 0, ...). Writing the legacy no-shard layout here would populate
68
+ // globals nothing reads. See Graph.KG.EdgeScan:WriteAdjacency for the canonical form.
69
+ Set ^KG("out", 0, s, p, o) = weight
70
+ Set ^KG("in", 0, o, p, s) = weight
67
71
  Set tmp = $Increment(^KG("deg", s))
68
72
  Set tmp = $Increment(^KG("degp", s, p))
69
73
 
@@ -147,8 +151,8 @@ ClassMethod UpdateIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary
147
151
 
148
152
  ClassMethod DeleteIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary, qualifiers As %Binary = "") As %Status [ ServerOnly = 1 ]
149
153
  {
150
- Kill ^KG("out", s, p, o)
151
- Kill ^KG("in", o, p, s)
154
+ Kill ^KG("out", 0, s, p, o)
155
+ Kill ^KG("in", 0, o, p, s)
152
156
  Set tmp = $Increment(^KG("deg", s), -1)
153
157
  Set tmp = $Increment(^KG("degp", s, p), -1)
154
158
  If $Get(^KG("deg", s)) <= 0 Kill ^KG("deg", s)
@@ -1,4 +1,11 @@
1
- /// Fast CSV loader for Graph data
1
+ /// Fast CSV loader for Graph data.
2
+ ///
3
+ /// WARNING — LEGACY NO-SHARD LAYOUT. This loader writes ^KG("out", s, p, o)
4
+ /// (no shard prefix), which is NOT the production layout. Live readers scan
5
+ /// ^KG("out", 0, s, p, o) (see Graph.KG.EdgeScan for the layout of record), so
6
+ /// data loaded here is invisible to BFS / centrality / Cypher. It has no callers
7
+ /// in the engine. Prefer engine.bulk_load_session() / bulk_create_edges(). If you
8
+ /// must use this, run engine.sync() afterward to rebuild the shard-0 globals.
2
9
  Class Graph.KG.Loader Extends %RegisteredObject
3
10
  {
4
11
 
@@ -1,3 +1,10 @@
1
+ /// NKG-accelerated adjacency lookups over the interned ^NKG index.
2
+ ///
3
+ /// NOTE: the ^KG fallback branches read the LEGACY no-shard
4
+ /// ^KG("out", node, ...) layout, NOT the production shard-0 layout
5
+ /// (^KG("out", 0, ...) — see Graph.KG.EdgeScan for the layout of record).
6
+ /// They are dead in production (UseNKG() is true after any sync()). Fix them to
7
+ /// the shard-0 layout before relying on them.
1
8
  Class Graph.KG.NKGAccelAdjacency Extends %RegisteredObject
2
9
  {
3
10
 
@@ -1,3 +1,11 @@
1
+ /// NKG-accelerated traversal (K-hop, BFS) over the interned ^NKG index.
2
+ ///
3
+ /// NOTE: the `If useNKG { ^NKG... } Else { ^KG... }` fallback branches read the
4
+ /// LEGACY no-shard ^KG("out", node, pred, dst) layout, NOT the production
5
+ /// shard-0 layout (^KG("out", 0, ...) — see Graph.KG.EdgeScan for the layout of
6
+ /// record). These Else branches are effectively dead in production: UseNKG()
7
+ /// returns true whenever ^NKG("$meta") exists, which is true after any sync().
8
+ /// If you ever make them reachable, fix them to scan the shard-0 layout first.
1
9
  Class Graph.KG.NKGAccelTraversal Extends %RegisteredObject
2
10
  {
3
11
 
@@ -305,6 +305,99 @@ class AdminMixin:
305
305
  "^NKG_populated": adjacency.nkg_populated} if internals else None,
306
306
  )
307
307
 
308
+ def verify_sync(self, heal: bool = False) -> "SyncReport":
309
+ """Check whether the ^KG/^NKG adjacency indexes agree with the SQL tables.
310
+
311
+ The authoritative graph state lives in ``Graph_KG.rdf_edges``. The ^KG/^NKG
312
+ globals are a derived acceleration index, maintained inline by
313
+ ``create_edge`` / ``bulk_*`` / ``WriteAdjacency`` but NOT by every write
314
+ path. BYPASS paths — ``drop_graph``, ``delete_node``, raw SQL inserts, the
315
+ ``map_sql_table`` bridge, or an interrupted bulk load — mutate the table
316
+ without touching the globals, leaving BFS / centrality / var-length Cypher
317
+ silently stale. This compares the SQL edge count against the ^NKG edge
318
+ count and reports the divergence.
319
+
320
+ Args:
321
+ heal: When True, run ``sync()`` to rebuild the globals if drift is found.
322
+
323
+ Returns:
324
+ SyncReport. ``report.in_sync`` is False when counts diverge OR the
325
+ in-process ``_nkg_dirty`` flag is set. ``bool(report)`` mirrors
326
+ ``in_sync`` for ``if not engine.verify_sync(): engine.sync()`` usage.
327
+ """
328
+ from iris_vector_graph.status import SyncReport
329
+
330
+ sql_edges = 0
331
+ global_edges = 0
332
+ global_nodes = 0
333
+ detail = None
334
+ indeterminate = False
335
+
336
+ cursor = self.conn.cursor()
337
+ try:
338
+ cursor.execute(f"SELECT COUNT(*) FROM {_table('rdf_edges')}")
339
+ row = cursor.fetchone()
340
+ sql_edges = int(row[0]) if row else 0
341
+ except Exception as e:
342
+ indeterminate = True
343
+ detail = f"SQL edge count failed: {str(e)[:120]}"
344
+
345
+ try:
346
+ iris_obj = self._iris_obj()
347
+ global_edges = int(iris_obj.classMethodValue("Graph.KG.Traversal", "NKGEdgeCount"))
348
+ global_nodes = int(iris_obj.classMethodValue("Graph.KG.Traversal", "NKGNodeCount"))
349
+ except Exception as e:
350
+ indeterminate = True
351
+ detail = f"NKG count failed (globals likely unbuilt): {str(e)[:120]}"
352
+
353
+ pending = bool(getattr(self, "_nkg_dirty", False))
354
+
355
+ # Drift oracle. ``_nkg_dirty`` is the authoritative in-process signal: a
356
+ # write path that bypassed adjacency maintenance set it. The count
357
+ # comparison is a SECONDARY heuristic and is deliberately one-directional:
358
+ # we only flag drift when SQL edges *exceed* indexed edges (the
359
+ # unambiguous "rows exist in the table but not in the index" case).
360
+ #
361
+ # We do NOT flag the reverse (globals > SQL), because ^NKG's meta
362
+ # edgeCount is known to over-count: InternNode/InternLabel are
363
+ # append-only (never decremented on delete) and NKG interning ignores
364
+ # graph_id while the SQL UNIQUE is on (s,p,o,graph_id). Treating
365
+ # globals>SQL as drift would produce false positives on any DB that has
366
+ # seen deletes. A full rebuild (sync()) is the only way to reconcile
367
+ # the meta counter, and verify_sync(heal=True) does exactly that.
368
+ sql_exceeds = sql_edges > global_edges
369
+ in_sync = (not sql_exceeds) and (not pending) and (not indeterminate)
370
+
371
+ if not in_sync and detail is None:
372
+ if pending and not sql_exceeds:
373
+ detail = "pending_sync flag set — writes occurred without sync()"
374
+ else:
375
+ detail = (
376
+ f"drift: {sql_edges} SQL edges vs {global_edges} indexed edges. "
377
+ "A write path bypassed adjacency maintenance — call engine.sync()."
378
+ )
379
+
380
+ report = SyncReport(
381
+ in_sync=in_sync,
382
+ sql_edges=sql_edges,
383
+ global_edges=global_edges,
384
+ global_nodes=global_nodes,
385
+ pending_sync=pending,
386
+ healed=False,
387
+ detail=detail,
388
+ )
389
+
390
+ if heal and not in_sync:
391
+ try:
392
+ self.sync()
393
+ report.healed = True
394
+ report.in_sync = True
395
+ report.detail = (detail or "") + " | healed via sync()"
396
+ except Exception as e:
397
+ report.detail = (detail or "") + f" | heal failed: {str(e)[:120]}"
398
+
399
+ return report
400
+
308
401
  def list_active_queries(self, limit: int = 50) -> List[Dict[str, Any]]:
309
402
  """Return active IRIS SQL queries.
310
403
 
@@ -52,6 +52,10 @@ class EmbeddingsMixin:
52
52
  _logging.getLogger("safetensors").setLevel(_logging.ERROR)
53
53
  except Exception:
54
54
  pass
55
+ # Local import avoids a circular import (engine.py imports this
56
+ # mixin at module load); function-local matches the pattern used
57
+ # elsewhere in this file (embed_selector, get_schema_prefix).
58
+ from iris_vector_graph.engine import _load_sentence_transformer, _is_sentence_transformer
55
59
  self.embedder = _load_sentence_transformer("all-MiniLM-L6-v2")
56
60
  logger.info("Auto-initialized SentenceTransformer('all-MiniLM-L6-v2')")
57
61
  except ImportError:
@@ -272,6 +276,7 @@ class EmbeddingsMixin:
272
276
  ) -> dict:
273
277
  from iris_vector_graph.embed_selector import EmbedSelector, build_node_where
274
278
  from iris_vector_graph.cypher import get_schema_prefix
279
+ from iris_vector_graph.engine import _load_sentence_transformer, _is_sentence_transformer
275
280
 
276
281
  sel = EmbedSelector(
277
282
  label=label,
@@ -436,6 +441,7 @@ class EmbeddingsMixin:
436
441
  ) -> dict:
437
442
  from iris_vector_graph.embed_selector import EmbedSelector, build_edge_where
438
443
  from iris_vector_graph.cypher import get_schema_prefix
444
+ from iris_vector_graph.engine import _load_sentence_transformer, _is_sentence_transformer
439
445
 
440
446
  sel = EmbedSelector(
441
447
  predicate=predicate,
@@ -655,45 +661,171 @@ class EmbeddingsMixin:
655
661
 
656
662
  def enqueue_for_embedding(
657
663
  self,
658
- node_ids: List[str],
664
+ node_ids: Optional[List[str]] = None,
659
665
  embedding_config: str = "",
666
+ texts: Optional[List[str]] = None,
660
667
  ) -> int:
661
- try:
662
- import json as _json
663
- ids_json = _json.dumps(node_ids)
664
- result = self._call_classmethod(
665
- "Graph.KG.EmbedQueue", "BulkEnqueue",
666
- ids_json, embedding_config,
667
- )
668
- return int(str(result))
669
- except Exception as e:
670
- logger.warning("enqueue_for_embedding failed: %s", e)
671
- return 0
668
+ """Enqueue embedding work onto the async queue. Returns the number enqueued.
669
+
670
+ Two modes (spec 199):
671
+ - ``node_ids``: node-keyed entries (re-enqueue overwrites — one entry per
672
+ node; backward compatible with the prior signature).
673
+ - ``texts``: free-text entries (always-new; never deduplicated).
674
+ Both may be supplied; an empty/None pair returns 0. Degrades gracefully
675
+ (returns 0 + warns) when the queue backend is unavailable.
676
+ """
677
+ from iris_vector_graph.schema import _call_classmethod
678
+ import json as _json
679
+ total = 0
680
+ if node_ids:
681
+ try:
682
+ ids_json = _json.dumps(node_ids)
683
+ result = _call_classmethod(
684
+ self.conn, "Graph.KG.EmbedQueue", "BulkEnqueue",
685
+ ids_json, embedding_config,
686
+ )
687
+ total += int(str(result))
688
+ except Exception as e:
689
+ logger.warning("enqueue_for_embedding (node_ids) failed: %s", e)
690
+ if texts:
691
+ try:
692
+ texts_json = _json.dumps(texts)
693
+ result = _call_classmethod(
694
+ self.conn, "Graph.KG.EmbedQueue", "BulkEnqueueText",
695
+ texts_json, embedding_config,
696
+ )
697
+ total += int(str(result))
698
+ except Exception as e:
699
+ logger.warning("enqueue_for_embedding (texts) failed: %s", e)
700
+ return total
672
701
 
673
702
 
674
703
  def process_embed_queue(self, batch_size: int = 100) -> dict:
704
+ """Process up to ``batch_size`` PENDING queue entries (spec 199).
705
+
706
+ Claims a batch of pending entries, embeds ALL of their texts in a SINGLE
707
+ embedder call (the batched performance win), writes each result back to the
708
+ queue entry, and — for node-keyed entries — upserts the vector into
709
+ ``kg_NodeEmbeddings`` so semantic search finds it. A per-entry embedding
710
+ failure marks only that entry ERROR; the rest of the batch still completes.
711
+ Returns ``{"processed": int, "errors": int}``. Degrades gracefully when the
712
+ backend is unavailable.
713
+ """
714
+ import json as _json
715
+ from iris_vector_graph.schema import _call_classmethod
675
716
  try:
676
- import json as _json
677
- result_json = str(self._call_classmethod(
678
- "Graph.KG.EmbedQueue", "ProcessBatch",
679
- batch_size, 30,
717
+ claim_json = str(_call_classmethod(
718
+ self.conn, "Graph.KG.EmbedQueue", "ClaimPendingBatch", batch_size,
680
719
  ))
681
- return _json.loads(result_json)
720
+ entries = _json.loads(claim_json) if claim_json else []
682
721
  except Exception as e:
683
- logger.warning("process_embed_queue failed: %s", e)
722
+ logger.warning("process_embed_queue claim failed: %s", e)
684
723
  return {"processed": 0, "errors": 0}
685
724
 
725
+ if not entries:
726
+ return {"processed": 0, "errors": 0}
727
+
728
+ texts = [e.get("text", "") for e in entries]
729
+ # Single batched embedder call (SC-002). If the whole call fails, fall back to
730
+ # per-entry so one poison text does not fail the entire batch (FR-007).
731
+ vectors = None
732
+ try:
733
+ vectors = self._encode_batch(texts)
734
+ except Exception as e:
735
+ logger.warning("batch encode failed, falling back per-entry: %s", e)
736
+
737
+ processed = 0
738
+ errors = 0
739
+ for idx, entry in enumerate(entries):
740
+ req_id = entry.get("reqId", "")
741
+ node_id = entry.get("node_id", "") or ""
742
+ try:
743
+ if vectors is not None:
744
+ vec = vectors[idx]
745
+ else:
746
+ vec = self._encode_batch([entry.get("text", "")])[0]
747
+ vec_str = ",".join(str(float(x)) for x in vec)
748
+ _call_classmethod(
749
+ self.conn, "Graph.KG.EmbedQueue", "SetResult",
750
+ req_id, "DONE", vec_str,
751
+ )
752
+ if node_id:
753
+ self._upsert_node_embedding(node_id, vec)
754
+ processed += 1
755
+ except Exception as e:
756
+ errors += 1
757
+ try:
758
+ _call_classmethod(
759
+ self.conn, "Graph.KG.EmbedQueue", "SetResult",
760
+ req_id, "ERROR", str(e)[:500],
761
+ )
762
+ except Exception as se:
763
+ logger.warning("SetResult ERROR failed for %s: %s", req_id, se)
764
+ return {"processed": processed, "errors": errors}
765
+
766
+ def _encode_batch(self, texts: List[str]) -> list:
767
+ """Embed a list of texts in one embedder call, resolving the engine embedder
768
+ (same auto-init path used by embed_text). Returns a list of vectors."""
769
+ if not self.embedder:
770
+ # Reuse embed_text's auto-init by embedding the first item, then encode all.
771
+ # embed_text resolves/sets self.embedder (or raises a clear RuntimeError).
772
+ if texts:
773
+ self.embed_text(texts[0])
774
+ embedder = self.embedder
775
+ if hasattr(embedder, "encode"):
776
+ result = embedder.encode(texts)
777
+ return [r.tolist() if hasattr(r, "tolist") else list(r) for r in result]
778
+ if hasattr(embedder, "embed"):
779
+ return [embedder.embed(t) for t in texts]
780
+ if callable(embedder):
781
+ return [embedder(t) for t in texts]
782
+ raise TypeError(f"Embedder {type(embedder)} has no encode/embed and is not callable")
783
+
784
+ def _upsert_node_embedding(self, node_id: str, vec) -> None:
785
+ """Write a node's embedding into kg_NodeEmbeddings so vector search finds it."""
786
+ emb_str = ",".join(str(float(x)) for x in vec)
787
+ cursor = self.conn.cursor()
788
+ try:
789
+ cursor.execute(
790
+ f"DELETE FROM {_table('kg_NodeEmbeddings')} WHERE id=?", [node_id]
791
+ )
792
+ cursor.execute(
793
+ f"INSERT INTO {_table('kg_NodeEmbeddings')} (id, emb) "
794
+ f"VALUES (?, TO_VECTOR('{emb_str}', {self.vector_dtype}))",
795
+ [node_id],
796
+ )
797
+ self.conn.commit()
798
+ finally:
799
+ try:
800
+ cursor.close()
801
+ except Exception:
802
+ pass
803
+
804
+ def clear_done(self) -> int:
805
+ """Remove completed (DONE) queue entries; leave PENDING/ERROR intact (spec 199,
806
+ FR-009). Returns the number cleared; 0 when the backend is unavailable."""
807
+ from iris_vector_graph.schema import _call_classmethod
808
+ try:
809
+ return int(str(_call_classmethod(
810
+ self.conn, "Graph.KG.EmbedQueue", "ClearDone",
811
+ )))
812
+ except Exception as e:
813
+ logger.warning("clear_done failed: %s", e)
814
+ return 0
815
+
686
816
 
687
817
  def embed_queue_pending(self) -> int:
688
818
  try:
689
- return int(str(self._call_classmethod("Graph.KG.EmbedQueue", "PendingCount")))
819
+ from iris_vector_graph.schema import _call_classmethod
820
+ return int(str(_call_classmethod(self.conn, "Graph.KG.EmbedQueue", "PendingCount")))
690
821
  except Exception:
691
822
  return 0
692
823
 
693
824
 
694
825
  def start_background_embedding(self, batch_size: int = 100) -> str:
695
826
  try:
696
- return str(self._call_classmethod("Graph.KG.EmbedQueue", "StartBackgroundTask", batch_size))
827
+ from iris_vector_graph.schema import _call_classmethod
828
+ return str(_call_classmethod(self.conn, "Graph.KG.EmbedQueue", "StartBackgroundTask", batch_size))
697
829
  except Exception as e:
698
830
  logger.warning("start_background_embedding failed: %s", e)
699
831
  return ""
@@ -74,6 +74,21 @@ class FhirMixin:
74
74
  def map_sql_table(
75
75
  self, table: str, id_column: str, label: str, property_columns=None
76
76
  ) -> dict:
77
+ """Map an existing SQL table to a graph label as a read-only projection.
78
+
79
+ Cypher queries against ``label`` are translated to JOINs on ``table`` at
80
+ query time — rows are never copied into rdf_edges/nodes.
81
+
82
+ ADJACENCY CONTRACT: because the rows are not materialized into
83
+ ``Graph_KG.rdf_edges``, edges reached through this mapping (or via
84
+ ``map_sql_relationship``) are NOT present in the ^KG/^NKG adjacency
85
+ globals. Property/pattern Cypher sees them; the global-backed algorithms
86
+ do NOT — BFS, centrality, var-length paths, and the NKG-accelerated
87
+ traversals will not traverse projected edges. There is no automatic
88
+ propagation and ``verify_sync()`` cannot see this gap (nothing was
89
+ written to rdf_edges). If you need these edges in graph algorithms,
90
+ materialize them (create_edge / bulk_create_edges) rather than mapping.
91
+ """
77
92
  from iris_vector_graph.security import sanitize_identifier
78
93
 
79
94
  sanitize_identifier(table)