iris-vector-graph 1.45.0__tar.gz → 1.45.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/PKG-INFO +11 -1
  2. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/README.md +10 -0
  3. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/embedded.py +46 -0
  4. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/engine.py +5 -2
  5. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/pyproject.toml +1 -1
  6. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_embedded.py +36 -0
  7. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/.gitignore +0 -0
  8. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/LICENSE +0 -0
  9. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/demo_biomedical.py +0 -0
  10. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/demo_fraud_detection.py +0 -0
  11. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/demo_fraud_detection_sql.py +0 -0
  12. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/demo_utils.py +0 -0
  13. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/demo_working_system.py +0 -0
  14. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/__init__.py +0 -0
  15. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical/__init__.py +0 -0
  16. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical/loaders.py +0 -0
  17. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical/resolver.py +0 -0
  18. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical/types.py +0 -0
  19. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical_legacy/__init__.py +0 -0
  20. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  21. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  22. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  23. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/fraud/__init__.py +0 -0
  24. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/fraud/loaders.py +0 -0
  25. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/fraud/resolver.py +0 -0
  26. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/domains/fraud/types.py +0 -0
  27. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/graphQL.http +0 -0
  28. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/hybrid_vector_graph_query.cypher +0 -0
  29. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/examples/rest.http +0 -0
  30. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  31. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  32. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  33. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  34. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  35. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Edge.cls +0 -0
  36. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
  37. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Loader.cls +0 -0
  38. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  39. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  40. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  41. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Meta.cls +0 -0
  42. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  43. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  44. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  45. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Service.cls +0 -0
  46. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  47. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  48. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  49. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/Traversal.cls +0 -0
  50. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  51. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/PageRankEmbedded.cls +0 -0
  52. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/User.Exec.cls +0 -0
  53. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  54. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/__init__.py +0 -0
  55. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/bulk_loader.py +0 -0
  56. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/capabilities.py +0 -0
  57. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/__init__.py +0 -0
  58. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  59. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  60. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/ast.py +0 -0
  61. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/lexer.py +0 -0
  62. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/parser.py +0 -0
  63. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/cypher/translator.py +0 -0
  64. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/fusion.py +0 -0
  65. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/__init__.py +0 -0
  66. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/constants.py +0 -0
  67. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/engine.py +0 -0
  68. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/pooling.py +0 -0
  69. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/resolvers.py +0 -0
  70. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/gql/schema.py +0 -0
  71. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/models.py +0 -0
  72. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/operators.py +0 -0
  73. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/py.typed +0 -0
  74. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/schema.py +0 -0
  75. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/security.py +0 -0
  76. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/text_search.py +0 -0
  77. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/utils.py +0 -0
  78. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/iris_vector_graph/vector_utils.py +0 -0
  79. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/fhir_bridges.sql +0 -0
  80. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/fraud_sample_data.sql +0 -0
  81. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/globals_schema.sql +0 -0
  82. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/graph_path_globals.sql +0 -0
  83. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/graph_walk_tvf.sql +0 -0
  84. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/migrations/000_base_schema_iris.sql +0 -0
  85. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/migrations/001_add_nodepk_table.sql +0 -0
  86. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/migrations/001_rollback_nodepk.sql +0 -0
  87. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/migrations/002_add_fk_constraints.sql +0 -0
  88. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/operators.sql +0 -0
  89. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/operators_fixed.sql +0 -0
  90. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/procedures/kg_PageRank.sql +0 -0
  91. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/rdf_reifications.sql +0 -0
  92. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/sql/schema.sql +0 -0
  93. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/TESTING.md +0 -0
  94. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmark_parser.py +0 -0
  95. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/benchmark_neo4j.py +0 -0
  96. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/bfs_benchmark.py +0 -0
  97. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/establish_baseline.py +0 -0
  98. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/graph_gen.py +0 -0
  99. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/iris_baseline_run.py +0 -0
  100. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/iris_os_run.py +0 -0
  101. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/load_neo4j.py +0 -0
  102. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/benchmarks/synthetic_baseline.csv +0 -0
  103. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/conftest.py +0 -0
  104. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/__init__.py +0 -0
  105. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/test_cypher_api.py +0 -0
  106. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/test_cypher_api_errors.py +0 -0
  107. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/test_graphql_queries.py +0 -0
  108. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/test_graphql_schema.py +0 -0
  109. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/contract/test_ppr_api.py +0 -0
  110. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/__init__.py +0 -0
  111. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/conftest.py +0 -0
  112. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_biomedical_demo.py +0 -0
  113. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_biomedical_ui.py +0 -0
  114. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  115. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  116. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_cypher_vector_search.py +0 -0
  117. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  118. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_fraud_demo.py +0 -0
  119. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_fraud_ui.py +0 -0
  120. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_gql_autogen_startup.py +0 -0
  121. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  122. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_gql_node_queries.py +0 -0
  123. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_gql_semantic_search.py +0 -0
  124. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_gql_traversal.py +0 -0
  125. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  126. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  127. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_named_paths_e2e.py +0 -0
  128. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_nkg_index_e2e.py +0 -0
  129. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  130. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_plaid_search_e2e.py +0 -0
  131. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  132. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  133. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_procedure_installation.py +0 -0
  134. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_reification_e2e.py +0 -0
  135. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  136. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_subgraph_e2e.py +0 -0
  137. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_subquery_call_e2e.py +0 -0
  138. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/e2e/test_vecindex_e2e.py +0 -0
  139. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/__init__.py +0 -0
  140. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/conftest.py +0 -0
  141. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/gql/__init__.py +0 -0
  142. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/gql/test_graphql_mutations.py +0 -0
  143. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  144. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/gql/test_graphql_queries.py +0 -0
  145. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  146. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_bidirectional_ppr.py +0 -0
  147. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cls_layer.py +0 -0
  148. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_advanced.py +0 -0
  149. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_enhancements.py +0 -0
  150. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_multi_type.py +0 -0
  151. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_rd.py +0 -0
  152. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_rel_vars.py +0 -0
  153. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_single_type.py +0 -0
  154. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_untyped.py +0 -0
  155. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_cypher_vector_search.py +0 -0
  156. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_embeddings_api.py +0 -0
  157. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_fastapi_graphql.py +0 -0
  158. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_fhir_bridges_integration.py +0 -0
  159. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_named_paths_integration.py +0 -0
  160. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  161. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_constraints.py +0 -0
  162. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  163. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_migration.py +0 -0
  164. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_performance.py +0 -0
  165. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_nodepk_production_scale.py +0 -0
  166. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_objectscript_classes.py +0 -0
  167. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  168. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_reification_integration.py +0 -0
  169. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_schema_migration.py +0 -0
  170. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_stored_procedure_install.py +0 -0
  171. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/integration/test_subquery_call_integration.py +0 -0
  172. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/performance/conftest.py +0 -0
  173. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/performance/scale_benchmark.py +0 -0
  174. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/performance/test_ppr_stress.py +0 -0
  175. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/performance/test_stress_v1_5.py +0 -0
  176. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/run_all_tests.py +0 -0
  177. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_iris_rest_api.py +0 -0
  178. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_networkx_loader.py +0 -0
  179. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_performance_benchmarks.py +0 -0
  180. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_pyops_vector_conversion.py +0 -0
  181. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_python_operators.py +0 -0
  182. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_python_sdk.py +0 -0
  183. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_schema_validation.py +0 -0
  184. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_sql_queries.py +0 -0
  185. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/python/test_vector_functions.py +0 -0
  186. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/cypher/__init__.py +0 -0
  187. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/cypher/test_lexer.py +0 -0
  188. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  189. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/cypher/test_parser.py +0 -0
  190. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/cypher/test_parser_advanced.py +0 -0
  191. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_batch_mutations.py +0 -0
  192. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cls_deployment.py +0 -0
  193. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_case_when.py +0 -0
  194. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_functions.py +0 -0
  195. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_parser.py +0 -0
  196. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_posos_bugs.py +0 -0
  197. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_procedures.py +0 -0
  198. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_translator.py +0 -0
  199. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_union_exists.py +0 -0
  200. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_var_length.py +0 -0
  201. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_cypher_vector_search.py +0 -0
  202. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_edgeprop_ndjson.py +0 -0
  203. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_engine_dimension_fix.py +0 -0
  204. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_engine_embeddings.py +0 -0
  205. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_fhir_bridges.py +0 -0
  206. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_get_nodes.py +0 -0
  207. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_graph_kernels.py +0 -0
  208. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_graphql_dataloader.py +0 -0
  209. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_ingest_formats.py +0 -0
  210. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_named_paths.py +0 -0
  211. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_operators_wiring.py +0 -0
  212. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_plaid_search.py +0 -0
  213. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  214. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_reification.py +0 -0
  215. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_schema_procedures.py +0 -0
  216. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_sql_splitter.py +0 -0
  217. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_sql_table_bridge.py +0 -0
  218. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_subgraph.py +0 -0
  219. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_subquery_call.py +0 -0
  220. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_temporal_cypher.py +0 -0
  221. {iris_vector_graph-1.45.0 → iris_vector_graph-1.45.2}/tests/unit/test_temporal_edges.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 1.45.0
