iris-vector-graph 1.91.1__tar.gz → 1.91.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/PKG-INFO +1 -1
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/embedded.py +81 -5
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/engine.py +108 -1
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/pyproject.toml +1 -1
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_embedded_wgproto_e2e.py +149 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_embedded_wgproto.py +209 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/.gitignore +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/LICENSE +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/README.md +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/demo_utils.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/graphQL.http +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/rest.http +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Edge.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Loader.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Meta.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/PageRank.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/Traversal.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/manifest.json +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/bulk_loader.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher/translator.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/cypher_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/index_protocol.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/schema.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/status.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/operators.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/sql/schema.sql +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/TESTING.md +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/README.md +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/conftest.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_arno_bfs_global.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_arno_bfs_unified.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_biomedical_demo.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_fraud_demo.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/gql/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_bidirectional_ppr.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/cypher/__init__.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_bfs_arno.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_var_length.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_edge_embeddings.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_edgeprop_ndjson.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_embed_nodes_params.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_embedded.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_engine_status.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_index_handle.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_ivf_index.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_schema_init.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_temporal_edges.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/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.91.
|
|
3
|
+
Version: 1.91.2
|
|
4
4
|
Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
|
|
5
5
|
Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
|
|
6
6
|
Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
|
|
@@ -111,6 +111,64 @@ def _require_iris_sql():
|
|
|
111
111
|
) from exc
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
def _is_ddtab_error(exc: Exception) -> bool:
|
|
115
|
+
s = str(exc)
|
|
116
|
+
return "<UNIMPLEMENTED>" in s or "ddtab" in s
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _sql_statement_execute(sql: str, params=None):
|
|
120
|
+
import iris
|
|
121
|
+
stmt = iris.cls("%SQL.Statement")._New()
|
|
122
|
+
sc = stmt._Prepare(sql)
|
|
123
|
+
if not sc:
|
|
124
|
+
raise RuntimeError(f"%%SQL.Statement._Prepare failed sc={sc}")
|
|
125
|
+
if params:
|
|
126
|
+
rs = stmt._Execute(*params)
|
|
127
|
+
else:
|
|
128
|
+
rs = stmt._Execute()
|
|
129
|
+
return _SqlStatementResultSet(rs)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class _SqlStatementResultSet:
|
|
133
|
+
|
|
134
|
+
def __init__(self, rs):
|
|
135
|
+
self._rs = rs
|
|
136
|
+
self._done = False
|
|
137
|
+
|
|
138
|
+
def columnCount(self):
|
|
139
|
+
try:
|
|
140
|
+
return int(self._rs._GetProperty("ColCount")) if self._rs else 0
|
|
141
|
+
except Exception:
|
|
142
|
+
return 0
|
|
143
|
+
|
|
144
|
+
def columnName(self, i):
|
|
145
|
+
try:
|
|
146
|
+
return str(self._rs._GetProperty("MetaData")._GetProperty("columns")._GetAt(i)._GetProperty("colName"))
|
|
147
|
+
except Exception:
|
|
148
|
+
return f"col{i}"
|
|
149
|
+
|
|
150
|
+
def __iter__(self):
|
|
151
|
+
if self._rs is None or self._done:
|
|
152
|
+
return
|
|
153
|
+
try:
|
|
154
|
+
while True:
|
|
155
|
+
sc = int(str(self._rs._Next()))
|
|
156
|
+
if sc == 0:
|
|
157
|
+
break
|
|
158
|
+
row = []
|
|
159
|
+
col_count = self.columnCount()
|
|
160
|
+
for i in range(1, col_count + 1):
|
|
161
|
+
try:
|
|
162
|
+
val = self._rs._GetData(i)
|
|
163
|
+
row.append(None if val is None else val)
|
|
164
|
+
except Exception:
|
|
165
|
+
row.append(None)
|
|
166
|
+
yield tuple(row)
|
|
167
|
+
except Exception:
|
|
168
|
+
pass
|
|
169
|
+
self._done = True
|
|
170
|
+
|
|
171
|
+
|
|
114
172
|
class EmbeddedCursor:
|
|
115
173
|
|
|
116
174
|
def __init__(self, iris_sql=None):
|
|
@@ -143,10 +201,23 @@ class EmbeddedCursor:
|
|
|
143
201
|
self._rs = stmt.execute(*params)
|
|
144
202
|
else:
|
|
145
203
|
self._rs = stmt.execute()
|
|
146
|
-
except Exception as
|
|
147
|
-
if
|
|
204
|
+
except Exception as exc1:
|
|
205
|
+
if not _is_ddtab_error(exc1):
|
|
148
206
|
raise
|
|
149
|
-
|
|
207
|
+
try:
|
|
208
|
+
self._rs = iris_sql.exec(_inline_params(sql, params or []))
|
|
209
|
+
except Exception as exc2:
|
|
210
|
+
if not _is_ddtab_error(exc2):
|
|
211
|
+
raise
|
|
212
|
+
try:
|
|
213
|
+
self._rs = _sql_statement_execute(sql, params)
|
|
214
|
+
except Exception as exc3:
|
|
215
|
+
raise RuntimeError(
|
|
216
|
+
f"All three embedded SQL paths failed.\n"
|
|
217
|
+
f" prepare: {exc1}\n"
|
|
218
|
+
f" exec: {exc2}\n"
|
|
219
|
+
f" %%SQL.Statement: {exc3}"
|
|
220
|
+
) from exc3
|
|
150
221
|
|
|
151
222
|
self._rows = None
|
|
152
223
|
self._pos = 0
|
|
@@ -174,11 +245,16 @@ class EmbeddedCursor:
|
|
|
174
245
|
stmt.execute(*params)
|
|
175
246
|
count += 1
|
|
176
247
|
except Exception as exc:
|
|
177
|
-
if
|
|
248
|
+
if not _is_ddtab_error(exc):
|
|
178
249
|
raise
|
|
179
250
|
count = 0
|
|
180
251
|
for params in seq:
|
|
181
|
-
|
|
252
|
+
try:
|
|
253
|
+
iris_sql.exec(_inline_params(sql, list(params)))
|
|
254
|
+
except Exception as exc2:
|
|
255
|
+
if not _is_ddtab_error(exc2):
|
|
256
|
+
raise
|
|
257
|
+
_sql_statement_execute(sql, list(params))
|
|
182
258
|
count += 1
|
|
183
259
|
self.rowcount = count
|
|
184
260
|
self._rs = None
|
|
@@ -97,7 +97,10 @@ class IRISGraphEngine:
|
|
|
97
97
|
self._connection_params: Optional[Dict[str, Any]] = None
|
|
98
98
|
self._nkg_dirty: bool = False
|
|
99
99
|
self._index_registry: Dict[str, str] = self._build_index_registry()
|
|
100
|
-
|
|
100
|
+
if vector_dtype == "DOUBLE":
|
|
101
|
+
self.vector_dtype = self._detect_stored_vector_dtype()
|
|
102
|
+
logger.debug("IRISGraphEngine initialized (dim=%s dtype=%s)",
|
|
103
|
+
embedding_dimension or "auto", self.vector_dtype)
|
|
101
104
|
|
|
102
105
|
@classmethod
|
|
103
106
|
def from_connect(
|
|
@@ -3074,6 +3077,35 @@ class IRISGraphEngine:
|
|
|
3074
3077
|
f"bulk_create_edges BuildKG failed (^KG may be stale): {e}"
|
|
3075
3078
|
)
|
|
3076
3079
|
|
|
3080
|
+
def _detect_stored_vector_dtype(self) -> str:
|
|
3081
|
+
try:
|
|
3082
|
+
cursor = self.conn.cursor()
|
|
3083
|
+
cursor.execute(
|
|
3084
|
+
f"SELECT TOP 1 emb FROM {_table('kg_NodeEmbeddings')} WHERE emb IS NOT NULL"
|
|
3085
|
+
)
|
|
3086
|
+
row = cursor.fetchone()
|
|
3087
|
+
cursor.close()
|
|
3088
|
+
if row is None:
|
|
3089
|
+
return "DOUBLE"
|
|
3090
|
+
emb_csv = str(row[0])
|
|
3091
|
+
sample = ",".join(emb_csv.split(",")[:2])
|
|
3092
|
+
for dtype in ("FLOAT", "DOUBLE"):
|
|
3093
|
+
try:
|
|
3094
|
+
c2 = self.conn.cursor()
|
|
3095
|
+
c2.execute(
|
|
3096
|
+
f"SELECT VECTOR_COSINE(emb, TO_VECTOR(?, {dtype})) FROM {_table('kg_NodeEmbeddings')} WHERE emb IS NOT NULL LIMIT 1",
|
|
3097
|
+
[sample],
|
|
3098
|
+
)
|
|
3099
|
+
c2.fetchone()
|
|
3100
|
+
c2.close()
|
|
3101
|
+
logger.info("Auto-detected stored vector dtype: %s", dtype)
|
|
3102
|
+
return dtype
|
|
3103
|
+
except Exception:
|
|
3104
|
+
pass
|
|
3105
|
+
except Exception:
|
|
3106
|
+
pass
|
|
3107
|
+
return "DOUBLE"
|
|
3108
|
+
|
|
3077
3109
|
def _build_index_registry(self) -> Dict[str, str]:
|
|
3078
3110
|
registry: Dict[str, str] = {}
|
|
3079
3111
|
try:
|
|
@@ -6755,3 +6787,78 @@ class IRISGraphEngine:
|
|
|
6755
6787
|
def kg_RERANK(self, top_n: int, query_vector: str, query_text: str):
|
|
6756
6788
|
return self.kg_RRF_FUSE(k=top_n, k1=top_n * 2, k2=top_n * 2, c=60,
|
|
6757
6789
|
query_vector=query_vector, query_text=query_text)
|
|
6790
|
+
|
|
6791
|
+
def get_node_properties(self, node_id: str) -> Dict[str, Any]:
|
|
6792
|
+
node = self.get_node(node_id)
|
|
6793
|
+
return node.get("properties", {}) if node else {}
|
|
6794
|
+
|
|
6795
|
+
def get_node_name(self, node_id: str) -> Optional[str]:
|
|
6796
|
+
props = self.get_node_properties(node_id)
|
|
6797
|
+
return props.get("name") or props.get("label") or props.get("title")
|
|
6798
|
+
|
|
6799
|
+
def get_nodes_by_ids(self, node_ids: List[str]) -> List[Dict[str, Any]]:
|
|
6800
|
+
if not node_ids:
|
|
6801
|
+
return []
|
|
6802
|
+
return self.get_nodes(node_ids)
|
|
6803
|
+
|
|
6804
|
+
def node_count(self) -> int:
|
|
6805
|
+
result = self.execute_cypher("MATCH (n) RETURN count(n) AS c")
|
|
6806
|
+
rows = result.get("rows") or []
|
|
6807
|
+
return int(rows[0][0]) if rows else 0
|
|
6808
|
+
|
|
6809
|
+
def edge_count(self) -> int:
|
|
6810
|
+
result = self.execute_cypher("MATCH ()-[r]->() RETURN count(r) AS c")
|
|
6811
|
+
rows = result.get("rows") or []
|
|
6812
|
+
return int(rows[0][0]) if rows else 0
|
|
6813
|
+
|
|
6814
|
+
def embedding_count(self) -> int:
|
|
6815
|
+
cursor = self.conn.cursor()
|
|
6816
|
+
try:
|
|
6817
|
+
cursor.execute(f"SELECT COUNT(*) FROM {_table('kg_NodeEmbeddings')}")
|
|
6818
|
+
row = cursor.fetchone()
|
|
6819
|
+
return int(row[0]) if row else 0
|
|
6820
|
+
except Exception:
|
|
6821
|
+
return 0
|
|
6822
|
+
finally:
|
|
6823
|
+
cursor.close()
|
|
6824
|
+
|
|
6825
|
+
def store_node(self, node_id: str, properties: Optional[Dict[str, Any]] = None,
|
|
6826
|
+
labels: Optional[List[str]] = None) -> bool:
|
|
6827
|
+
cursor = self.conn.cursor()
|
|
6828
|
+
try:
|
|
6829
|
+
cursor.execute(
|
|
6830
|
+
f"INSERT OR IGNORE INTO {_table('nodes')} (node_id) VALUES (?)", [node_id]
|
|
6831
|
+
)
|
|
6832
|
+
self.conn.commit()
|
|
6833
|
+
except Exception:
|
|
6834
|
+
pass
|
|
6835
|
+
finally:
|
|
6836
|
+
cursor.close()
|
|
6837
|
+
if properties:
|
|
6838
|
+
for k, v in (properties or {}).items():
|
|
6839
|
+
val_str = json.dumps(v) if isinstance(v, (dict, list)) else str(v)
|
|
6840
|
+
cursor2 = self.conn.cursor()
|
|
6841
|
+
try:
|
|
6842
|
+
cursor2.execute(
|
|
6843
|
+
f"INSERT OR REPLACE INTO {_table('rdf_props')} (s, \"key\", val) VALUES (?, ?, ?)",
|
|
6844
|
+
[node_id, k, val_str]
|
|
6845
|
+
)
|
|
6846
|
+
self.conn.commit()
|
|
6847
|
+
except Exception:
|
|
6848
|
+
pass
|
|
6849
|
+
finally:
|
|
6850
|
+
cursor2.close()
|
|
6851
|
+
if labels:
|
|
6852
|
+
for lbl in labels:
|
|
6853
|
+
cursor3 = self.conn.cursor()
|
|
6854
|
+
try:
|
|
6855
|
+
cursor3.execute(
|
|
6856
|
+
f"INSERT OR IGNORE INTO {_table('rdf_labels')} (s, label) VALUES (?, ?)",
|
|
6857
|
+
[node_id, lbl]
|
|
6858
|
+
)
|
|
6859
|
+
self.conn.commit()
|
|
6860
|
+
except Exception:
|
|
6861
|
+
pass
|
|
6862
|
+
finally:
|
|
6863
|
+
cursor3.close()
|
|
6864
|
+
return True
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iris-vector-graph"
|
|
7
|
-
version = "1.91.
|
|
7
|
+
version = "1.91.2"
|
|
8
8
|
description = "Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
{iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/tests/e2e/test_embedded_wgproto_e2e.py
RENAMED
|
@@ -715,3 +715,152 @@ return f"OK inlined={inlined[:50]}"
|
|
|
715
715
|
""")
|
|
716
716
|
assert "OK inlined=" in out, f"Large param list failed: {out}"
|
|
717
717
|
assert "?" not in out.split("OK inlined=")[-1].split("\n")[0], f"Unresolved ? in inlined: {out}"
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
@requires_enterprise
|
|
721
|
+
class TestNewEngineAPIsRealIRIS:
|
|
722
|
+
|
|
723
|
+
def test_node_count_returns_int(self):
|
|
724
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
725
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
726
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
727
|
+
conn = EmbeddedConnection()
|
|
728
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
729
|
+
cnt = engine.node_count()
|
|
730
|
+
return f"OK cnt={cnt} type={type(cnt).__name__}"
|
|
731
|
+
""")
|
|
732
|
+
assert "OK" in out, f"node_count failed: {out}"
|
|
733
|
+
assert "type=int" in out
|
|
734
|
+
|
|
735
|
+
def test_edge_count_returns_int(self):
|
|
736
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
737
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
738
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
739
|
+
conn = EmbeddedConnection()
|
|
740
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
741
|
+
cnt = engine.edge_count()
|
|
742
|
+
return f"OK cnt={cnt} type={type(cnt).__name__}"
|
|
743
|
+
""")
|
|
744
|
+
assert "OK" in out, f"edge_count failed: {out}"
|
|
745
|
+
|
|
746
|
+
def test_embedding_count_returns_int(self):
|
|
747
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
748
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
749
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
750
|
+
conn = EmbeddedConnection()
|
|
751
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
752
|
+
cnt = engine.embedding_count()
|
|
753
|
+
return f"OK cnt={cnt} type={type(cnt).__name__}"
|
|
754
|
+
""")
|
|
755
|
+
assert "OK" in out, f"embedding_count failed: {out}"
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
@pytest.mark.skipif(
|
|
759
|
+
os.environ.get('RUN_EMBEDDED_WGPROTO_SUITE', 'false').lower() != 'true',
|
|
760
|
+
reason='Requires full wgproto context; set RUN_EMBEDDED_WGPROTO_SUITE=true'
|
|
761
|
+
)
|
|
762
|
+
def test_get_node_properties_returns_dict(self):
|
|
763
|
+
pfx = f"gprop_{uuid.uuid4().hex[:8]}"
|
|
764
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, f"""
|
|
765
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
766
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
767
|
+
conn = EmbeddedConnection()
|
|
768
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
769
|
+
nid = "{pfx}:N1"
|
|
770
|
+
engine.create_node(nid, properties={{"name": "TestNode", "score": "42"}})
|
|
771
|
+
props = engine.get_node_properties(nid)
|
|
772
|
+
name = engine.get_node_name(nid)
|
|
773
|
+
engine.delete_node(nid)
|
|
774
|
+
return f"OK props={{type(props).__name__}} name={{name}}"
|
|
775
|
+
""")
|
|
776
|
+
assert "OK props=dict" in out, f"get_node_properties failed: {out}"
|
|
777
|
+
assert "name=TestNode" in out, f"get_node_name failed: {out}"
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
@pytest.mark.skipif(
|
|
781
|
+
os.environ.get('RUN_EMBEDDED_WGPROTO_SUITE', 'false').lower() != 'true',
|
|
782
|
+
reason='Requires full wgproto context; set RUN_EMBEDDED_WGPROTO_SUITE=true'
|
|
783
|
+
)
|
|
784
|
+
def test_get_nodes_by_ids_batch(self):
|
|
785
|
+
pfx = f"gnids_{uuid.uuid4().hex[:8]}"
|
|
786
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, f"""
|
|
787
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
788
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
789
|
+
conn = EmbeddedConnection()
|
|
790
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
791
|
+
ids = ["{pfx}:N{{i}}" for i in range(3)]
|
|
792
|
+
for nid in ids:
|
|
793
|
+
engine.create_node(nid, properties={{"name": f"Node{{nid[-1]}}"}})
|
|
794
|
+
results = engine.get_nodes_by_ids(ids)
|
|
795
|
+
for nid in ids:
|
|
796
|
+
engine.delete_node(nid)
|
|
797
|
+
return f"OK count={{len(results)}}"
|
|
798
|
+
""")
|
|
799
|
+
assert "OK count=3" in out, f"get_nodes_by_ids failed: {out}"
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
@pytest.mark.skipif(
|
|
803
|
+
os.environ.get('RUN_EMBEDDED_WGPROTO_SUITE', 'false').lower() != 'true',
|
|
804
|
+
reason='Requires full wgproto context; set RUN_EMBEDDED_WGPROTO_SUITE=true'
|
|
805
|
+
)
|
|
806
|
+
def test_store_node_upsert_idempotent(self):
|
|
807
|
+
pfx = f"snode_{uuid.uuid4().hex[:8]}"
|
|
808
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, f"""
|
|
809
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
810
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
811
|
+
conn = EmbeddedConnection()
|
|
812
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
813
|
+
nid = "{pfx}:N1"
|
|
814
|
+
engine.store_node(nid, properties={{"name": "First"}})
|
|
815
|
+
engine.store_node(nid, properties={{"name": "Updated"}})
|
|
816
|
+
props = engine.get_node_properties(nid)
|
|
817
|
+
engine.delete_node(nid)
|
|
818
|
+
return f"OK name={{props.get('name', 'MISSING')}}"
|
|
819
|
+
""")
|
|
820
|
+
assert "OK name=Updated" in out, f"store_node upsert failed: {out}"
|
|
821
|
+
|
|
822
|
+
def test_detect_stored_vector_dtype(self):
|
|
823
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
824
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
825
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
826
|
+
conn = EmbeddedConnection()
|
|
827
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
828
|
+
dtype = engine.vector_dtype
|
|
829
|
+
return f"OK dtype={dtype}"
|
|
830
|
+
""")
|
|
831
|
+
assert "OK dtype=" in out, f"vector_dtype detection failed: {out}"
|
|
832
|
+
detected = out.split("dtype=")[1].split("\n")[0].strip()
|
|
833
|
+
assert detected in ("FLOAT", "DOUBLE"), f"Unexpected dtype: {detected}"
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
@pytest.mark.skipif(
|
|
837
|
+
os.environ.get('RUN_EMBEDDED_WGPROTO_SUITE', 'false').lower() != 'true',
|
|
838
|
+
reason='Requires full wgproto context; set RUN_EMBEDDED_WGPROTO_SUITE=true'
|
|
839
|
+
)
|
|
840
|
+
def test_sql_statement_fallback_for_vector_tables(self):
|
|
841
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
842
|
+
import iris
|
|
843
|
+
from iris_vector_graph.embedded import _sql_statement_execute
|
|
844
|
+
|
|
845
|
+
rs = _sql_statement_execute("SELECT TOP 1 1 AS n")
|
|
846
|
+
rows = list(rs)
|
|
847
|
+
return f"OK rows={len(rows)}"
|
|
848
|
+
""")
|
|
849
|
+
assert "OK" in out, f"_sql_statement_execute failed: {out}"
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
@pytest.mark.skipif(
|
|
853
|
+
os.environ.get('RUN_EMBEDDED_WGPROTO_SUITE', 'false').lower() != 'true',
|
|
854
|
+
reason='Requires full wgproto context; set RUN_EMBEDDED_WGPROTO_SUITE=true'
|
|
855
|
+
)
|
|
856
|
+
def test_all_three_fallbacks_transparent_to_execute_cypher(self):
|
|
857
|
+
out = _compile_and_run_py_method(ENTERPRISE_CONTAINER, """
|
|
858
|
+
from iris_vector_graph.embedded import EmbeddedConnection
|
|
859
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
860
|
+
conn = EmbeddedConnection()
|
|
861
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
862
|
+
r1 = engine.execute_cypher("MATCH (n) RETURN count(n) AS c")
|
|
863
|
+
r2 = engine.execute_cypher("MATCH ()-[r]->() RETURN count(r) AS c")
|
|
864
|
+
return f"OK nodes={r1.get('rows',[])} edges={r2.get('rows',[])}"
|
|
865
|
+
""")
|
|
866
|
+
assert "OK" in out, f"execute_cypher with all fallbacks failed: {out}"
|
|
@@ -443,3 +443,212 @@ class TestWgprotoJobSimulation:
|
|
|
443
443
|
calls = [c[0][0] for c in mock_sql.exec.call_args_list]
|
|
444
444
|
assert "1" in calls[0]
|
|
445
445
|
assert "2" in calls[1]
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
class TestSqlStatementFallback:
|
|
449
|
+
|
|
450
|
+
def _make_ddtab(self):
|
|
451
|
+
return RuntimeError("<UNIMPLEMENTED>ddtab+83^%qaqpsq")
|
|
452
|
+
|
|
453
|
+
def test_third_level_fallback_triggered_when_exec_also_fails(self):
|
|
454
|
+
from iris_vector_graph.embedded import EmbeddedCursor
|
|
455
|
+
cursor = EmbeddedCursor()
|
|
456
|
+
mock_sql = MagicMock()
|
|
457
|
+
mock_sql.prepare.side_effect = self._make_ddtab()
|
|
458
|
+
mock_sql.exec.side_effect = self._make_ddtab()
|
|
459
|
+
|
|
460
|
+
mock_rs = MagicMock()
|
|
461
|
+
mock_rs.__iter__ = MagicMock(return_value=iter([(42,)]))
|
|
462
|
+
mock_rs.columnCount.return_value = 1
|
|
463
|
+
mock_rs.columnName.side_effect = lambda i: "n"
|
|
464
|
+
|
|
465
|
+
with patch("iris_vector_graph.embedded._require_iris_sql", return_value=mock_sql), \
|
|
466
|
+
patch("iris_vector_graph.embedded._sql_statement_execute", return_value=mock_rs) as mock_stmt:
|
|
467
|
+
cursor.execute("SELECT node_id FROM Graph_KG.nodes WHERE node_id = ?", ["abc"])
|
|
468
|
+
|
|
469
|
+
mock_stmt.assert_called_once_with(
|
|
470
|
+
"SELECT node_id FROM Graph_KG.nodes WHERE node_id = ?", ["abc"]
|
|
471
|
+
)
|
|
472
|
+
|
|
473
|
+
def test_all_three_fail_raises_runtime_error(self):
|
|
474
|
+
from iris_vector_graph.embedded import EmbeddedCursor
|
|
475
|
+
cursor = EmbeddedCursor()
|
|
476
|
+
mock_sql = MagicMock()
|
|
477
|
+
mock_sql.prepare.side_effect = self._make_ddtab()
|
|
478
|
+
mock_sql.exec.side_effect = self._make_ddtab()
|
|
479
|
+
|
|
480
|
+
with patch("iris_vector_graph.embedded._require_iris_sql", return_value=mock_sql), \
|
|
481
|
+
patch("iris_vector_graph.embedded._sql_statement_execute",
|
|
482
|
+
side_effect=RuntimeError("stmt also failed")):
|
|
483
|
+
with pytest.raises(RuntimeError, match="All three embedded SQL paths failed"):
|
|
484
|
+
cursor.execute("SELECT * FROM t", [])
|
|
485
|
+
|
|
486
|
+
def test_sql_statement_result_set_iterable(self):
|
|
487
|
+
from iris_vector_graph.embedded import _SqlStatementResultSet
|
|
488
|
+
mock_rs = MagicMock()
|
|
489
|
+
mock_rs._Next.side_effect = ["1", "1", "0"]
|
|
490
|
+
mock_rs._GetProperty.side_effect = lambda k: (
|
|
491
|
+
2 if k == "ColCount" else MagicMock()
|
|
492
|
+
)
|
|
493
|
+
mock_rs._GetData.side_effect = lambda i: "val_a" if i == 1 else "val_b"
|
|
494
|
+
|
|
495
|
+
rs = _SqlStatementResultSet(mock_rs)
|
|
496
|
+
rows = list(rs)
|
|
497
|
+
assert len(rows) == 2
|
|
498
|
+
assert rows[0] == ("val_a", "val_b")
|
|
499
|
+
|
|
500
|
+
def test_second_level_exec_failure_escalates_to_third(self):
|
|
501
|
+
from iris_vector_graph.embedded import EmbeddedCursor
|
|
502
|
+
cursor = EmbeddedCursor()
|
|
503
|
+
mock_sql = MagicMock()
|
|
504
|
+
mock_sql.prepare.side_effect = self._make_ddtab()
|
|
505
|
+
mock_sql.exec.side_effect = self._make_ddtab()
|
|
506
|
+
|
|
507
|
+
mock_rs = MagicMock()
|
|
508
|
+
mock_rs.__iter__ = MagicMock(return_value=iter([]))
|
|
509
|
+
mock_rs.columnCount.return_value = 0
|
|
510
|
+
|
|
511
|
+
with patch("iris_vector_graph.embedded._require_iris_sql", return_value=mock_sql), \
|
|
512
|
+
patch("iris_vector_graph.embedded._sql_statement_execute",
|
|
513
|
+
return_value=mock_rs) as mock_stmt:
|
|
514
|
+
cursor.execute("SELECT s, o_id FROM Graph_KG.rdf_edges")
|
|
515
|
+
|
|
516
|
+
mock_stmt.assert_called_once()
|
|
517
|
+
|
|
518
|
+
def test_non_ddtab_on_exec_propagates_not_escalates(self):
|
|
519
|
+
from iris_vector_graph.embedded import EmbeddedCursor
|
|
520
|
+
cursor = EmbeddedCursor()
|
|
521
|
+
mock_sql = MagicMock()
|
|
522
|
+
mock_sql.prepare.side_effect = self._make_ddtab()
|
|
523
|
+
mock_sql.exec.side_effect = RuntimeError("permission denied")
|
|
524
|
+
|
|
525
|
+
with patch("iris_vector_graph.embedded._require_iris_sql", return_value=mock_sql), \
|
|
526
|
+
patch("iris_vector_graph.embedded._sql_statement_execute") as mock_stmt:
|
|
527
|
+
with pytest.raises(RuntimeError, match="permission denied"):
|
|
528
|
+
cursor.execute("SELECT 1")
|
|
529
|
+
|
|
530
|
+
mock_stmt.assert_not_called()
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
class TestNewEngineAPIs:
|
|
534
|
+
|
|
535
|
+
def _make_engine(self):
|
|
536
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
537
|
+
from iris_vector_graph.engine import IRISCapabilities
|
|
538
|
+
eng = IRISGraphEngine.__new__(IRISGraphEngine)
|
|
539
|
+
eng.conn = MagicMock()
|
|
540
|
+
eng.embedding_dimension = 4
|
|
541
|
+
eng._arno_available = False
|
|
542
|
+
eng._arno_capabilities = {}
|
|
543
|
+
eng._index_registry = {}
|
|
544
|
+
eng.vector_dtype = "DOUBLE"
|
|
545
|
+
eng.capabilities = IRISCapabilities()
|
|
546
|
+
return eng
|
|
547
|
+
|
|
548
|
+
def test_get_node_name_returns_name_property(self):
|
|
549
|
+
eng = self._make_engine()
|
|
550
|
+
eng.get_node = MagicMock(return_value={
|
|
551
|
+
"id": "n1", "labels": ["Gene"],
|
|
552
|
+
"properties": {"name": "TP53", "symbol": "tp53"}
|
|
553
|
+
})
|
|
554
|
+
assert eng.get_node_name("n1") == "TP53"
|
|
555
|
+
|
|
556
|
+
def test_get_node_name_falls_back_to_label(self):
|
|
557
|
+
eng = self._make_engine()
|
|
558
|
+
eng.get_node = MagicMock(return_value={
|
|
559
|
+
"id": "n1", "labels": [],
|
|
560
|
+
"properties": {"label": "MyLabel"}
|
|
561
|
+
})
|
|
562
|
+
assert eng.get_node_name("n1") == "MyLabel"
|
|
563
|
+
|
|
564
|
+
def test_get_node_name_none_when_missing(self):
|
|
565
|
+
eng = self._make_engine()
|
|
566
|
+
eng.get_node = MagicMock(return_value=None)
|
|
567
|
+
assert eng.get_node_name("nonexistent") is None
|
|
568
|
+
|
|
569
|
+
def test_get_node_properties_returns_dict(self):
|
|
570
|
+
eng = self._make_engine()
|
|
571
|
+
eng.get_node = MagicMock(return_value={
|
|
572
|
+
"id": "n1", "properties": {"name": "Alice", "age": "30"}
|
|
573
|
+
})
|
|
574
|
+
props = eng.get_node_properties("n1")
|
|
575
|
+
assert props == {"name": "Alice", "age": "30"}
|
|
576
|
+
|
|
577
|
+
def test_get_nodes_by_ids_delegates_to_get_nodes(self):
|
|
578
|
+
eng = self._make_engine()
|
|
579
|
+
expected = [{"id": "a"}, {"id": "b"}]
|
|
580
|
+
eng.get_nodes = MagicMock(return_value=expected)
|
|
581
|
+
result = eng.get_nodes_by_ids(["a", "b"])
|
|
582
|
+
eng.get_nodes.assert_called_once_with(["a", "b"])
|
|
583
|
+
assert result == expected
|
|
584
|
+
|
|
585
|
+
def test_get_nodes_by_ids_empty_returns_empty(self):
|
|
586
|
+
eng = self._make_engine()
|
|
587
|
+
eng.get_nodes = MagicMock()
|
|
588
|
+
assert eng.get_nodes_by_ids([]) == []
|
|
589
|
+
eng.get_nodes.assert_not_called()
|
|
590
|
+
|
|
591
|
+
def test_node_count_calls_execute_cypher(self):
|
|
592
|
+
eng = self._make_engine()
|
|
593
|
+
eng.execute_cypher = MagicMock(return_value={"rows": [(42,)]})
|
|
594
|
+
assert eng.node_count() == 42
|
|
595
|
+
eng.execute_cypher.assert_called_once()
|
|
596
|
+
assert "count" in eng.execute_cypher.call_args[0][0].lower()
|
|
597
|
+
|
|
598
|
+
def test_edge_count_calls_execute_cypher(self):
|
|
599
|
+
eng = self._make_engine()
|
|
600
|
+
eng.execute_cypher = MagicMock(return_value={"rows": [(100,)]})
|
|
601
|
+
assert eng.edge_count() == 100
|
|
602
|
+
|
|
603
|
+
def test_embedding_count_queries_table(self):
|
|
604
|
+
eng = self._make_engine()
|
|
605
|
+
mock_cursor = MagicMock()
|
|
606
|
+
mock_cursor.fetchone.return_value = (205000,)
|
|
607
|
+
eng.conn.cursor.return_value = mock_cursor
|
|
608
|
+
assert eng.embedding_count() == 205000
|
|
609
|
+
|
|
610
|
+
def test_embedding_count_returns_zero_on_error(self):
|
|
611
|
+
eng = self._make_engine()
|
|
612
|
+
mock_cursor = MagicMock()
|
|
613
|
+
mock_cursor.execute.side_effect = Exception("table not found")
|
|
614
|
+
eng.conn.cursor.return_value = mock_cursor
|
|
615
|
+
assert eng.embedding_count() == 0
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
class TestDetectStoredVectorDtype:
|
|
619
|
+
|
|
620
|
+
def _make_engine(self):
|
|
621
|
+
from iris_vector_graph.engine import IRISGraphEngine, IRISCapabilities
|
|
622
|
+
eng = IRISGraphEngine.__new__(IRISGraphEngine)
|
|
623
|
+
eng.conn = MagicMock()
|
|
624
|
+
eng.embedding_dimension = 4
|
|
625
|
+
eng._arno_available = False
|
|
626
|
+
eng._arno_capabilities = {}
|
|
627
|
+
eng._index_registry = {}
|
|
628
|
+
eng.vector_dtype = "DOUBLE"
|
|
629
|
+
eng.capabilities = IRISCapabilities()
|
|
630
|
+
return eng
|
|
631
|
+
|
|
632
|
+
def test_returns_float_when_float_works(self):
|
|
633
|
+
eng = self._make_engine()
|
|
634
|
+
float_cursor = MagicMock()
|
|
635
|
+
float_cursor.fetchone.return_value = ("0.1,0.2",)
|
|
636
|
+
float_cursor2 = MagicMock()
|
|
637
|
+
float_cursor2.fetchone.return_value = (0.99,)
|
|
638
|
+
float_cursor3 = MagicMock()
|
|
639
|
+
float_cursor3.fetchone.return_value = (0.99,)
|
|
640
|
+
eng.conn.cursor.side_effect = [float_cursor, float_cursor2]
|
|
641
|
+
result = eng._detect_stored_vector_dtype()
|
|
642
|
+
assert result in ("FLOAT", "DOUBLE")
|
|
643
|
+
|
|
644
|
+
def test_returns_double_when_no_embeddings(self):
|
|
645
|
+
eng = self._make_engine()
|
|
646
|
+
mock_cursor = MagicMock()
|
|
647
|
+
mock_cursor.fetchone.return_value = None
|
|
648
|
+
eng.conn.cursor.return_value = mock_cursor
|
|
649
|
+
assert eng._detect_stored_vector_dtype() == "DOUBLE"
|
|
650
|
+
|
|
651
|
+
def test_returns_double_on_exception(self):
|
|
652
|
+
eng = self._make_engine()
|
|
653
|
+
eng.conn.cursor.side_effect = Exception("connection failed")
|
|
654
|
+
assert eng._detect_stored_vector_dtype() == "DOUBLE"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/__init__.py
RENAMED
|
File without changes
|
{iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/loaders.py
RENAMED
|
File without changes
|
{iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
{iris_vector_graph-1.91.1 → iris_vector_graph-1.91.2}/examples/domains/biomedical_legacy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|