iris-vector-graph 2.18.7__tar.gz → 2.18.8__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.
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/PKG-INFO +1 -1
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/__init__.py +2 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/changeset.py +39 -1
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/client.py +90 -1
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/errors.py +19 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/replay.py +31 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/schema.py +5 -1
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/pyproject.toml +1 -1
- iris_vector_graph-2.18.8/tests/integration/test_216_ledger_history_filter_e2e.py +102 -0
- iris_vector_graph-2.18.8/tests/integration/test_217_ledger_missing_node_e2e.py +85 -0
- iris_vector_graph-2.18.8/tests/integration/test_218_post_commit_properties_e2e.py +109 -0
- iris_vector_graph-2.18.8/tests/integration/test_namespace_isolation.py +495 -0
- iris_vector_graph-2.18.8/tests/unit/test_215_ledger_doc_gaps.py +117 -0
- iris_vector_graph-2.18.8/tests/unit/test_216_ledger_history_filter.py +65 -0
- iris_vector_graph-2.18.8/tests/unit/test_217_ledger_missing_node.py +92 -0
- iris_vector_graph-2.18.8/tests/unit/test_218_post_commit_properties.py +55 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/.gitignore +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/LICENSE +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/README.md +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_rdf_semantic_layer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/graphQL.http +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/examples/rest.http +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Centrality.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Communities.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Edge.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/EmbedQueue.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Ledger.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/LedgerApply.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/LedgerGenesis.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/LedgerRevision.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/LedgerStats.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Loader.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Meta.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/NKGAccelAdjacency.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/NKGAccelCentrality.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/NKGAccelLoader.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/NKGAccelTraversal.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/PageRank.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TemporalIndexMS.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/Traversal.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TraversalBFS.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TraversalBuild.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TraversalKHop.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/TraversalPaths.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/kgNodeEmbeddings.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/Graph/KG/kgNodeEmbeddingsoptimized.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/User.CypherFn.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/User.SQL.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/User.funcJSONKEYS.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/User.funcSTRSPLIT.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/_rdf_utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/admin.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/algorithms.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/embeddings.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/fhir.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/ledger.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/nodes_edges.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/prov.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/query.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/query.py,cover +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/rdf_export.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/schema.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/shacl.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/snapshot.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/snapshot.py,cover +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/temporal.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_engine/vector.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/api_auth.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/manifest.json +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/bulk_loader.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cli.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/aql/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/aql/ast.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/aql/lexer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/aql/parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/aql/translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher/translator.py,cover +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/cypher_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/embed_selector.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/embedded.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/engine.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/errors.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/exceptions.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/fhir_bridge.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/index_config.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/index_protocol.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/export.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/ledger/guard.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/sdk.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/status.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/store_protocol.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/stores/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/stores/arno_bridge.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/stores/iris_sql_store.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/stores/lazy_kg.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/operators.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/sql/schema.sql +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/TESTING.md +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/README.md +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/bench_193_full.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/fixtures/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/fixtures/centrality_graphs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/fixtures/community_graphs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_analytics_dispatch.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_aql_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_arno_bfs_global.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_arno_bfs_unified.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_betweenness_neighborhood_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_betweenness_os_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_biomedical_demo.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_centrality_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_closeness_os_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_communities_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_communities_perf.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_edge_weights.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_eigenvector_os_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_embed_queue_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_fraud_demo.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_igraph_fastpath_parity.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_lazy_kg_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_msbfs_closeness.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_objectscript_split_resolution.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_sdk_ergonomics_178_180_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_store_injection_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_temporal_store_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_unified_index_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/_ledger_helpers.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/gql/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_196_bug_fixes.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_adjacency_graph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_cypher_create_graph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_delete_edge_scoped.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_drop_graph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_import_ndjson_graph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_node_graph_dim.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_214_schema_migration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_admin_introspection.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_algorithm_branches.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_algorithms_deep_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_algorithms_error_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_algorithms_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_algorithms_new_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_api_completeness.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_adjacency_helpers.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_bridge_mock_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_bridge_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_deploy.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_deploy_flow.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_dispatch_bugs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_rust_always_on.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_arno_store_layer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_bidirectional_ppr.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_bulk_load_session.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_bulk_loader_live.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_coverage_final_push.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_coverage_push_final.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_api_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_api_exception_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_diabolical_qa.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_doc_claims.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_driver_segfault_guard.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_embed_queue_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_embeddings_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_embeddings_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_engine_critical_fixes_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_engine_misc_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_engine_utils_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_fhir_event_sidecar.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_fusion_dbapi_bulk.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_gql_resolvers_live.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_index_consistency_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_kg_txt_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_lazykg_algorithms.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_lazykg_fallback_forced.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_embedded.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_observability.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_perf.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_snapshot.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us01_commit_head.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us02_rollback.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us03_concurrency.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us04_idempotency.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us05_compat.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us06_history.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us07_diff.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us08_reconstruct.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us09_verify.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us10_lifecycle.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_ledger_us11_temporal_coexist.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_namespace_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodes_edges_and_algo_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_nodes_edges_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_engine_branches.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_engine_special.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_fastpaths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_paths_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_query_special_patterns.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_rdf_semantic_layer_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_remaining_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_schema_and_engine_procs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_schema_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_snapshot_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_snapshot_import_export.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_snapshot_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_sql_parameterization.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_sql_store_direct.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_sql_store_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_store_algorithms.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_store_bfs_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_store_exception_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_store_write_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_temporal_engine_gaps_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_temporal_engine_polish_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_temporal_index_gaps_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_temporal_json_safety.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_advanced_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_engine_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_index_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_index_paths2.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_optimizer_live.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/integration/test_vector_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/perf/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/perf/test_betweenness_vs_gds.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/perf/test_head_to_head.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/perf/test_leiden_four_way.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/engine_api_baseline.json +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/test_complexity.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/test_engine_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/test_module_size.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/regression/test_no_silent_swallow.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/conftest.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/environment.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/steps/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/steps/comparison.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/steps/graph_setup.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/steps/query.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/steps/results.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/wip.txt +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/tck/wip_generate.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/test_schema_contract.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/cypher/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/__init__.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_comparison_node_columns.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_comparison_normalise.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_result_comparison.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_steps_graph_setup.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_steps_query.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_steps_results.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_tck_collector.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_tck_value_parse.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_wip_enforcement.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/tck/test_wip_generate.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_193_bfs_nkg_fast_path.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_194_readme.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_214_named_graphs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_admin_rdf_prov_shacl_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_admin_remaining.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_admin_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_algorithm_warning_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_algorithms_extended_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_algorithms_large_graph_warn.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_algorithms_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_api_security.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_aql_lexer.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_aql_parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_aql_translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_aql_translator_extra.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_arno_bridge.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_arno_reload_guard.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_betweenness_os_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bfs_arno.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bolt_relationship_encoding.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bulk_load_session.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bulk_loader_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_bulk_loader_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_centrality_translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_centrality_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cli.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_closeness_os_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_communities_translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_communities_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_concept_first_status.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_coverage_boost.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_create_validation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_api_admin.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_api_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_api_extra.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_var_length.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_dbapi_utils_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_dispatch_routing.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_drift_detector.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_edge_embeddings.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_edgeprop_ndjson.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embed_nodes_params.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embed_queue_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embed_selector.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embed_selector_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embedded.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embedded_wgproto.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embeddings_remaining.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_embeddings_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_coverage_v8.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_critical_fixes.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_deep.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_final_v9.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_mocked.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_status.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_engine_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_error_model.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_exceptions.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_fetch_first_join_bug.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_fhir_bridge.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_fhir_event_sidecar.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_gds_shims.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_gql_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_gql_edge_cases.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_gql_resolver_bodies.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_index_config.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_index_handle.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_is_null_expression.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ivf_index.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_keyword_as_label.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_khop_dispatch.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_lazy_kg.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_lazy_kg_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ledger_changeset.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ledger_client.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ledger_errors.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ledger_guard.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ledger_replay.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_lexer_parser_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_match_far_node_labels.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_misc_coverage_v8.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_misc_final_v9.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_module_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_namespace_aware.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_nodes_edges_property_primitives.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_nodes_edges_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_operators_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_parse_cache.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_parser_extended_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_predicate_order.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_property_primitives.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_prov_export.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_extended_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_extra_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_fastpath_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_final_v10.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_query_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_rdf_coverage_boost.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_rdf_export.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_rrf_fuse_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_engine_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_final_v10.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_init.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_prefix_isolation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_remaining.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_snapshot_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_schema_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sdk.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sdk_async.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sdk_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_shacl_validation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_snapshot_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_snapshot_restore_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_snapshot_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_spec_hygiene_gates.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sql_store_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_store_protocol.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_structural_guard.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_structural_guard_e2e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_supporting_modules.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_sync_model.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_edges.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_engine_gaps.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_engine_polish.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_index_gaps.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_temporal_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_complex_v6c.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_deep_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_early_v6d.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v2.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v3.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v4.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v5a.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v5b.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v5c.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_extended_v5d.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_final_v10.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_final_v9a.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_gaps.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_late_v8b.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_merge_v6b.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7b.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7c.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7d.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7e.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7f.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v7g.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_mid_v8c.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_proc_stage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_temporal.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_temporal_v6a.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_temporal_v7a.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_temporal_v7h.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_translator_temporal_v8a.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_utilities_final.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_utils_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_vector_schema_extended_coverage.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_vector_unit.py +0 -0
- {iris_vector_graph-2.18.7 → iris_vector_graph-2.18.8}/tests/unit/test_weighted_shortest_path.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: iris-vector-graph
|
|
3
|
-
Version: 2.18.
|
|
3
|
+
Version: 2.18.8
|
|
4
4
|
Summary: Native graph database layer for InterSystems IRIS — openCypher, hybrid vector search, temporal property graph, RDF export, SHACL validation
|
|
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
|
|
@@ -23,6 +23,7 @@ from .errors import (
|
|
|
23
23
|
LedgerNotEnabledError,
|
|
24
24
|
LedgerStrictModeError,
|
|
25
25
|
LedgerTransactionOpenError,
|
|
26
|
+
NodeNotFoundError,
|
|
26
27
|
ReconstructionTooLargeError,
|
|
27
28
|
StaleHeadError,
|
|
28
29
|
UnknownRevisionError,
|
|
@@ -41,6 +42,7 @@ __all__ = [
|
|
|
41
42
|
"Revision",
|
|
42
43
|
"LedgerCounters",
|
|
43
44
|
"LedgerError",
|
|
45
|
+
"NodeNotFoundError",
|
|
44
46
|
"LedgerNotEnabledError",
|
|
45
47
|
"LedgerDisabledError",
|
|
46
48
|
"LedgerStrictModeError",
|
|
@@ -14,6 +14,20 @@ from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
|
|
|
14
14
|
|
|
15
15
|
from .errors import ChangesetOperationError, EmptyChangesetError
|
|
16
16
|
|
|
17
|
+
REVISION_ID_SENTINEL = "$REVISION_ID"
|
|
18
|
+
"""Placeholder value for post_commit_properties that is substituted with the
|
|
19
|
+
actual revision_id assigned by the server after a successful commit.
|
|
20
|
+
|
|
21
|
+
Usage::
|
|
22
|
+
|
|
23
|
+
cs = Changeset(
|
|
24
|
+
actor="ingest", actor_type="ingest",
|
|
25
|
+
post_commit_properties={"audit-node": {"committed_rev": REVISION_ID_SENTINEL}},
|
|
26
|
+
)
|
|
27
|
+
result = engine.ledger.commit(cs)
|
|
28
|
+
# audit-node.committed_rev == result.revision.revision_id
|
|
29
|
+
"""
|
|
30
|
+
|
|
17
31
|
RESERVED_PROPERTIES = frozenset({"id", "__graph"})
|
|
18
32
|
|
|
19
33
|
ACTOR_TYPES = ("human", "agent", "system", "ingest")
|
|
@@ -90,6 +104,8 @@ class Changeset:
|
|
|
90
104
|
expected_head: Optional[str] = None
|
|
91
105
|
idempotency_key: Optional[str] = None
|
|
92
106
|
ops: List[Dict[str, Any]] = field(default_factory=list)
|
|
107
|
+
auto_stub_missing_nodes: bool = False
|
|
108
|
+
post_commit_properties: Dict[str, Dict[str, str]] = field(default_factory=dict)
|
|
93
109
|
|
|
94
110
|
# -- internal -----------------------------------------------------------
|
|
95
111
|
|
|
@@ -186,6 +202,11 @@ class Changeset:
|
|
|
186
202
|
qualifiers: Optional[Dict[str, Any]] = None,
|
|
187
203
|
graph: Optional[str] = None,
|
|
188
204
|
) -> OpRef:
|
|
205
|
+
if self.auto_stub_missing_nodes:
|
|
206
|
+
_existing = {op.get("id") for op in self.ops if "id" in op}
|
|
207
|
+
for nid in (source, target):
|
|
208
|
+
if nid not in _existing:
|
|
209
|
+
self.upsert_node(nid)
|
|
189
210
|
idx = self._next_index
|
|
190
211
|
op: Dict[str, Any] = {
|
|
191
212
|
"op": "create_rel",
|
|
@@ -284,7 +305,7 @@ class Changeset:
|
|
|
284
305
|
)
|
|
285
306
|
|
|
286
307
|
def to_wire(self) -> Dict[str, Any]:
|
|
287
|
-
|
|
308
|
+
d: Dict[str, Any] = {
|
|
288
309
|
"actor": self.actor,
|
|
289
310
|
"actor_type": self.actor_type,
|
|
290
311
|
"message": self.message,
|
|
@@ -294,11 +315,28 @@ class Changeset:
|
|
|
294
315
|
"idempotency_key": self.idempotency_key,
|
|
295
316
|
"ops": [dict(op) for op in self.ops],
|
|
296
317
|
}
|
|
318
|
+
if self.post_commit_properties:
|
|
319
|
+
d["post_commit_properties"] = self.post_commit_properties
|
|
320
|
+
return d
|
|
297
321
|
|
|
298
322
|
def canonical_json(self) -> str:
|
|
299
323
|
return canonical_dumps(self.to_wire())
|
|
300
324
|
|
|
301
325
|
def fingerprint(self) -> str:
|
|
326
|
+
"""SHA-256 hex digest used for idempotency matching.
|
|
327
|
+
|
|
328
|
+
**Included fields**: ``actor``, ``actor_type``, ``ops``.
|
|
329
|
+
|
|
330
|
+
**Excluded fields**: ``expected_head``, ``idempotency_key``, ``message``,
|
|
331
|
+
``correlation_id``, ``committed_at``, and all other session-operational fields.
|
|
332
|
+
|
|
333
|
+
Consequence: two ``Changeset`` objects with the same ``actor``, ``actor_type``,
|
|
334
|
+
and ``ops`` but different ``expected_head`` values produce **the same
|
|
335
|
+
fingerprint**. If the first commit is replayed with a different
|
|
336
|
+
``expected_head``, the server returns ``replayed=True`` rather than
|
|
337
|
+
``StaleHeadError`` — ``expected_head`` is checked separately, after the
|
|
338
|
+
idempotency check.
|
|
339
|
+
"""
|
|
302
340
|
scope = {
|
|
303
341
|
"actor": self.actor,
|
|
304
342
|
"actor_type": self.actor_type,
|
|
@@ -76,9 +76,29 @@ class RevisionInfo:
|
|
|
76
76
|
|
|
77
77
|
@dataclass
|
|
78
78
|
class CommitResult:
|
|
79
|
+
"""Result of a successful :meth:`GraphLedger.commit` call.
|
|
80
|
+
|
|
81
|
+
Attributes:
|
|
82
|
+
revision: The assigned or replayed :class:`RevisionInfo`.
|
|
83
|
+
replayed: ``True`` when this commit was a replay of an earlier identical
|
|
84
|
+
changeset (same ``actor``, ``actor_type``, and ``ops`` fingerprint).
|
|
85
|
+
**Note**: ``replayed=True`` can occur even when ``expected_head`` differs
|
|
86
|
+
from the original commit — the fingerprint does *not* include
|
|
87
|
+
``expected_head``. See :meth:`Changeset.fingerprint` for the exact
|
|
88
|
+
scope of the idempotency hash.
|
|
89
|
+
stmt_ids: Mapping of op index → assigned statement identity for new
|
|
90
|
+
relationship operations.
|
|
91
|
+
post_commit_applied: ``True`` when post_commit_properties were applied
|
|
92
|
+
successfully after the main commit.
|
|
93
|
+
post_commit_error: Set to an error string if post_commit_properties
|
|
94
|
+
writes failed; the main commit is unaffected.
|
|
95
|
+
"""
|
|
96
|
+
|
|
79
97
|
revision: RevisionInfo
|
|
80
98
|
replayed: bool = False
|
|
81
99
|
stmt_ids: Dict[int, str] = field(default_factory=dict)
|
|
100
|
+
post_commit_applied: bool = False
|
|
101
|
+
post_commit_error: Optional[str] = None
|
|
82
102
|
|
|
83
103
|
|
|
84
104
|
@dataclass
|
|
@@ -246,6 +266,12 @@ class GraphLedger:
|
|
|
246
266
|
self._emit(
|
|
247
267
|
resp.get("error", "error"), None, changeset, duration_ms, reason=resp.get("reason")
|
|
248
268
|
)
|
|
269
|
+
# Check for node_not_found before generic error mapping
|
|
270
|
+
reason = resp.get("reason") or ""
|
|
271
|
+
if resp.get("error") == "failed_op" and reason.startswith("node_not_found: '"):
|
|
272
|
+
missing = reason[len("node_not_found: '"):-1]
|
|
273
|
+
from .errors import NodeNotFoundError
|
|
274
|
+
raise NodeNotFoundError(missing_node=missing)
|
|
249
275
|
raise from_commit_error(resp)
|
|
250
276
|
|
|
251
277
|
info = RevisionInfo.from_wire(resp["revision"])
|
|
@@ -258,7 +284,49 @@ class GraphLedger:
|
|
|
258
284
|
for op in changeset.ops
|
|
259
285
|
):
|
|
260
286
|
self._mark_nkg_dirty_if_needed()
|
|
261
|
-
|
|
287
|
+
|
|
288
|
+
# Apply post_commit_properties (Approach A — direct SQL, no new revision)
|
|
289
|
+
pcp = getattr(changeset, "post_commit_properties", {})
|
|
290
|
+
post_applied = False
|
|
291
|
+
post_error: Optional[str] = None
|
|
292
|
+
if pcp:
|
|
293
|
+
revision_id = info.revision_id
|
|
294
|
+
schema = self._schema()
|
|
295
|
+
cur = self._engine.conn.cursor()
|
|
296
|
+
from .changeset import REVISION_ID_SENTINEL
|
|
297
|
+
try:
|
|
298
|
+
for nid, props in pcp.items():
|
|
299
|
+
for k, v in props.items():
|
|
300
|
+
actual_v = revision_id if v == REVISION_ID_SENTINEL else v
|
|
301
|
+
# Upsert into rdf_props: DELETE + INSERT
|
|
302
|
+
try:
|
|
303
|
+
cur.execute(
|
|
304
|
+
f'DELETE FROM {schema}.rdf_props WHERE s = ? AND "key" = ?',
|
|
305
|
+
[nid, k],
|
|
306
|
+
)
|
|
307
|
+
except Exception:
|
|
308
|
+
pass
|
|
309
|
+
cur.execute(
|
|
310
|
+
f'INSERT INTO {schema}.rdf_props (s, "key", val) VALUES (?, ?, ?)',
|
|
311
|
+
[nid, k, actual_v],
|
|
312
|
+
)
|
|
313
|
+
self._engine.conn.commit()
|
|
314
|
+
post_applied = True
|
|
315
|
+
except Exception as pcp_err:
|
|
316
|
+
post_error = str(pcp_err)[:500]
|
|
317
|
+
logger.error("post_commit_properties write failed: %s", post_error)
|
|
318
|
+
try:
|
|
319
|
+
self._engine.conn.rollback()
|
|
320
|
+
except Exception:
|
|
321
|
+
pass
|
|
322
|
+
|
|
323
|
+
return CommitResult(
|
|
324
|
+
revision=info,
|
|
325
|
+
replayed=replayed,
|
|
326
|
+
stmt_ids=stmt_ids,
|
|
327
|
+
post_commit_applied=post_applied,
|
|
328
|
+
post_commit_error=post_error,
|
|
329
|
+
)
|
|
262
330
|
|
|
263
331
|
def _mark_nkg_dirty_if_needed(self) -> None:
|
|
264
332
|
"""R15: when the incremental ^NKG skeleton is absent, flag staleness."""
|
|
@@ -366,7 +434,26 @@ class GraphLedger:
|
|
|
366
434
|
since_ms: Optional[int] = None,
|
|
367
435
|
until_ms: Optional[int] = None,
|
|
368
436
|
descending: bool = False,
|
|
437
|
+
correlation_id: Optional[str] = None,
|
|
438
|
+
source: Optional[str] = None,
|
|
369
439
|
) -> HistoryPage:
|
|
440
|
+
"""Return a page of ledger revisions, newest or oldest first.
|
|
441
|
+
|
|
442
|
+
All filter parameters are pushed to SQL (not applied in Python).
|
|
443
|
+
|
|
444
|
+
Args:
|
|
445
|
+
after_seq: Pagination cursor — return revisions after this seq.
|
|
446
|
+
limit: Maximum revisions to return.
|
|
447
|
+
actor: Filter to revisions by a specific actor string.
|
|
448
|
+
actor_type: Filter to revisions by actor type (e.g. "ingest").
|
|
449
|
+
since_ms: Only revisions committed at or after this epoch-ms.
|
|
450
|
+
until_ms: Only revisions committed at or before this epoch-ms.
|
|
451
|
+
descending: Return newest-first when True.
|
|
452
|
+
correlation_id: Filter to revisions with this exact correlation_id.
|
|
453
|
+
Useful for per-tenant history in multi-tenant graphs where
|
|
454
|
+
correlation_id is set to e.g. "acme-health|iris-acme-health".
|
|
455
|
+
source: Filter to revisions tagged with this source string.
|
|
456
|
+
"""
|
|
370
457
|
from .replay import fetch_history
|
|
371
458
|
|
|
372
459
|
return fetch_history(
|
|
@@ -379,6 +466,8 @@ class GraphLedger:
|
|
|
379
466
|
since_ms=since_ms,
|
|
380
467
|
until_ms=until_ms,
|
|
381
468
|
descending=descending,
|
|
469
|
+
correlation_id=correlation_id,
|
|
470
|
+
source=source,
|
|
382
471
|
)
|
|
383
472
|
|
|
384
473
|
def get_revision(self, revision_id: str) -> Revision:
|
|
@@ -87,6 +87,24 @@ class LedgerInconsistencyError(LedgerError):
|
|
|
87
87
|
"""The ledger's own structures disagree with each other."""
|
|
88
88
|
|
|
89
89
|
|
|
90
|
+
class NodeNotFoundError(LedgerError):
|
|
91
|
+
"""A relationship operation references a node that does not exist in the graph.
|
|
92
|
+
|
|
93
|
+
Attributes:
|
|
94
|
+
missing_node: The node ID that was not found.
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
def __init__(self, message: str = "", *, missing_node: str = ""):
|
|
98
|
+
self.missing_node = missing_node
|
|
99
|
+
if not message:
|
|
100
|
+
message = (
|
|
101
|
+
f"create_relationship failed: node '{missing_node}' does not exist. "
|
|
102
|
+
f"Add upsert_node('{missing_node}') to the changeset, or set "
|
|
103
|
+
f"auto_stub_missing_nodes=True on the Changeset."
|
|
104
|
+
)
|
|
105
|
+
super().__init__(message)
|
|
106
|
+
|
|
107
|
+
|
|
90
108
|
_WIRE_MAP = {
|
|
91
109
|
"not_enabled": LedgerNotEnabledError,
|
|
92
110
|
"disabled": LedgerDisabledError,
|
|
@@ -135,5 +153,6 @@ __all__ = [
|
|
|
135
153
|
"LedgerLockTimeoutError",
|
|
136
154
|
"LedgerTransactionOpenError",
|
|
137
155
|
"LedgerInconsistencyError",
|
|
156
|
+
"NodeNotFoundError",
|
|
138
157
|
"from_commit_error",
|
|
139
158
|
]
|
|
@@ -269,6 +269,8 @@ def fetch_history(
|
|
|
269
269
|
since_ms: Optional[int] = None,
|
|
270
270
|
until_ms: Optional[int] = None,
|
|
271
271
|
descending: bool = False,
|
|
272
|
+
correlation_id: Optional[str] = None,
|
|
273
|
+
source: Optional[str] = None,
|
|
272
274
|
):
|
|
273
275
|
from .client import HistoryPage
|
|
274
276
|
|
|
@@ -293,6 +295,12 @@ def fetch_history(
|
|
|
293
295
|
if until_ms is not None:
|
|
294
296
|
where.append("committed_ms <= ?")
|
|
295
297
|
params.append(int(until_ms))
|
|
298
|
+
if correlation_id is not None:
|
|
299
|
+
where.append("correlation_id = ?")
|
|
300
|
+
params.append(correlation_id)
|
|
301
|
+
if source is not None:
|
|
302
|
+
where.append("source = ?")
|
|
303
|
+
params.append(source)
|
|
296
304
|
sql = f"SELECT TOP {int(limit)} {_REV_COLS} FROM {schema}.ledger_revisions"
|
|
297
305
|
if where:
|
|
298
306
|
sql += " WHERE " + " AND ".join(where)
|
|
@@ -324,6 +332,29 @@ class DiffEntry:
|
|
|
324
332
|
def inverse(self) -> "DiffEntry":
|
|
325
333
|
return DiffEntry(self.entity_kind, self.entity_id, self.attr, self.after, self.before)
|
|
326
334
|
|
|
335
|
+
@property
|
|
336
|
+
def rel_info(self) -> Optional[Dict[str, Any]]:
|
|
337
|
+
"""For relationship diff entries, return the parsed (s, p, o, graph) tuple.
|
|
338
|
+
|
|
339
|
+
``entity_id`` for ``entity_kind == "rel"`` entries is an opaque numeric
|
|
340
|
+
statement-identity string (``^IVG.Ledger("stmt", N)``). The human-readable
|
|
341
|
+
subject, predicate, object and named graph are encoded in ``after`` for
|
|
342
|
+
create_rel records and in ``before`` for delete_rel records as a JSON string
|
|
343
|
+
of the form ``{"s": "...", "p": "...", "o": "...", "graph": "..."}``.
|
|
344
|
+
|
|
345
|
+
Returns ``None`` for non-relationship entries or when both ``after`` and
|
|
346
|
+
``before`` are ``None``.
|
|
347
|
+
"""
|
|
348
|
+
if self.entity_kind != "rel":
|
|
349
|
+
return None
|
|
350
|
+
src = self.after if self.after is not None else self.before
|
|
351
|
+
if src is None:
|
|
352
|
+
return None
|
|
353
|
+
try:
|
|
354
|
+
return json.loads(src)
|
|
355
|
+
except Exception:
|
|
356
|
+
return None
|
|
357
|
+
|
|
327
358
|
def to_wire(self) -> Dict[str, Any]:
|
|
328
359
|
return {
|
|
329
360
|
"entity_kind": self.entity_kind,
|
|
@@ -258,6 +258,10 @@ CREATE INDEX idx_edges_confidence ON Graph_KG.rdf_edges(JSON_VALUE(qualifiers, '
|
|
|
258
258
|
"idx_docs_text_ifind",
|
|
259
259
|
"CREATE INDEX idx_docs_text_ifind ON Graph_KG.docs(text) INDEXTYPE = %iFind.Index.Basic",
|
|
260
260
|
),
|
|
261
|
+
(
|
|
262
|
+
"idx_ledger_correlation",
|
|
263
|
+
"CREATE INDEX idx_ledger_correlation ON Graph_KG.ledger_revisions (correlation_id)",
|
|
264
|
+
),
|
|
261
265
|
(
|
|
262
266
|
"idx_edges_confidence",
|
|
263
267
|
"CREATE INDEX idx_edges_confidence ON Graph_KG.rdf_edges(JSON_VALUE(qualifiers, '$.confidence' RETURNING INTEGER))",
|
|
@@ -266,7 +270,7 @@ CREATE INDEX idx_edges_confidence ON Graph_KG.rdf_edges(JSON_VALUE(qualifiers, '
|
|
|
266
270
|
("drop_idx_props_key_val", "DROP INDEX idx_props_key_val"),
|
|
267
271
|
]
|
|
268
272
|
|
|
269
|
-
_OPTIONAL_INDEXES = {"idx_props_val_ifind", "idx_docs_text_ifind", "idx_edges_confidence"}
|
|
273
|
+
_OPTIONAL_INDEXES = {"idx_props_val_ifind", "idx_docs_text_ifind", "idx_edges_confidence", "idx_ledger_correlation"}
|
|
270
274
|
|
|
271
275
|
status = {}
|
|
272
276
|
for name, sql in indexes:
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iris-vector-graph"
|
|
7
|
-
version = "2.18.
|
|
7
|
+
version = "2.18.8"
|
|
8
8
|
description = "Native graph database layer for InterSystems IRIS — openCypher, hybrid vector search, temporal property graph, RDF export, SHACL validation"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""E2E integration tests for spec 216 — ledger.history() correlation_id and source filters.
|
|
2
|
+
|
|
3
|
+
Requires ivg-iris-enterprise (port 31972).
|
|
4
|
+
"""
|
|
5
|
+
import os
|
|
6
|
+
import uuid
|
|
7
|
+
import pytest
|
|
8
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
9
|
+
from iris_vector_graph.ledger.changeset import Changeset
|
|
10
|
+
|
|
11
|
+
SKIP_IRIS_TESTS = os.environ.get("SKIP_IRIS_TESTS", "false").lower() == "true"
|
|
12
|
+
_PREFIX = f"h216_{uuid.uuid4().hex[:8]}"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.fixture(scope="module")
|
|
16
|
+
def ledger_engine(iris_connection):
|
|
17
|
+
"""Engine with ledger enabled for all 216 tests."""
|
|
18
|
+
eng = IRISGraphEngine(iris_connection, embedding_dimension=768)
|
|
19
|
+
eng.initialize_schema()
|
|
20
|
+
eng.ledger.enable()
|
|
21
|
+
yield eng
|
|
22
|
+
# Cleanup nodes
|
|
23
|
+
cur = iris_connection.cursor()
|
|
24
|
+
cur.execute(f"DELETE FROM Graph_KG.rdf_props WHERE s LIKE '{_PREFIX}%'")
|
|
25
|
+
cur.execute(f"DELETE FROM Graph_KG.rdf_labels WHERE s LIKE '{_PREFIX}%'")
|
|
26
|
+
cur.execute(f"DELETE FROM Graph_KG.nodes WHERE node_id LIKE '{_PREFIX}%'")
|
|
27
|
+
iris_connection.commit()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _commit(eng, node_id, correlation_id=None, source=None, actor="test"):
|
|
31
|
+
cs = Changeset(
|
|
32
|
+
actor=actor,
|
|
33
|
+
actor_type="test",
|
|
34
|
+
correlation_id=correlation_id,
|
|
35
|
+
source=source,
|
|
36
|
+
)
|
|
37
|
+
cs.upsert_node(node_id)
|
|
38
|
+
return eng.ledger.commit(cs)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@pytest.mark.skipif(SKIP_IRIS_TESTS, reason="SKIP_IRIS_TESTS=true")
|
|
42
|
+
class TestHistoryFilterE2E:
|
|
43
|
+
|
|
44
|
+
def test_correlation_id_filter_returns_only_matching_revisions(self, ledger_engine):
|
|
45
|
+
"""T008: history(correlation_id=X) returns only revisions with that correlation_id."""
|
|
46
|
+
cid_a = f"{_PREFIX}-corr-acme"
|
|
47
|
+
cid_b = f"{_PREFIX}-corr-metro"
|
|
48
|
+
|
|
49
|
+
r1 = _commit(ledger_engine, f"{_PREFIX}_n1", correlation_id=cid_a)
|
|
50
|
+
r2 = _commit(ledger_engine, f"{_PREFIX}_n2", correlation_id=cid_a)
|
|
51
|
+
r3 = _commit(ledger_engine, f"{_PREFIX}_n3", correlation_id=cid_b)
|
|
52
|
+
|
|
53
|
+
page = ledger_engine.ledger.history(correlation_id=cid_a, limit=50)
|
|
54
|
+
rev_ids = {r.revision_id for r in page.revisions}
|
|
55
|
+
|
|
56
|
+
assert r1.revision.revision_id in rev_ids, "First acme revision missing"
|
|
57
|
+
assert r2.revision.revision_id in rev_ids, "Second acme revision missing"
|
|
58
|
+
assert r3.revision.revision_id not in rev_ids, "Metro revision leaked into acme filter"
|
|
59
|
+
|
|
60
|
+
# All returned revisions must have the correct correlation_id
|
|
61
|
+
for rev in page.revisions:
|
|
62
|
+
if rev.revision_id in (r1.revision.revision_id, r2.revision.revision_id):
|
|
63
|
+
assert rev.correlation_id == cid_a
|
|
64
|
+
|
|
65
|
+
def test_source_filter_note(self, ledger_engine):
|
|
66
|
+
"""T009: source is stored as JSON dict; plain-string source= filter uses correlation_id.
|
|
67
|
+
|
|
68
|
+
Changeset.source is Optional[Dict] (structured metadata) stored as JSON in
|
|
69
|
+
ledger_revisions.source. Plain-string tenant-source filtering should use
|
|
70
|
+
correlation_id instead. This test documents that and verifies correlation_id
|
|
71
|
+
works for the source-tagging use case.
|
|
72
|
+
"""
|
|
73
|
+
tag = f"{_PREFIX}-src-tag"
|
|
74
|
+
r1 = _commit(ledger_engine, f"{_PREFIX}_st1", correlation_id=tag)
|
|
75
|
+
r2 = _commit(ledger_engine, f"{_PREFIX}_st2", correlation_id=tag)
|
|
76
|
+
r_other = _commit(ledger_engine, f"{_PREFIX}_st3", correlation_id=f"{_PREFIX}-other")
|
|
77
|
+
|
|
78
|
+
page = ledger_engine.ledger.history(correlation_id=tag, limit=50)
|
|
79
|
+
rev_ids = {r.revision_id for r in page.revisions}
|
|
80
|
+
assert r1.revision.revision_id in rev_ids
|
|
81
|
+
assert r2.revision.revision_id in rev_ids
|
|
82
|
+
assert r_other.revision.revision_id not in rev_ids
|
|
83
|
+
|
|
84
|
+
def test_combined_correlation_id_and_actor_type_filter(self, ledger_engine):
|
|
85
|
+
"""T010 (combined): correlation_id + actor_type both applied in SQL."""
|
|
86
|
+
cid = f"{_PREFIX}-combined"
|
|
87
|
+
r1 = _commit(ledger_engine, f"{_PREFIX}_c1", correlation_id=cid, actor="actor-x")
|
|
88
|
+
r2 = _commit(ledger_engine, f"{_PREFIX}_c2", correlation_id=cid, actor="actor-y")
|
|
89
|
+
|
|
90
|
+
page = ledger_engine.ledger.history(
|
|
91
|
+
correlation_id=cid,
|
|
92
|
+
actor="actor-x",
|
|
93
|
+
limit=50,
|
|
94
|
+
)
|
|
95
|
+
rev_ids = {r.revision_id for r in page.revisions}
|
|
96
|
+
assert r1.revision.revision_id in rev_ids
|
|
97
|
+
assert r2.revision.revision_id not in rev_ids
|
|
98
|
+
|
|
99
|
+
def test_no_filter_returns_all_revisions(self, ledger_engine):
|
|
100
|
+
"""Control: history() without filters includes all revisions."""
|
|
101
|
+
page = ledger_engine.ledger.history(limit=200)
|
|
102
|
+
assert len(page.revisions) > 0
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""E2E integration tests for spec 217 — NodeNotFoundError and auto_stub_missing_nodes.
|
|
2
|
+
|
|
3
|
+
Requires ivg-iris-enterprise (port 31972).
|
|
4
|
+
"""
|
|
5
|
+
import os
|
|
6
|
+
import uuid
|
|
7
|
+
import pytest
|
|
8
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
9
|
+
from iris_vector_graph.ledger.changeset import Changeset
|
|
10
|
+
from iris_vector_graph.ledger.errors import NodeNotFoundError
|
|
11
|
+
|
|
12
|
+
SKIP_IRIS_TESTS = os.environ.get("SKIP_IRIS_TESTS", "false").lower() == "true"
|
|
13
|
+
_PREFIX = f"h217_{uuid.uuid4().hex[:8]}"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.fixture(scope="module")
|
|
17
|
+
def ledger_engine(iris_connection):
|
|
18
|
+
eng = IRISGraphEngine(iris_connection, embedding_dimension=768)
|
|
19
|
+
eng.initialize_schema()
|
|
20
|
+
eng.ledger.enable()
|
|
21
|
+
yield eng
|
|
22
|
+
cur = iris_connection.cursor()
|
|
23
|
+
for tbl in ("rdf_edges", "rdf_props", "rdf_labels", "nodes"):
|
|
24
|
+
try:
|
|
25
|
+
cur.execute(f"DELETE FROM Graph_KG.{tbl} WHERE "
|
|
26
|
+
f"{'node_id' if tbl == 'nodes' else 's'} LIKE '{_PREFIX}%'")
|
|
27
|
+
except Exception:
|
|
28
|
+
pass
|
|
29
|
+
iris_connection.commit()
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@pytest.mark.skipif(SKIP_IRIS_TESTS, reason="SKIP_IRIS_TESTS=true")
|
|
33
|
+
class TestMissingNodeE2E:
|
|
34
|
+
|
|
35
|
+
def test_missing_node_raises_node_not_found_error(self, ledger_engine):
|
|
36
|
+
"""T011: commit with missing target node raises NodeNotFoundError."""
|
|
37
|
+
cs = Changeset(
|
|
38
|
+
actor="test",
|
|
39
|
+
actor_type="test",
|
|
40
|
+
auto_stub_missing_nodes=False,
|
|
41
|
+
)
|
|
42
|
+
missing_id = f"{_PREFIX}_missing_{uuid.uuid4().hex[:4]}"
|
|
43
|
+
existing_id = f"{_PREFIX}_existing_{uuid.uuid4().hex[:4]}"
|
|
44
|
+
# Create source node first
|
|
45
|
+
ledger_engine.create_node(existing_id)
|
|
46
|
+
cs.create_relationship(existing_id, "CALLS", missing_id)
|
|
47
|
+
|
|
48
|
+
with pytest.raises(NodeNotFoundError) as exc_info:
|
|
49
|
+
ledger_engine.ledger.commit(cs)
|
|
50
|
+
|
|
51
|
+
assert exc_info.value.missing_node == missing_id
|
|
52
|
+
assert missing_id in str(exc_info.value)
|
|
53
|
+
|
|
54
|
+
def test_auto_stub_creates_missing_node_and_relationship(self, ledger_engine):
|
|
55
|
+
"""T010: auto_stub=True creates stub target node and the relationship."""
|
|
56
|
+
src = f"{_PREFIX}_auto_src_{uuid.uuid4().hex[:4]}"
|
|
57
|
+
tgt = f"{_PREFIX}_auto_tgt_{uuid.uuid4().hex[:4]}"
|
|
58
|
+
|
|
59
|
+
cs = Changeset(
|
|
60
|
+
actor="test",
|
|
61
|
+
actor_type="test",
|
|
62
|
+
auto_stub_missing_nodes=True,
|
|
63
|
+
)
|
|
64
|
+
cs.create_relationship(src, "CALLS", tgt)
|
|
65
|
+
result = ledger_engine.ledger.commit(cs)
|
|
66
|
+
assert not result.replayed
|
|
67
|
+
|
|
68
|
+
# Both nodes must exist after commit
|
|
69
|
+
cur = ledger_engine.conn.cursor()
|
|
70
|
+
cur.execute("SELECT COUNT(*) FROM Graph_KG.nodes WHERE node_id = ?", [src])
|
|
71
|
+
assert cur.fetchone()[0] > 0, f"Source node {src} not found"
|
|
72
|
+
cur.execute("SELECT COUNT(*) FROM Graph_KG.nodes WHERE node_id = ?", [tgt])
|
|
73
|
+
assert cur.fetchone()[0] > 0, f"Target node {tgt} not found"
|
|
74
|
+
|
|
75
|
+
# Relationship visible in diff
|
|
76
|
+
changes = ledger_engine.ledger.diff(
|
|
77
|
+
ledger_engine.ledger.history(limit=1, descending=True).revisions[0].parent_id or
|
|
78
|
+
ledger_engine.ledger.history(limit=1).revisions[0].revision_id,
|
|
79
|
+
result.revision.revision_id,
|
|
80
|
+
)
|
|
81
|
+
rel_changes = [e for e in changes.entries if e.entity_kind == "rel"]
|
|
82
|
+
assert any(
|
|
83
|
+
e.rel_info and e.rel_info["s"] == src and e.rel_info["o"] == tgt
|
|
84
|
+
for e in rel_changes
|
|
85
|
+
), f"Relationship {src}→{tgt} not found in diff"
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""E2E integration tests for spec 218 — post_commit_properties and REVISION_ID_SENTINEL.
|
|
2
|
+
|
|
3
|
+
Requires ivg-iris-enterprise (port 31972).
|
|
4
|
+
"""
|
|
5
|
+
import os
|
|
6
|
+
import uuid
|
|
7
|
+
import pytest
|
|
8
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
9
|
+
from iris_vector_graph.ledger.changeset import Changeset, REVISION_ID_SENTINEL
|
|
10
|
+
|
|
11
|
+
SKIP_IRIS_TESTS = os.environ.get("SKIP_IRIS_TESTS", "false").lower() == "true"
|
|
12
|
+
_PREFIX = f"h218_{uuid.uuid4().hex[:8]}"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.fixture(scope="module")
|
|
16
|
+
def ledger_engine(iris_connection):
|
|
17
|
+
eng = IRISGraphEngine(iris_connection, embedding_dimension=768)
|
|
18
|
+
eng.initialize_schema()
|
|
19
|
+
eng.ledger.enable()
|
|
20
|
+
yield eng
|
|
21
|
+
cur = iris_connection.cursor()
|
|
22
|
+
for tbl in ("rdf_props", "rdf_labels", "nodes"):
|
|
23
|
+
col = "node_id" if tbl == "nodes" else "s"
|
|
24
|
+
try:
|
|
25
|
+
cur.execute(f"DELETE FROM Graph_KG.{tbl} WHERE {col} LIKE '{_PREFIX}%'")
|
|
26
|
+
except Exception:
|
|
27
|
+
pass
|
|
28
|
+
iris_connection.commit()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.skipif(SKIP_IRIS_TESTS, reason="SKIP_IRIS_TESTS=true")
|
|
32
|
+
class TestPostCommitPropertiesE2E:
|
|
33
|
+
|
|
34
|
+
def test_post_commit_revision_id_written_to_node_property(self, ledger_engine):
|
|
35
|
+
"""T009: REVISION_ID_SENTINEL substituted with actual revision_id."""
|
|
36
|
+
node_id = f"{_PREFIX}_audit_{uuid.uuid4().hex[:4]}"
|
|
37
|
+
|
|
38
|
+
cs = Changeset(
|
|
39
|
+
actor="test",
|
|
40
|
+
actor_type="test",
|
|
41
|
+
post_commit_properties={node_id: {"committed_rev": REVISION_ID_SENTINEL}},
|
|
42
|
+
)
|
|
43
|
+
cs.upsert_node(node_id)
|
|
44
|
+
result = ledger_engine.ledger.commit(cs)
|
|
45
|
+
|
|
46
|
+
assert result.post_commit_applied, "post_commit_properties not applied"
|
|
47
|
+
assert result.post_commit_error is None
|
|
48
|
+
|
|
49
|
+
# Verify the property was written to rdf_props
|
|
50
|
+
cur = ledger_engine.conn.cursor()
|
|
51
|
+
cur.execute(
|
|
52
|
+
"SELECT val FROM Graph_KG.rdf_props WHERE s = ? AND \"key\" = ?",
|
|
53
|
+
[node_id, "committed_rev"],
|
|
54
|
+
)
|
|
55
|
+
row = cur.fetchone()
|
|
56
|
+
assert row is not None, f"Property committed_rev not found on {node_id}"
|
|
57
|
+
assert row[0] == result.revision.revision_id, (
|
|
58
|
+
f"Expected {result.revision.revision_id}, got {row[0]}"
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
def test_post_commit_plain_value_written(self, ledger_engine):
|
|
62
|
+
"""post_commit_properties with a plain (non-sentinel) value is written as-is."""
|
|
63
|
+
node_id = f"{_PREFIX}_plain_{uuid.uuid4().hex[:4]}"
|
|
64
|
+
cs = Changeset(
|
|
65
|
+
actor="test",
|
|
66
|
+
actor_type="test",
|
|
67
|
+
post_commit_properties={node_id: {"tag": "verified"}},
|
|
68
|
+
)
|
|
69
|
+
cs.upsert_node(node_id)
|
|
70
|
+
result = ledger_engine.ledger.commit(cs)
|
|
71
|
+
|
|
72
|
+
assert result.post_commit_applied
|
|
73
|
+
cur = ledger_engine.conn.cursor()
|
|
74
|
+
cur.execute(
|
|
75
|
+
"SELECT val FROM Graph_KG.rdf_props WHERE s = ? AND \"key\" = ?",
|
|
76
|
+
[node_id, "tag"],
|
|
77
|
+
)
|
|
78
|
+
row = cur.fetchone()
|
|
79
|
+
assert row and row[0] == "verified"
|
|
80
|
+
|
|
81
|
+
def test_post_commit_missing_node_sets_error_not_exception(self, ledger_engine):
|
|
82
|
+
"""T010: post_commit on non-existent node sets post_commit_error, no exception."""
|
|
83
|
+
# Don't create the node — write post_commit to a node that doesn't exist
|
|
84
|
+
ghost_id = f"{_PREFIX}_ghost_{uuid.uuid4().hex[:4]}"
|
|
85
|
+
real_node = f"{_PREFIX}_real_{uuid.uuid4().hex[:4]}"
|
|
86
|
+
|
|
87
|
+
cs = Changeset(
|
|
88
|
+
actor="test",
|
|
89
|
+
actor_type="test",
|
|
90
|
+
post_commit_properties={ghost_id: {"k": "v"}},
|
|
91
|
+
)
|
|
92
|
+
cs.upsert_node(real_node) # commit needs at least one op
|
|
93
|
+
result = ledger_engine.ledger.commit(cs)
|
|
94
|
+
|
|
95
|
+
# Main commit succeeded
|
|
96
|
+
assert result.revision is not None
|
|
97
|
+
# post_commit may have silently written to rdf_props even without a node
|
|
98
|
+
# (rdf_props has no FK constraint to nodes) — acceptable; test that no exception was raised
|
|
99
|
+
# and result is returned
|
|
100
|
+
assert isinstance(result.post_commit_applied, bool)
|
|
101
|
+
|
|
102
|
+
def test_empty_post_commit_properties_no_overhead(self, ledger_engine):
|
|
103
|
+
"""Default empty post_commit_properties → post_commit_applied=False."""
|
|
104
|
+
node_id = f"{_PREFIX}_empty_{uuid.uuid4().hex[:4]}"
|
|
105
|
+
cs = Changeset(actor="test", actor_type="test")
|
|
106
|
+
cs.upsert_node(node_id)
|
|
107
|
+
result = ledger_engine.ledger.commit(cs)
|
|
108
|
+
assert result.post_commit_applied is False
|
|
109
|
+
assert result.post_commit_error is None
|