3
+ Version: 1.45.2
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/isc-tdyar/iris-vector-graph
6
6
  Project-URL: Documentation, https://github.com/isc-tdyar/iris-vector-graph/tree/main/docs
@@ -474,6 +474,16 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
474
474
 
475
475
  ## Changelog
476
476
 
477
+ ### v1.45.2 (2026-04-03)
478
+ - `embedded.py`: auto-fixes `sys.path` shadowing — ensures `/usr/irissys/lib/python` is first so the embedded `iris` module takes priority over pip-installed `intersystems_irispython`
479
+ - `embedded.py`: clear error message when shadowed iris (no `iris.sql`) is detected, naming the root cause
480
+ - Documented the XD timeout constraint and embed_daemon pattern for long-running ML operations in embedded context
481
+ - 3 new tests covering path-fix and shadowing detection
482
+
483
+ ### v1.45.1 (2026-04-03)
484
+ - `embed_nodes`: FK-safe delete — DELETE failure on `kg_NodeEmbeddings` (spurious FK error in embedded Python context) is silently ignored; INSERT proceeds correctly
485
+ - `vector_search`: uses `VECTOR_COSINE(TO_VECTOR(col), ...)` so it works on both native VECTOR columns AND VARCHAR-stored vectors (e.g. DocChunk.VectorChunk from fhir-017)
486
+
477
487
  ### v1.45.0 (2026-04-03)
