iris-vector-graph 1.99.2__tar.gz → 1.99.3__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-1.99.2 → iris_vector_graph-1.99.3}/PKG-INFO +2 -7
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/README.md +1 -6
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/GraphIndex.cls +1 -1
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Traversal.cls +5 -27
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/engine.py +24 -75
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/schema.py +71 -3
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/stores/arno_bridge.py +56 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/stores/iris_sql_store.py +121 -73
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/pyproject.toml +1 -1
- iris_vector_graph-1.99.3/tests/e2e/test_graph_json_os_e2e.py +55 -0
- iris_vector_graph-1.99.3/tests/e2e/test_shared_lkg_e2e.py +53 -0
- iris_vector_graph-1.99.3/tests/unit/test_graph_json_os_unit.py +29 -0
- iris_vector_graph-1.99.3/tests/unit/test_shared_lkg_unit.py +57 -0
- iris_vector_graph-1.99.2/tests/e2e/test_rebuild_nkg_complete_e2e.py +0 -162
- iris_vector_graph-1.99.2/tests/unit/test_rebuild_nkg_complete_unit.py +0 -74
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/.gitignore +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/LICENSE +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/demo_utils.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/graphQL.http +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/examples/rest.http +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Centrality.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Edge.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/EmbedQueue.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Loader.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Meta.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/PageRank.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/manifest.json +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/bulk_loader.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cli.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/aql/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/aql/ast.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/aql/lexer.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/aql/parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/aql/translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher/translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/cypher_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/embedded.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/fhir_bridge.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/index_protocol.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/sdk.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/status.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/store_protocol.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/stores/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/stores/lazy_kg.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/operators.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/sql/schema.sql +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/TESTING.md +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/README.md +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/conftest.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/fixtures/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/fixtures/centrality_graphs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/fixtures/community_graphs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_aql_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_arno_bfs_global.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_arno_bfs_unified.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_biomedical_demo.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_centrality_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_communities_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_communities_perf.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_embed_queue_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_fraud_demo.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_lazy_kg_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_store_injection_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_temporal_store_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/gql/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_bidirectional_ppr.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/perf/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/perf/test_leiden_four_way.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/cypher/__init__.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_aql_lexer.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_aql_parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_aql_translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_arno_bridge.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_bfs_arno.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_centrality_translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_centrality_unit.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_communities_translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_communities_unit.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_coverage_boost.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_var_length.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_edge_embeddings.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_edgeprop_ndjson.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_embed_nodes_params.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_embedded.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_embedded_wgproto.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_engine_deep.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_engine_mocked.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_engine_status.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_fhir_bridge.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_index_handle.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_ivf_index.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_lazy_kg.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_module_coverage.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_operators_coverage.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_schema_init.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_store_protocol.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_supporting_modules.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_temporal_edges.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_translator_coverage.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/tests/unit/test_weighted_shortest_path.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iris-vector-graph
|
|
3
|
-
Version: 1.99.
|
|
3
|
+
Version: 1.99.3
|
|
4
4
|
Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
|
|
5
5
|
Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
|
|
6
6
|
Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
|
|
@@ -816,12 +816,7 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
|
|
|
816
816
|
|
|
817
817
|
## Changelog
|
|
818
818
|
|
|
819
|
-
### v1.99.
|
|
820
|
-
- **perf(spec-165)**: `BuildNKGComplete` — collapses 7 Python→IRIS round-trips in `engine.rebuild_nkg()` to 1. New `Graph.KG.Traversal.BuildNKGComplete()` ObjectScript method runs `BuildNKG + Build2HopStats` in one call; returns discriminated `"OS:<edges>:<nodes>"` / `"RUST:<edges>:<nodes>"` prefix for zero-probe path discrimination. `engine.rebuild_nkg()` now returns `{"path": "objectscript"|"rust"|"fallback", "edge_count": N, "node_count": M}` (was `bool`; backward-compatible — still truthy on success).
|
|
821
|
-
- **fix(spec-165)**: `Graph.KG.GraphIndex.EmptyHLL` — applied to `main` branch; `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` prevents `<No such method>` compile error on `Graph.KG.Edge.cls` in fresh containers. (Previously only on the `164-seed-local-khop-fast-path` branch.)
|
|
822
|
-
- **fix(spec-165)**: `Graph.KG.Traversal.BuildNKG` and `Build2HopExactStats` — added `##class(Graph.KG.NKGAccel).IsLoaded()` guards before `InvalidateAdjCache()` and `Build2HopExact()` calls to prevent non-trappable `<DYNAMIC LIBRARY LOAD>` errors when `libarno_callout.so` is absent.
|
|
823
|
-
|
|
824
|
-
|
|
819
|
+
### v1.99.0 (2026-05-28)
|
|
825
820
|
- **feat**: Spec 163 — Community Detection & Cluster Analysis Suite. Four new graph algorithms via the GraphStore protocol + Cypher procedures + dual-path architecture (arno Rust accelerator primary + LazyKG pure-Python fallback):
|
|
826
821
|
- `engine.leiden_communities(max_levels, gamma, tol, top_k, mem_budget_mb, random_seed, progress_callback)` — Leiden community detection (Traag et al. 2019). At `gamma=1.0` uses `ModularityVertexPartition` (canonical Leiden); at `gamma != 1.0` uses `CPMVertexPartition` for resolution control. ARI = 1.0 with `leidenalg` reference (4-way benchmark on karate, ER(500), ER(2000)).
|
|
827
822
|
- `engine.triangle_count(top_k, progress_callback)` — symmetrized triangle count + LCC. Pearson > 0.95 with `networkx.triangles(networkx.Graph(G_directed))` on Erdős-Rényi 100-node fixture.
|
|
@@ -733,12 +733,7 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
|
|
|
733
733
|
|
|
734
734
|
## Changelog
|
|
735
735
|
|
|
736
|
-
### v1.99.
|
|
737
|
-
- **perf(spec-165)**: `BuildNKGComplete` — collapses 7 Python→IRIS round-trips in `engine.rebuild_nkg()` to 1. New `Graph.KG.Traversal.BuildNKGComplete()` ObjectScript method runs `BuildNKG + Build2HopStats` in one call; returns discriminated `"OS:<edges>:<nodes>"` / `"RUST:<edges>:<nodes>"` prefix for zero-probe path discrimination. `engine.rebuild_nkg()` now returns `{"path": "objectscript"|"rust"|"fallback", "edge_count": N, "node_count": M}` (was `bool`; backward-compatible — still truthy on success).
|
|
738
|
-
- **fix(spec-165)**: `Graph.KG.GraphIndex.EmptyHLL` — applied to `main` branch; `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` prevents `<No such method>` compile error on `Graph.KG.Edge.cls` in fresh containers. (Previously only on the `164-seed-local-khop-fast-path` branch.)
|
|
739
|
-
- **fix(spec-165)**: `Graph.KG.Traversal.BuildNKG` and `Build2HopExactStats` — added `##class(Graph.KG.NKGAccel).IsLoaded()` guards before `InvalidateAdjCache()` and `Build2HopExact()` calls to prevent non-trappable `<DYNAMIC LIBRARY LOAD>` errors when `libarno_callout.so` is absent.
|
|
740
|
-
|
|
741
|
-
|
|
736
|
+
### v1.99.0 (2026-05-28)
|
|
742
737
|
- **feat**: Spec 163 — Community Detection & Cluster Analysis Suite. Four new graph algorithms via the GraphStore protocol + Cypher procedures + dual-path architecture (arno Rust accelerator primary + LazyKG pure-Python fallback):
|
|
743
738
|
- `engine.leiden_communities(max_levels, gamma, tol, top_k, mem_budget_mb, random_seed, progress_callback)` — Leiden community detection (Traag et al. 2019). At `gamma=1.0` uses `ModularityVertexPartition` (canonical Leiden); at `gamma != 1.0` uses `CPMVertexPartition` for resolution control. ARI = 1.0 with `leidenalg` reference (4-way benchmark on karate, ER(500), ER(2000)).
|
|
744
739
|
- `engine.triangle_count(top_k, progress_callback)` — symmetrized triangle count + LCC. Pearson > 0.95 with `networkx.triangles(networkx.Graph(G_directed))` on Erdős-Rényi 100-node fixture.
|
|
@@ -91,7 +91,7 @@ ClassMethod UpdateStructuralHLL(sIdx As %Integer, pIdx As %Integer, oIdx As %Int
|
|
|
91
91
|
} Else {
|
|
92
92
|
While (b1 # 2) = 0 { Set lz = lz + 1, b1 = b1 \ 2 }
|
|
93
93
|
}
|
|
94
|
-
Set hll = $Get(^NKG("$agg", sIdx, pIdx, "hll"),
|
|
94
|
+
Set hll = $Get(^NKG("$agg", sIdx, pIdx, "hll"), ..EmptyHLL())
|
|
95
95
|
If lz > $List(hll, regIdx) {
|
|
96
96
|
Set $List(hll, regIdx) = lz
|
|
97
97
|
Set ^NKG("$agg", sIdx, pIdx, "hll") = hll
|
|
@@ -83,7 +83,7 @@ ClassMethod BuildNKG() As %Status
|
|
|
83
83
|
// Kill ^NKG resets the version to 0; $Increment makes it 1.
|
|
84
84
|
// If the stale cache also has version 1, CacheNKGAdj sees cachedVer==currentVer
|
|
85
85
|
// and skips the rebuild, leaving Arno BFS using data from the previous graph.
|
|
86
|
-
|
|
86
|
+
Try { Do ##class(Graph.KG.NKGAccel).InvalidateAdjCache() } Catch {}
|
|
87
87
|
Kill ^NKG
|
|
88
88
|
Do ##class(Graph.KG.GraphIndex).InitStructuralLabels()
|
|
89
89
|
|
|
@@ -116,34 +116,12 @@ ClassMethod BuildNKG() As %Status
|
|
|
116
116
|
Set ^NKG("$meta", "edgeCount") = edgeCount
|
|
117
117
|
Set tmp = $Increment(^NKG("$meta", "version"))
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
Do ..Build2HopStats()
|
|
120
|
+
Do ..Build2HopExactStats()
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
Return $$$OK
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
/// Spec 165 (FR-165-001..004): Batch all 5 NKG-rebuild steps into 1 ObjectScript call,
|
|
126
|
-
/// eliminating 7 Python→IRIS round-trips that engine.rebuild_nkg() previously made.
|
|
127
|
-
///
|
|
128
|
-
/// Algorithm:
|
|
129
|
-
/// 1. Try arno Rust kg_nkg_build kernel via $ZF(-5) — fastest path
|
|
130
|
-
/// 2. Fallback: ..BuildNKG() (ObjectScript $Order walk over ^KG)
|
|
131
|
-
/// 3. Always: Build2HopStats + Build2HopExactStats + InvalidateAdjCache
|
|
132
|
-
///
|
|
133
|
-
/// Returns: "RUST:<edgeCount>:<nodeCount>" | "OS:<edgeCount>:<nodeCount>" | "ERROR:<msg>"
|
|
134
|
-
/// Python caller parses prefix to set _arno_available without extra round-trip.
|
|
135
|
-
ClassMethod BuildNKGComplete(libPath As %String = "/usr/irissys/mgr/libarno_callout.so") As %String
|
|
136
|
-
{
|
|
137
|
-
Do ..BuildNKG()
|
|
138
|
-
Do ..Build2HopStats()
|
|
139
|
-
Set ec = $Get(^NKG("$meta", "edgeCount"), 0)
|
|
140
|
-
Set nc = 0, nid = $Order(^NKG("$NI", ""))
|
|
141
|
-
While nid '= "" { Set nc = nc + 1, nid = $Order(^NKG("$NI", nid)) }
|
|
142
|
-
Set ^NKG("$meta", "nodeCount") = nc
|
|
143
|
-
Quit "OS:"_ec_":"_nc
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
125
|
ClassMethod BackfillDegp() As %Integer
|
|
148
126
|
{
|
|
149
127
|
Kill ^KG("deg")
|
|
@@ -1247,7 +1225,7 @@ ClassMethod KHop2CountExact(srcId As %String, pred As %String = "") As %Integer
|
|
|
1247
1225
|
ClassMethod Build2HopExactStats() As %Integer
|
|
1248
1226
|
{
|
|
1249
1227
|
Kill ^KG("deg2p_exact")
|
|
1250
|
-
If ##class(Graph.KG.NKGAccel).
|
|
1228
|
+
If ##class(Graph.KG.NKGAccel).Build2HopExact() {
|
|
1251
1229
|
Set n = ""
|
|
1252
1230
|
Set cnt = 0
|
|
1253
1231
|
For {
|
|
@@ -8,7 +8,6 @@ that can be used across any domain.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
import json
|
|
11
|
-
import os
|
|
12
11
|
from pathlib import Path
|
|
13
12
|
from typing import Callable, List, Tuple, Optional, Dict, Any
|
|
14
13
|
import logging
|
|
@@ -134,6 +133,7 @@ class IRISGraphEngine:
|
|
|
134
133
|
self._rel_mapping_cache: Optional[Dict[tuple, dict]] = None
|
|
135
134
|
self._connection_params: Optional[Dict[str, Any]] = None
|
|
136
135
|
self._nkg_dirty: bool = False
|
|
136
|
+
self._shared_lkg = None
|
|
137
137
|
self._index_registry: Dict[str, str] = self._build_index_registry()
|
|
138
138
|
if vector_dtype == "DOUBLE":
|
|
139
139
|
self.vector_dtype = self._detect_stored_vector_dtype()
|
|
@@ -146,6 +146,16 @@ class IRISGraphEngine:
|
|
|
146
146
|
logger.debug("IRISGraphEngine initialized (dim=%s dtype=%s)",
|
|
147
147
|
embedding_dimension or "auto", self.vector_dtype)
|
|
148
148
|
|
|
149
|
+
def _get_shared_lkg(self, include_sinks: bool = True):
|
|
150
|
+
"""Return the shared LazyKG instance, creating it on first call (spec 166 FR-166-002)."""
|
|
151
|
+
if self._shared_lkg is None:
|
|
152
|
+
from iris_vector_graph.stores.lazy_kg import LazyKG
|
|
153
|
+
self._shared_lkg = LazyKG(self.conn, include_sinks=include_sinks)
|
|
154
|
+
return self._shared_lkg
|
|
155
|
+
|
|
156
|
+
def _invalidate_shared_lkg(self) -> None:
|
|
157
|
+
self._shared_lkg = None
|
|
158
|
+
|
|
149
159
|
@classmethod
|
|
150
160
|
def from_connect(
|
|
151
161
|
cls,
|
|
@@ -3290,80 +3300,14 @@ class IRISGraphEngine:
|
|
|
3290
3300
|
_call_classmethod(self.conn, "Graph.KG.Traversal", "BuildKG")
|
|
3291
3301
|
self.capabilities.kg_built = True
|
|
3292
3302
|
self._nkg_dirty = True
|
|
3303
|
+
self._invalidate_shared_lkg()
|
|
3293
3304
|
logger.info("^KG adjacency index rebuilt successfully")
|
|
3294
3305
|
return True
|
|
3295
3306
|
except Exception as e:
|
|
3296
3307
|
logger.warning("rebuild_kg failed: %s", e)
|
|
3297
3308
|
return False
|
|
3298
3309
|
|
|
3299
|
-
def rebuild_nkg(self) ->
|
|
3300
|
-
"""Rebuild `^NKG` integer index from `^KG` adjacency.
|
|
3301
|
-
|
|
3302
|
-
Spec 165: dispatches to `BuildNKGComplete` (1 IRIS round-trip),
|
|
3303
|
-
replacing the legacy 5-call sequence.
|
|
3304
|
-
Returns {"path": "rust"|"objectscript"|"fallback", "edge_count": N, "node_count": M}.
|
|
3305
|
-
Backward-compatible: return value is truthy on success (was `True`/`False`).
|
|
3306
|
-
"""
|
|
3307
|
-
try:
|
|
3308
|
-
iris_obj = self._iris_obj()
|
|
3309
|
-
raw = str(iris_obj.classMethodValue(
|
|
3310
|
-
"Graph.KG.Traversal", "BuildNKGComplete",
|
|
3311
|
-
os.environ.get("IVG_ARNO_LIB", "/usr/irissys/mgr/libarno_callout.so"),
|
|
3312
|
-
))
|
|
3313
|
-
if raw.startswith("RUST:"):
|
|
3314
|
-
parts = raw.split(":")
|
|
3315
|
-
self._arno_available = True
|
|
3316
|
-
self._nkg_dirty = False
|
|
3317
|
-
return {"path": "rust", "edge_count": int(parts[1]), "node_count": int(parts[2])}
|
|
3318
|
-
elif raw.startswith("OS:"):
|
|
3319
|
-
parts = raw.split(":")
|
|
3320
|
-
self._arno_available = False
|
|
3321
|
-
self._nkg_dirty = False
|
|
3322
|
-
try:
|
|
3323
|
-
iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopExactStats")
|
|
3324
|
-
except Exception:
|
|
3325
|
-
pass
|
|
3326
|
-
try:
|
|
3327
|
-
iris_obj.classMethodVoid("Graph.KG.NKGAccel", "InvalidateAdjCache")
|
|
3328
|
-
except Exception:
|
|
3329
|
-
pass
|
|
3330
|
-
return {"path": "objectscript", "edge_count": int(parts[1]), "node_count": int(parts[2])}
|
|
3331
|
-
except Exception as e:
|
|
3332
|
-
logger.warning("BuildNKGComplete failed, falling back to legacy sequence: %s", e)
|
|
3333
|
-
|
|
3334
|
-
try:
|
|
3335
|
-
iris_obj = self._iris_obj()
|
|
3336
|
-
rust_succeeded = False
|
|
3337
|
-
if self._detect_arno() and self._arno_capabilities.get("rust_callout"):
|
|
3338
|
-
try:
|
|
3339
|
-
import json as _json
|
|
3340
|
-
raw = str(iris_obj.classMethodValue("Graph.KG.NKGAccel", "BuildNKGRust"))
|
|
3341
|
-
result = _json.loads(raw)
|
|
3342
|
-
if "error" not in result:
|
|
3343
|
-
logger.info("^NKG rebuilt via Rust: %s", result)
|
|
3344
|
-
rust_succeeded = True
|
|
3345
|
-
else:
|
|
3346
|
-
logger.warning("BuildNKGRust returned error (%s), falling back to ObjectScript", result["error"])
|
|
3347
|
-
except Exception as rust_exc:
|
|
3348
|
-
logger.warning("BuildNKGRust raised (%s), falling back to ObjectScript", rust_exc)
|
|
3349
|
-
if not rust_succeeded:
|
|
3350
|
-
iris_obj.classMethodVoid("Graph.KG.Traversal", "BuildNKG")
|
|
3351
|
-
iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopStats")
|
|
3352
|
-
try:
|
|
3353
|
-
iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopExactStats")
|
|
3354
|
-
except Exception:
|
|
3355
|
-
pass
|
|
3356
|
-
try:
|
|
3357
|
-
iris_obj.classMethodVoid("Graph.KG.NKGAccel", "InvalidateAdjCache")
|
|
3358
|
-
except Exception:
|
|
3359
|
-
pass
|
|
3360
|
-
self._nkg_dirty = False
|
|
3361
|
-
return {"path": "fallback", "edge_count": 0, "node_count": 0}
|
|
3362
|
-
except Exception as e:
|
|
3363
|
-
logger.warning("rebuild_nkg failed: %s", e)
|
|
3364
|
-
self._nkg_dirty = False
|
|
3365
|
-
return {"path": "fallback", "edge_count": 0, "node_count": 0}
|
|
3366
|
-
|
|
3310
|
+
def rebuild_nkg(self) -> bool:
|
|
3367
3311
|
try:
|
|
3368
3312
|
iris_obj = self._iris_obj()
|
|
3369
3313
|
rust_succeeded = False
|
|
@@ -3388,11 +3332,10 @@ class IRISGraphEngine:
|
|
|
3388
3332
|
except Exception:
|
|
3389
3333
|
pass
|
|
3390
3334
|
self._nkg_dirty = False
|
|
3391
|
-
return
|
|
3335
|
+
return True
|
|
3392
3336
|
except Exception as e:
|
|
3393
3337
|
logger.warning("rebuild_nkg failed: %s", e)
|
|
3394
|
-
|
|
3395
|
-
return {"path": "fallback", "edge_count": 0, "node_count": 0}
|
|
3338
|
+
return False
|
|
3396
3339
|
|
|
3397
3340
|
def backfill_degp(self) -> int:
|
|
3398
3341
|
try:
|
|
@@ -3480,6 +3423,7 @@ class IRISGraphEngine:
|
|
|
3480
3423
|
n += 1
|
|
3481
3424
|
self.conn.commit()
|
|
3482
3425
|
self._nkg_dirty = True
|
|
3426
|
+
self._invalidate_shared_lkg()
|
|
3483
3427
|
return n
|
|
3484
3428
|
|
|
3485
3429
|
def load_networkx(
|
|
@@ -7189,6 +7133,7 @@ class IRISGraphEngine:
|
|
|
7189
7133
|
validated.direction,
|
|
7190
7134
|
validated.predicate or "",
|
|
7191
7135
|
validated.top_k,
|
|
7136
|
+
lkg=self._get_shared_lkg(),
|
|
7192
7137
|
)
|
|
7193
7138
|
if result.error:
|
|
7194
7139
|
return []
|
|
@@ -7242,6 +7187,7 @@ class IRISGraphEngine:
|
|
|
7242
7187
|
validated.top_k,
|
|
7243
7188
|
validated.mem_budget_mb,
|
|
7244
7189
|
progress_callback,
|
|
7190
|
+
lkg=self._get_shared_lkg(),
|
|
7245
7191
|
)
|
|
7246
7192
|
if result.error:
|
|
7247
7193
|
return []
|
|
@@ -7296,6 +7242,7 @@ class IRISGraphEngine:
|
|
|
7296
7242
|
validated.max_hops,
|
|
7297
7243
|
validated.top_k,
|
|
7298
7244
|
progress_callback,
|
|
7245
|
+
lkg=self._get_shared_lkg(),
|
|
7299
7246
|
)
|
|
7300
7247
|
if result.error:
|
|
7301
7248
|
return []
|
|
@@ -7340,6 +7287,7 @@ class IRISGraphEngine:
|
|
|
7340
7287
|
validated.tol,
|
|
7341
7288
|
validated.top_k,
|
|
7342
7289
|
progress_callback,
|
|
7290
|
+
lkg=self._get_shared_lkg(),
|
|
7343
7291
|
)
|
|
7344
7292
|
if result.error:
|
|
7345
7293
|
return []
|
|
@@ -7412,6 +7360,7 @@ class IRISGraphEngine:
|
|
|
7412
7360
|
validated.max_levels, validated.gamma, validated.tol,
|
|
7413
7361
|
validated.top_k, validated.mem_budget_mb,
|
|
7414
7362
|
validated.random_seed, progress_callback,
|
|
7363
|
+
lkg=self._get_shared_lkg(),
|
|
7415
7364
|
)
|
|
7416
7365
|
if result.error:
|
|
7417
7366
|
return []
|
|
@@ -7440,7 +7389,7 @@ class IRISGraphEngine:
|
|
|
7440
7389
|
f"{type(self._store).__name__ if getattr(self, '_store', None) else 'None'}"
|
|
7441
7390
|
)
|
|
7442
7391
|
|
|
7443
|
-
result = self._store.execute_triangle_count(validated.top_k, progress_callback)
|
|
7392
|
+
result = self._store.execute_triangle_count(validated.top_k, progress_callback, lkg=self._get_shared_lkg())
|
|
7444
7393
|
if result.error:
|
|
7445
7394
|
return []
|
|
7446
7395
|
return [{"id": row[0], "triangles": row[1], "lcc": row[2]} for row in result.rows]
|
|
@@ -7459,7 +7408,7 @@ class IRISGraphEngine:
|
|
|
7459
7408
|
f"{type(self._store).__name__ if getattr(self, '_store', None) else 'None'}"
|
|
7460
7409
|
)
|
|
7461
7410
|
|
|
7462
|
-
result = self._store.execute_scc(validated.top_k, progress_callback)
|
|
7411
|
+
result = self._store.execute_scc(validated.top_k, progress_callback, lkg=self._get_shared_lkg())
|
|
7463
7412
|
if result.error:
|
|
7464
7413
|
return []
|
|
7465
7414
|
return [{"id": row[0], "component": row[1], "size": row[2]} for row in result.rows]
|
|
@@ -7478,7 +7427,7 @@ class IRISGraphEngine:
|
|
|
7478
7427
|
f"{type(self._store).__name__ if getattr(self, '_store', None) else 'None'}"
|
|
7479
7428
|
)
|
|
7480
7429
|
|
|
7481
|
-
result = self._store.execute_k_core(validated.top_k, progress_callback)
|
|
7430
|
+
result = self._store.execute_k_core(validated.top_k, progress_callback, lkg=self._get_shared_lkg())
|
|
7482
7431
|
if result.error:
|
|
7483
7432
|
return []
|
|
7484
7433
|
return [{"id": row[0], "coreness": row[1]} for row in result.rows]
|
|
@@ -801,9 +801,77 @@ LANGUAGE OBJECTSCRIPT
|
|
|
801
801
|
""",
|
|
802
802
|
]
|
|
803
803
|
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
804
|
+
@staticmethod
|
|
805
|
+
def get_graph_json_sql_list(table_schema: str = "Graph_KG") -> list:
|
|
806
|
+
"""SQL OBJECTSCRIPT functions for server-side ^KG→JSON export (spec 167 FR-167-001/002)."""
|
|
807
|
+
TS = table_schema
|
|
808
|
+
build_ddl = "\n".join([
|
|
809
|
+
"CREATE OR REPLACE FUNCTION " + TS + ".ivg_graph_json_build(inclsinks INT DEFAULT 1)",
|
|
810
|
+
"RETURNS VARCHAR(64)",
|
|
811
|
+
"LANGUAGE OBJECTSCRIPT",
|
|
812
|
+
"{",
|
|
813
|
+
" kill ^||gji, ^||graphjsonchunks",
|
|
814
|
+
" set n = 0, e = 0",
|
|
815
|
+
' set nodeList = "{""nodes"":["',
|
|
816
|
+
' set src = $Order(^KG("out",0,""))',
|
|
817
|
+
' while src \'= "" {',
|
|
818
|
+
" set ^||gji(src) = n",
|
|
819
|
+
' if n > 0 set nodeList = nodeList_","',
|
|
820
|
+
' set nodeList = nodeList_""""_src_""""',
|
|
821
|
+
" set n = n + 1",
|
|
822
|
+
' set src = $Order(^KG("out",0,src))',
|
|
823
|
+
" }",
|
|
824
|
+
" if inclsinks {",
|
|
825
|
+
' set dst = $Order(^KG("in",0,""))',
|
|
826
|
+
' while dst \'= "" {',
|
|
827
|
+
" if '$Data(^||gji(dst)) {",
|
|
828
|
+
' if n > 0 set nodeList = nodeList_","',
|
|
829
|
+
' set nodeList = nodeList_""""_dst_""""',
|
|
830
|
+
" set ^||gji(dst) = n",
|
|
831
|
+
" set n = n + 1",
|
|
832
|
+
" }",
|
|
833
|
+
' set dst = $Order(^KG("in",0,dst))',
|
|
834
|
+
" }",
|
|
835
|
+
" }",
|
|
836
|
+
' set edgeList = "],""edges"":["',
|
|
837
|
+
' set src = $Order(^KG("out",0,""))',
|
|
838
|
+
' while src \'= "" {',
|
|
839
|
+
' set pred = $Order(^KG("out",0,src,""))',
|
|
840
|
+
' while pred \'= "" {',
|
|
841
|
+
' set dst = $Order(^KG("out",0,src,pred,""))',
|
|
842
|
+
' while dst \'= "" {',
|
|
843
|
+
' if e > 0 set edgeList = edgeList_","',
|
|
844
|
+
' set edgeList = edgeList_"{""s"":""""_src_"""",""d"":""""_dst_""""}"',
|
|
845
|
+
" set e = e + 1",
|
|
846
|
+
' set dst = $Order(^KG("out",0,src,pred,dst))',
|
|
847
|
+
" }",
|
|
848
|
+
' set pred = $Order(^KG("out",0,src,pred))',
|
|
849
|
+
" }",
|
|
850
|
+
' set src = $Order(^KG("out",0,src))',
|
|
851
|
+
" }",
|
|
852
|
+
' set full = nodeList_edgeList_"]}"',
|
|
853
|
+
" set chunkNum = 0, pos = 1, csize = 12000",
|
|
854
|
+
" while pos <= $Length(full) {",
|
|
855
|
+
" set chunkNum = chunkNum + 1",
|
|
856
|
+
" set ^||graphjsonchunks(chunkNum) = $Extract(full,pos,pos+csize-1)",
|
|
857
|
+
" set pos = pos + csize",
|
|
858
|
+
" }",
|
|
859
|
+
" set ^||graphjsonchunks = chunkNum",
|
|
860
|
+
' quit "OK:"_n_":"_e_":"_chunkNum',
|
|
861
|
+
"}",
|
|
862
|
+
])
|
|
863
|
+
chunk_ddl = "\n".join([
|
|
864
|
+
"CREATE OR REPLACE FUNCTION " + TS + ".ivg_graph_json_chunk(idx INT)",
|
|
865
|
+
"RETURNS VARCHAR(32000)",
|
|
866
|
+
"LANGUAGE OBJECTSCRIPT",
|
|
867
|
+
"{",
|
|
868
|
+
" quit $Get(^||graphjsonchunks(idx))",
|
|
869
|
+
"}",
|
|
870
|
+
])
|
|
871
|
+
return [build_ddl, chunk_ddl]
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
807
875
|
|
|
808
876
|
@staticmethod
|
|
809
877
|
def check_objectscript_classes(cursor, conn=None) -> "IRISCapabilities":
|
{iris_vector_graph-1.99.2 → iris_vector_graph-1.99.3}/iris_vector_graph/stores/arno_bridge.py
RENAMED
|
@@ -782,3 +782,59 @@ LANGUAGE OBJECTSCRIPT
|
|
|
782
782
|
full = "".join(chunks)
|
|
783
783
|
idx_to_node = full.rstrip("\x1f").split("\x1f") if full else []
|
|
784
784
|
return idx_to_node, edge_count
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
def build_graph_json_serverside(conn, include_sinks: bool = True) -> dict:
|
|
788
|
+
"""Spec 167 FR-167-003: Build ^KG graph as JSON in one server-side ObjectScript call.
|
|
789
|
+
|
|
790
|
+
Calls ivg_graph_json_build() (SQL OBJECTSCRIPT), fetches JSON chunks
|
|
791
|
+
via ivg_graph_json_chunk(), returns {"nodes": [...], "edges": [{"s":..,"d":..},..]}.
|
|
792
|
+
Falls back to build_kg_adjacency_json() on any exception (FR-167-007).
|
|
793
|
+
|
|
794
|
+
This collapses O(V+E) Python→IRIS nextSubscript round-trips to 2-5 SQL calls.
|
|
795
|
+
"""
|
|
796
|
+
import json as _json
|
|
797
|
+
from iris_vector_graph.schema import GraphSchema
|
|
798
|
+
|
|
799
|
+
key = _conn_key(conn)
|
|
800
|
+
cache = _probe_cache.get(key, {})
|
|
801
|
+
lib_path = cache.get("lib_path", DEFAULT_LIB_PATH)
|
|
802
|
+
|
|
803
|
+
cur = conn.cursor()
|
|
804
|
+
if not cache.get("graph_json_ddl_installed"):
|
|
805
|
+
try:
|
|
806
|
+
ddl_list = GraphSchema.get_graph_json_sql_list("Graph_KG")
|
|
807
|
+
for ddl in ddl_list:
|
|
808
|
+
cur.execute(ddl.strip())
|
|
809
|
+
conn.commit()
|
|
810
|
+
if key not in _probe_cache:
|
|
811
|
+
_probe_cache[key] = {}
|
|
812
|
+
_probe_cache[key]["graph_json_ddl_installed"] = True
|
|
813
|
+
except Exception as e:
|
|
814
|
+
raise ArnoError(f"ivg_graph_json DDL install failed: {e}") from e
|
|
815
|
+
|
|
816
|
+
try:
|
|
817
|
+
sinks_arg = 1 if include_sinks else 0
|
|
818
|
+
cur.execute(f"SELECT Graph_KG.ivg_graph_json_build({sinks_arg})")
|
|
819
|
+
row = cur.fetchone()
|
|
820
|
+
if not row or not row[0]:
|
|
821
|
+
raise ArnoError("ivg_graph_json_build returned NULL")
|
|
822
|
+
status = str(row[0])
|
|
823
|
+
if not status.startswith("OK:"):
|
|
824
|
+
raise ArnoError(f"ivg_graph_json_build: {status}")
|
|
825
|
+
parts = status[3:].split(":")
|
|
826
|
+
n, e, chunk_count = int(parts[0]), int(parts[1]), int(parts[2])
|
|
827
|
+
|
|
828
|
+
chunks: list = []
|
|
829
|
+
for i in range(1, chunk_count + 1):
|
|
830
|
+
cur.execute(f"SELECT Graph_KG.ivg_graph_json_chunk({i})")
|
|
831
|
+
chunk_row = cur.fetchone()
|
|
832
|
+
if chunk_row and chunk_row[0]:
|
|
833
|
+
chunks.append(str(chunk_row[0]))
|
|
834
|
+
full_json = "".join(chunks)
|
|
835
|
+
return _json.loads(full_json)
|
|
836
|
+
|
|
837
|
+
except ArnoError:
|
|
838
|
+
raise
|
|
839
|
+
except Exception as e:
|
|
840
|
+
raise ArnoError(f"build_graph_json_serverside failed: {e}") from e
|