478
488
  - `embed_nodes(model, where, text_fn, batch_size, force, progress_callback)` — incremental node embedding over `Graph_KG.nodes` with SQL WHERE filter, custom text builder, and per-call model override. Unblocks mixed-ontology graphs (embed only KG8 nodes without re-embedding NCIT's 200K nodes).
479
489
  - `vector_search(table, vector_col, query_embedding, top_k, id_col, return_cols, score_threshold)` — search any IRIS VECTOR column, not just `kg_NodeEmbeddings`. Works on DocChunk tables, RAG corpora, custom HNSW indexes.
@@ -403,6 +403,16 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
403
403
 
404
404
  ## Changelog
405
405
 
406
+ ### v1.45.2 (2026-04-03)
407
+ - `embedded.py`: auto-fixes `sys.path` shadowing — ensures `/usr/irissys/lib/python` is first so the embedded `iris` module takes priority over pip-installed `intersystems_irispython`
408
+ - `embedded.py`: clear error message when shadowed iris (no `iris.sql`) is detected, naming the root cause
409
+ - Documented the XD timeout constraint and embed_daemon pattern for long-running ML operations in embedded context
410
+ - 3 new tests covering path-fix and shadowing detection
411
+
412
+ ### v1.45.1 (2026-04-03)
413
+ - `embed_nodes`: FK-safe delete — DELETE failure on `kg_NodeEmbeddings` (spurious FK error in embedded Python context) is silently ignored; INSERT proceeds correctly
414
+ - `vector_search`: uses `VECTOR_COSINE(TO_VECTOR(col), ...)` so it works on both native VECTOR columns AND VARCHAR-stored vectors (e.g. DocChunk.VectorChunk from fhir-017)
415
+
406
416
  ### v1.45.0 (2026-04-03)
407
417
  - `embed_nodes(model, where, text_fn, batch_size, force, progress_callback)` — incremental node embedding over `Graph_KG.nodes` with SQL WHERE filter, custom text builder, and per-call model override. Unblocks mixed-ontology graphs (embed only KG8 nodes without re-embedding NCIT's 200K nodes).
408
418
  - `vector_search(table, vector_col, query_embedding, top_k, id_col, return_cols, score_threshold)` — search any IRIS VECTOR column, not just `kg_NodeEmbeddings`. Works on DocChunk tables, RAG corpora, custom HNSW indexes.
@@ -11,14 +11,60 @@ Language=python method with zero boilerplate:
11
11
 
12
12
  Only available when running inside IRIS (the embedded iris module must be
13
13
  importable). Raises ImportError with a clear message otherwise.
14
+
15
+ ## Known constraints for Language=python (wgproto) context
16
+
17
+ ### sys.path shadowing after pip install
18
+ When iris-vector-graph is pip-installed inside an IRIS container, the pip
19
+ package puts an external `iris` (intersystems_irispython) on sys.path. This
20
+ external `iris` lacks `iris.execute`, `iris.gref`, `iris.cls`, and
21
+ `iris.sql` — so Language=python methods that call EmbeddedConnection break.
22
+
23
+ Fix: ensure `/usr/irissys/lib/python` is first in sys.path so the embedded
24
+ `iris` module takes priority. This module does that automatically in
25
+ `_require_iris_sql()`.
26
+
27
+ ### Long-running operations (model loading, bulk embed) and XD timeout
28
+ Language=python methods run inside a wgproto job with a configurable XD
29
+ timeout (default ~30s). Loading a SentenceTransformer model takes ~8-10s,
30
+ which may exceed the timeout.
31
+
32
+ Pattern for long-running ML operations:
33
+ 1. Run as a persistent `irispython` process outside the wgproto lifecycle
34
+ 2. Communicate via IRIS globals (e.g. `^EmbedQueue(reqId, "text") = text`)
35
+ 3. Language=python method submits to queue and polls for result
36
+
37
+ See iris_vector_graph/docs/embedded-ml-pattern.md for a reference
38
+ implementation (the "embed_daemon" pattern).
14
39
  """
15
40
 
16
41
  __all__ = ["EmbeddedConnection", "EmbeddedCursor"]
17
42
 
43
+ import sys as _sys
44
+
45
+
46
+ def _ensure_embedded_iris_first():
47
+ embedded_path = '/usr/irissys/lib/python'
48
+ mgr_path = '/usr/irissys/mgr/python'
49
+ if embedded_path not in _sys.path:
50
+ _sys.path.insert(0, embedded_path)
51
+ elif _sys.path[0] != embedded_path:
52
+ _sys.path.remove(embedded_path)
53
+ _sys.path.insert(0, embedded_path)
54
+ if mgr_path not in _sys.path:
55
+ _sys.path.insert(1, mgr_path)
56
+
18
57
 
19
58
  def _require_iris_sql():
59
+ _ensure_embedded_iris_first()
20
60
  try:
21
61
  import iris # noqa: F401
62
+ if not hasattr(iris, 'sql'):
63
+ raise ImportError(
64
+ "iris module found but has no iris.sql attribute — "
65
+ "the pip intersystems_irispython package is shadowing the embedded iris module. "
66
+ "Ensure /usr/irissys/lib/python is first in sys.path."
67
+ )
22
68
  return iris.sql
23
69
  except ImportError as exc:
24
70
  raise ImportError(
@@ -1209,7 +1209,10 @@ class IRISGraphEngine:
1209
1209
  try:
1210
1210
  emb = self.embed_text(text)
1211
1211
  emb_str = ",".join(str(x) for x in emb)
1212
- cursor.execute(f"DELETE FROM {_table('kg_NodeEmbeddings')} WHERE id = ?", [node_id])
1212
+ try:
1213
+ cursor.execute(f"DELETE FROM {_table('kg_NodeEmbeddings')} WHERE id = ?", [node_id])
1214
+ except Exception:
1215
+ pass
1213
1216
  cursor.execute(
1214
1217
  f"INSERT INTO {_table('kg_NodeEmbeddings')} (id, emb) VALUES (?, TO_VECTOR(?))",
1215
1218
  [node_id, emb_str],
@@ -1688,7 +1691,7 @@ class IRISGraphEngine:
1688
1691
  query_vec_str = query_embedding
1689
1692
 
1690
1693
  extra = ", ".join(sanitize_identifier(c) for c in (return_cols or []) if c != id_col)
1691
- select_cols = f"t.{id_col}, VECTOR_COSINE(t.{vector_col}, TO_VECTOR(?, DOUBLE)) AS score"
1694
+ select_cols = f"t.{id_col}, VECTOR_COSINE(TO_VECTOR(t.{vector_col}), TO_VECTOR(?, DOUBLE)) AS score"
1692
1695
  if extra:
1693
1696
  select_cols += f", {extra}"
1694
1697
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "iris-vector-graph"
7
- version = "1.45.0"
7
+ version = "1.45.2"
8
8
  description = "Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -168,6 +168,42 @@ class TestEmbeddedConnectionUnit:
168
168
  with pytest.raises(ImportError, match="embedded iris module"):
169
169
  _require_iris_sql()
170
170
 
171
+ def test_shadowed_iris_error_message_contains_guidance(self):
172
+ from iris_vector_graph import embedded
173
+ import importlib, inspect
174
+ src = inspect.getsource(embedded._require_iris_sql)
175
+ assert "iris.sql attribute" in src
176
+ assert "intersystems_irispython" in src
177
+ assert "lib/python" in src or "/usr/irissys" in src
178
+
179
+ def test_ensure_embedded_iris_first_inserts_path(self):
180
+ from iris_vector_graph.embedded import _ensure_embedded_iris_first
181
+ import sys
182
+ embedded_path = '/usr/irissys/lib/python'
183
+ original = sys.path.copy()
184
+ try:
185
+ if embedded_path in sys.path:
186
+ sys.path.remove(embedded_path)
187
+ _ensure_embedded_iris_first()
188
+ assert sys.path[0] == embedded_path
189
+ finally:
190
+ sys.path[:] = original
191
+
192
+ def test_ensure_embedded_iris_first_moves_to_front_if_not_first(self):
193
+ from iris_vector_graph.embedded import _ensure_embedded_iris_first
194
+ import sys
195
+ embedded_path = '/usr/irissys/lib/python'
196
+ original = sys.path.copy()
197
+ try:
198
+ if embedded_path in sys.path:
199
+ sys.path.remove(embedded_path)
200
+ sys.path.append(embedded_path)
201
+ assert sys.path[0] != embedded_path
202
+ _ensure_embedded_iris_first()
203
+ assert sys.path[0] == embedded_path
204
+ finally:
205
+ sys.path[:] = original
206
+
171
207
 
172
208
  class TestTopLevelImports:
173
209