iris-vector-graph 1.94.0__tar.gz → 1.95.0__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.94.0 → iris_vector_graph-1.95.0}/PKG-INFO +37 -7
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/README.md +36 -6
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/__init__.py +4 -0
- iris_vector_graph-1.95.0/iris_vector_graph/cypher/aql/__init__.py +28 -0
- iris_vector_graph-1.95.0/iris_vector_graph/cypher/aql/ast.py +148 -0
- iris_vector_graph-1.95.0/iris_vector_graph/cypher/aql/lexer.py +190 -0
- iris_vector_graph-1.95.0/iris_vector_graph/cypher/aql/parser.py +387 -0
- iris_vector_graph-1.95.0/iris_vector_graph/cypher/aql/translator.py +270 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher_api.py +281 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/engine.py +181 -19
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/store_protocol.py +6 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/stores/iris_sql_store.py +166 -13
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/pyproject.toml +1 -1
- iris_vector_graph-1.95.0/tests/e2e/test_aql_e2e.py +56 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_biomedical_demo.py +22 -16
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_fraud_demo.py +19 -14
- iris_vector_graph-1.95.0/tests/unit/test_aql_lexer.py +118 -0
- iris_vector_graph-1.95.0/tests/unit/test_aql_parser.py +86 -0
- iris_vector_graph-1.95.0/tests/unit/test_aql_translator.py +229 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_store_protocol.py +18 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/.gitignore +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/LICENSE +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/demo_utils.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/graphQL.http +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/examples/rest.http +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Edge.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Loader.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Meta.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/PageRank.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/Traversal.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/manifest.json +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/bulk_loader.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/cypher/translator.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/embedded.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/fhir_bridge.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/index_protocol.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/schema.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/status.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/stores/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/operators.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/sql/schema.sql +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/TESTING.md +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/README.md +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/conftest.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_arno_bfs_global.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_arno_bfs_unified.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_store_injection_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_temporal_store_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/gql/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_bidirectional_ppr.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/cypher/__init__.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_bfs_arno.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_coverage_boost.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_var_length.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_edge_embeddings.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_edgeprop_ndjson.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_embed_nodes_params.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_embedded.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_embedded_wgproto.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_engine_deep.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_engine_mocked.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_engine_status.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_fhir_bridge.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_index_handle.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_ivf_index.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_module_coverage.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_operators_coverage.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_schema_init.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_supporting_modules.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_temporal_edges.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_translator_coverage.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-1.94.0 → iris_vector_graph-1.95.0}/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.
|
|
3
|
+
Version: 1.95.0
|
|
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
|
|
@@ -188,17 +188,19 @@ The single 2025.1 failure: `SKIP` clause uses `ORDER BY + OFFSET` on JSON_TABLE-
|
|
|
188
188
|
|
|
189
189
|
Two live demos ship in `src/iris_demo_server/`:
|
|
190
190
|
|
|
191
|
-
| Demo | URL | What it shows |
|
|
192
|
-
|
|
193
|
-
| **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, bitemporal audit trails
|
|
194
|
-
| **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, D3 network visualization |
|
|
191
|
+
| Demo | URL | What it shows | Docs |
|
|
192
|
+
|------|-----|--------------|------|
|
|
193
|
+
| **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, ring detection, money mule identification, bitemporal audit trails | [docs/demos/FRAUD_DEMO.md](docs/demos/FRAUD_DEMO.md) |
|
|
194
|
+
| **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, hybrid vector+graph queries, D3 network visualization | [docs/demos/BIOMEDICAL_DEMO.md](docs/demos/BIOMEDICAL_DEMO.md) |
|
|
195
|
+
|
|
196
|
+
The fraud demo is inspired by the [AWS Neptune fraud graph reference notebook](https://github.com/aws/graph-notebook/blob/main/src/graph_notebook/notebooks/01-Neptune-Database/03-Sample-Applications/01-Fraud-Graphs/01-Building-a-Fraud-Graph-Application.ipynb) — the same fraud ring and identity theft patterns (first-party and third-party fraud on credit card transaction data), running on IRIS with Cypher instead of Gremlin.
|
|
195
197
|
|
|
196
198
|
```bash
|
|
197
199
|
# 1. Start IRIS
|
|
198
200
|
docker compose up -d
|
|
199
201
|
|
|
200
202
|
# 2. Install deps (once)
|
|
201
|
-
pip install iris-vector-graph[full]
|
|
203
|
+
pip install "iris-vector-graph[full]"
|
|
202
204
|
|
|
203
205
|
# 3. Start demo server
|
|
204
206
|
python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
|
|
@@ -208,7 +210,7 @@ python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
|
|
|
208
210
|
open http://localhost:8200
|
|
209
211
|
```
|
|
210
212
|
|
|
211
|
-
The demos use the generic IVG graph engine — no separate backend required.
|
|
213
|
+
The demos use the generic IVG graph engine — no separate backend required.
|
|
212
214
|
|
|
213
215
|
---
|
|
214
216
|
|
|
@@ -1252,6 +1254,34 @@ Four openCypher gaps closed, all from structured gap analysis against the openCy
|
|
|
1252
1254
|
|
|
1253
1255
|
## Changelog
|
|
1254
1256
|
|
|
1257
|
+
### v1.95.0 (2026-05-15)
|
|
1258
|
+
|
|
1259
|
+
**Admin API** — IVG now has a production-grade admin surface matching Neo4j/ArangoDB:
|
|
1260
|
+
|
|
1261
|
+
**Fixed: `SHOW INDEXES` / `SHOW CONSTRAINTS`** — were empty stubs; now return actual BM25, IVF, HNSW, PLAID, ^KG, ^NKG indexes and uniqueness constraints. Neo4j Browser, LangChain, and all Neo4j-compatible tools now see the real index state on connect.
|
|
1262
|
+
|
|
1263
|
+
**New REST endpoints on the Cypher API:**
|
|
1264
|
+
- `GET /schema` — labels, relationship types, property keys, counts
|
|
1265
|
+
- `GET /indexes` — full index inventory (all types)
|
|
1266
|
+
- `GET /server` — IVG version, IRIS version, namespace, schema status, BFS path
|
|
1267
|
+
- `GET /metrics` — Prometheus-format metrics (node/edge/embedding counts, status)
|
|
1268
|
+
- `GET /stats` — counts by label, predicate, embedding coverage
|
|
1269
|
+
- `POST /admin/schema/init` — initialize schema
|
|
1270
|
+
- `POST /admin/indexes/rebuild` — rebuild ^KG and ^NKG adjacency indexes
|
|
1271
|
+
- `POST /admin/embed` — trigger node embedding
|
|
1272
|
+
- `POST /admin/load` — stream NDJSON graph data
|
|
1273
|
+
- `GET /admin/export` — export graph as NDJSON
|
|
1274
|
+
- `POST /admin/snapshot` — save snapshot to disk
|
|
1275
|
+
- `GET /admin/queries` — list active IRIS queries
|
|
1276
|
+
- `DELETE /admin/queries/{id}` — kill a running query
|
|
1277
|
+
- `POST /admin/explain` — translate Cypher to SQL (debugging + optimization)
|
|
1278
|
+
|
|
1279
|
+
**GraphStore protocol additions** (6 new methods):
|
|
1280
|
+
`get_node_count()`, `get_edge_count()`, `get_labels()`, `get_relationship_types()`, `list_indexes()`, `server_info()`
|
|
1281
|
+
|
|
1282
|
+
**Engine additions:**
|
|
1283
|
+
`engine.list_active_queries()`, `engine.kill_query(id)`
|
|
1284
|
+
|
|
1255
1285
|
### v1.94.0 (2026-05-15)
|
|
1256
1286
|
|
|
1257
1287
|
**GraphStore Protocol** — `IRISGraphEngine` now has a pluggable storage backend (spec 156).
|
|
@@ -116,17 +116,19 @@ The single 2025.1 failure: `SKIP` clause uses `ORDER BY + OFFSET` on JSON_TABLE-
|
|
|
116
116
|
|
|
117
117
|
Two live demos ship in `src/iris_demo_server/`:
|
|
118
118
|
|
|
119
|
-
| Demo | URL | What it shows |
|
|
120
|
-
|
|
121
|
-
| **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, bitemporal audit trails
|
|
122
|
-
| **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, D3 network visualization |
|
|
119
|
+
| Demo | URL | What it shows | Docs |
|
|
120
|
+
|------|-----|--------------|------|
|
|
121
|
+
| **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, ring detection, money mule identification, bitemporal audit trails | [docs/demos/FRAUD_DEMO.md](docs/demos/FRAUD_DEMO.md) |
|
|
122
|
+
| **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, hybrid vector+graph queries, D3 network visualization | [docs/demos/BIOMEDICAL_DEMO.md](docs/demos/BIOMEDICAL_DEMO.md) |
|
|
123
|
+
|
|
124
|
+
The fraud demo is inspired by the [AWS Neptune fraud graph reference notebook](https://github.com/aws/graph-notebook/blob/main/src/graph_notebook/notebooks/01-Neptune-Database/03-Sample-Applications/01-Fraud-Graphs/01-Building-a-Fraud-Graph-Application.ipynb) — the same fraud ring and identity theft patterns (first-party and third-party fraud on credit card transaction data), running on IRIS with Cypher instead of Gremlin.
|
|
123
125
|
|
|
124
126
|
```bash
|
|
125
127
|
# 1. Start IRIS
|
|
126
128
|
docker compose up -d
|
|
127
129
|
|
|
128
130
|
# 2. Install deps (once)
|
|
129
|
-
pip install iris-vector-graph[full]
|
|
131
|
+
pip install "iris-vector-graph[full]"
|
|
130
132
|
|
|
131
133
|
# 3. Start demo server
|
|
132
134
|
python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
|
|
@@ -136,7 +138,7 @@ python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
|
|
|
136
138
|
open http://localhost:8200
|
|
137
139
|
```
|
|
138
140
|
|
|
139
|
-
The demos use the generic IVG graph engine — no separate backend required.
|
|
141
|
+
The demos use the generic IVG graph engine — no separate backend required.
|
|
140
142
|
|
|
141
143
|
---
|
|
142
144
|
|
|
@@ -1180,6 +1182,34 @@ Four openCypher gaps closed, all from structured gap analysis against the openCy
|
|
|
1180
1182
|
|
|
1181
1183
|
## Changelog
|
|
1182
1184
|
|
|
1185
|
+
### v1.95.0 (2026-05-15)
|
|
1186
|
+
|
|
1187
|
+
**Admin API** — IVG now has a production-grade admin surface matching Neo4j/ArangoDB:
|
|
1188
|
+
|
|
1189
|
+
**Fixed: `SHOW INDEXES` / `SHOW CONSTRAINTS`** — were empty stubs; now return actual BM25, IVF, HNSW, PLAID, ^KG, ^NKG indexes and uniqueness constraints. Neo4j Browser, LangChain, and all Neo4j-compatible tools now see the real index state on connect.
|
|
1190
|
+
|
|
1191
|
+
**New REST endpoints on the Cypher API:**
|
|
1192
|
+
- `GET /schema` — labels, relationship types, property keys, counts
|
|
1193
|
+
- `GET /indexes` — full index inventory (all types)
|
|
1194
|
+
- `GET /server` — IVG version, IRIS version, namespace, schema status, BFS path
|
|
1195
|
+
- `GET /metrics` — Prometheus-format metrics (node/edge/embedding counts, status)
|
|
1196
|
+
- `GET /stats` — counts by label, predicate, embedding coverage
|
|
1197
|
+
- `POST /admin/schema/init` — initialize schema
|
|
1198
|
+
- `POST /admin/indexes/rebuild` — rebuild ^KG and ^NKG adjacency indexes
|
|
1199
|
+
- `POST /admin/embed` — trigger node embedding
|
|
1200
|
+
- `POST /admin/load` — stream NDJSON graph data
|
|
1201
|
+
- `GET /admin/export` — export graph as NDJSON
|
|
1202
|
+
- `POST /admin/snapshot` — save snapshot to disk
|
|
1203
|
+
- `GET /admin/queries` — list active IRIS queries
|
|
1204
|
+
- `DELETE /admin/queries/{id}` — kill a running query
|
|
1205
|
+
- `POST /admin/explain` — translate Cypher to SQL (debugging + optimization)
|
|
1206
|
+
|
|
1207
|
+
**GraphStore protocol additions** (6 new methods):
|
|
1208
|
+
`get_node_count()`, `get_edge_count()`, `get_labels()`, `get_relationship_types()`, `list_indexes()`, `server_info()`
|
|
1209
|
+
|
|
1210
|
+
**Engine additions:**
|
|
1211
|
+
`engine.list_active_queries()`, `engine.kill_query(id)`
|
|
1212
|
+
|
|
1183
1213
|
### v1.94.0 (2026-05-15)
|
|
1184
1214
|
|
|
1185
1215
|
**GraphStore Protocol** — `IRISGraphEngine` now has a pluggable storage backend (spec 156).
|
|
@@ -10,6 +10,7 @@ from .result import IVGResult
|
|
|
10
10
|
from .capabilities import IRISCapabilities
|
|
11
11
|
from .store_protocol import GraphStore
|
|
12
12
|
from .stores import IRISGraphStore
|
|
13
|
+
from .cypher.aql import translate_aql, AQLParseError, AQLTranslationError
|
|
13
14
|
from ._validate import (
|
|
14
15
|
NodeIdInput, EdgeInput, CypherInput,
|
|
15
16
|
IVFBuildInput, VectorSearchInput,
|
|
@@ -76,4 +77,7 @@ __all__ = [
|
|
|
76
77
|
"GetPatientKGNeighborhoodTool",
|
|
77
78
|
"GraphStore",
|
|
78
79
|
"IRISGraphStore",
|
|
80
|
+
"translate_aql",
|
|
81
|
+
"AQLParseError",
|
|
82
|
+
"AQLTranslationError",
|
|
79
83
|
]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AQLParseError(Exception):
|
|
5
|
+
def __init__(self, message: str, line: int = 0, column: int = 0):
|
|
6
|
+
self.message = message
|
|
7
|
+
self.line = line
|
|
8
|
+
self.column = column
|
|
9
|
+
super().__init__(f"AQL syntax error at line {line}, col {column}: {message}")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AQLTranslationError(Exception):
|
|
13
|
+
def __init__(self, message: str, aql_construct: str = ""):
|
|
14
|
+
self.message = message
|
|
15
|
+
self.aql_construct = aql_construct
|
|
16
|
+
detail = f" ({aql_construct})" if aql_construct else ""
|
|
17
|
+
super().__init__(f"AQL translation error{detail}: {message}")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def translate_aql(aql: str, bind_vars: Optional[dict] = None) -> tuple:
|
|
21
|
+
from iris_vector_graph.cypher.aql.lexer import AQLLexer
|
|
22
|
+
from iris_vector_graph.cypher.aql.parser import AQLParser
|
|
23
|
+
from iris_vector_graph.cypher.aql.translator import AQLTranslator
|
|
24
|
+
tokens = AQLLexer(aql).tokenize()
|
|
25
|
+
aql_ast = AQLParser(tokens).parse()
|
|
26
|
+
translator = AQLTranslator()
|
|
27
|
+
cypher_str, resolved_params = translator.translate_to_cypher(aql_ast, bind_vars or {})
|
|
28
|
+
return cypher_str, resolved_params
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Any, Optional, Union
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class AQLDirection(enum.Enum):
|
|
7
|
+
OUTBOUND = "OUTBOUND"
|
|
8
|
+
INBOUND = "INBOUND"
|
|
9
|
+
ANY = "ANY"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass(slots=True)
|
|
13
|
+
class AQLVariable:
|
|
14
|
+
name: str
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass(slots=True)
|
|
18
|
+
class AQLPropertyAccess:
|
|
19
|
+
object: Any
|
|
20
|
+
property: str
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass(slots=True)
|
|
24
|
+
class AQLKeyAccess:
|
|
25
|
+
object: Any
|
|
26
|
+
key: str
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass(slots=True)
|
|
30
|
+
class AQLBindVar:
|
|
31
|
+
name: str
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@dataclass(slots=True)
|
|
35
|
+
class AQLLiteral:
|
|
36
|
+
value: Any
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass(slots=True)
|
|
40
|
+
class AQLBinaryOp:
|
|
41
|
+
operator: str
|
|
42
|
+
left: Any
|
|
43
|
+
right: Any
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass(slots=True)
|
|
47
|
+
class AQLUnaryOp:
|
|
48
|
+
operator: str
|
|
49
|
+
operand: Any
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@dataclass(slots=True)
|
|
53
|
+
class AQLFunctionCall:
|
|
54
|
+
name: str
|
|
55
|
+
args: list = field(default_factory=list)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass(slots=True)
|
|
59
|
+
class AQLObjectLiteral:
|
|
60
|
+
fields: dict = field(default_factory=dict)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@dataclass(slots=True)
|
|
64
|
+
class AQLArrayLiteral:
|
|
65
|
+
items: list = field(default_factory=list)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
AQLExpression = Union[
|
|
69
|
+
AQLVariable, AQLPropertyAccess, AQLKeyAccess, AQLBindVar, AQLLiteral,
|
|
70
|
+
AQLBinaryOp, AQLUnaryOp, AQLFunctionCall, AQLObjectLiteral, AQLArrayLiteral
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@dataclass(slots=True)
|
|
75
|
+
class ForClause:
|
|
76
|
+
vertex_var: str
|
|
77
|
+
edge_var: Optional[str]
|
|
78
|
+
path_var: Optional[str]
|
|
79
|
+
min_depth: int
|
|
80
|
+
max_depth: int
|
|
81
|
+
direction: AQLDirection
|
|
82
|
+
start_expr: Any
|
|
83
|
+
graph_or_collections: list
|
|
84
|
+
is_graph: bool
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@dataclass(slots=True)
|
|
88
|
+
class ShortestPathClause:
|
|
89
|
+
vertex_var: str
|
|
90
|
+
edge_var: Optional[str]
|
|
91
|
+
direction: AQLDirection
|
|
92
|
+
start_expr: Any
|
|
93
|
+
end_expr: Any
|
|
94
|
+
graph_or_collections: list
|
|
95
|
+
is_graph: bool
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
@dataclass(slots=True)
|
|
99
|
+
class FilterClause:
|
|
100
|
+
condition: Any
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@dataclass(slots=True)
|
|
104
|
+
class LetClause:
|
|
105
|
+
variable: str
|
|
106
|
+
value: Any
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@dataclass(slots=True)
|
|
110
|
+
class CollectClause:
|
|
111
|
+
assignments: list
|
|
112
|
+
with_count_into: Optional[str]
|
|
113
|
+
aggregate: list
|
|
114
|
+
into_var: Optional[str]
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@dataclass(slots=True)
|
|
118
|
+
class SortItem:
|
|
119
|
+
expression: Any
|
|
120
|
+
ascending: bool
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@dataclass(slots=True)
|
|
124
|
+
class SortClause:
|
|
125
|
+
items: list
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@dataclass(slots=True)
|
|
129
|
+
class LimitClause:
|
|
130
|
+
offset: Optional[int]
|
|
131
|
+
count: int
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
@dataclass(slots=True)
|
|
135
|
+
class ReturnClause:
|
|
136
|
+
distinct: bool
|
|
137
|
+
expression: Any
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
@dataclass(slots=True)
|
|
141
|
+
class AQLQuery:
|
|
142
|
+
for_clause: Any
|
|
143
|
+
filter_clauses: list = field(default_factory=list)
|
|
144
|
+
let_clauses: list = field(default_factory=list)
|
|
145
|
+
collect_clause: Optional[Any] = None
|
|
146
|
+
sort_clause: Optional[Any] = None
|
|
147
|
+
limit_clause: Optional[Any] = None
|
|
148
|
+
return_clause: Optional[Any] = None
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class AQLTokenType(enum.Enum):
|
|
6
|
+
FOR = "FOR"; IN = "IN"; OUTBOUND = "OUTBOUND"; INBOUND = "INBOUND"; ANY = "ANY"
|
|
7
|
+
RETURN = "RETURN"; FILTER = "FILTER"; LET = "LET"; SORT = "SORT"; LIMIT = "LIMIT"
|
|
8
|
+
COLLECT = "COLLECT"; WITH = "WITH"; COUNT = "COUNT"; INTO = "INTO"; GRAPH = "GRAPH"
|
|
9
|
+
SHORTEST_PATH = "SHORTEST_PATH"; K_SHORTEST_PATHS = "K_SHORTEST_PATHS"; K_PATHS = "K_PATHS"
|
|
10
|
+
TO = "TO"; DISTINCT = "DISTINCT"; ASC = "ASC"; DESC = "DESC"
|
|
11
|
+
AND = "AND"; OR = "OR"; NOT = "NOT"; NULL = "NULL"; TRUE = "TRUE"; FALSE = "FALSE"
|
|
12
|
+
ALL = "ALL"; AGGREGATE = "AGGREGATE"; SEARCH = "SEARCH"
|
|
13
|
+
INSERT = "INSERT"; UPDATE = "UPDATE"; REMOVE = "REMOVE"; UPSERT = "UPSERT"
|
|
14
|
+
REPLACE = "REPLACE"; WINDOW = "WINDOW"
|
|
15
|
+
IDENT = "IDENT"; INT = "INT"; FLOAT = "FLOAT"; STRING = "STRING"
|
|
16
|
+
BIND_VAR = "BIND_VAR"; DYN_COLLECTION = "DYN_COLLECTION"
|
|
17
|
+
RANGE = ".."; EQ = "=="; NEQ = "!="; LTE = "<="; GTE = ">="; LT = "<"; GT = ">"
|
|
18
|
+
REGEX_MATCH = "=~"; REGEX_NOTMATCH = "!~"; ASSIGN = "="
|
|
19
|
+
PLUS = "+"; MINUS = "-"; MUL = "*"; DIV = "/"; MOD = "%"
|
|
20
|
+
DOT = "."; COMMA = ","; COLON = ":"; LPAREN = "("; RPAREN = ")"
|
|
21
|
+
LBRACKET = "["; RBRACKET = "]"; LBRACE = "{"; RBRACE = "}"; QUESTION = "?"
|
|
22
|
+
EOF = "EOF"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
_KW = {t.value: t for t in AQLTokenType
|
|
26
|
+
if t.value.replace('_', '').isalpha() and t not in (
|
|
27
|
+
AQLTokenType.IDENT, AQLTokenType.EOF)}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass(slots=True)
|
|
31
|
+
class AQLToken:
|
|
32
|
+
kind: AQLTokenType
|
|
33
|
+
value: str
|
|
34
|
+
line: int
|
|
35
|
+
column: int
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class AQLLexer:
|
|
39
|
+
def __init__(self, source: str):
|
|
40
|
+
self._src = self._strip_comments(source)
|
|
41
|
+
self._pos = 0
|
|
42
|
+
self._line = 1
|
|
43
|
+
self._col = 1
|
|
44
|
+
|
|
45
|
+
@staticmethod
|
|
46
|
+
def _strip_comments(src: str) -> str:
|
|
47
|
+
result = []
|
|
48
|
+
i = 0
|
|
49
|
+
while i < len(src):
|
|
50
|
+
if src[i:i+2] == "/*":
|
|
51
|
+
end = src.find("*/", i + 2)
|
|
52
|
+
if end == -1:
|
|
53
|
+
break
|
|
54
|
+
result.append('\n' * src[i:end+2].count('\n'))
|
|
55
|
+
i = end + 2
|
|
56
|
+
elif src[i:i+2] == "//":
|
|
57
|
+
end = src.find('\n', i)
|
|
58
|
+
result.append('\n')
|
|
59
|
+
i = (end + 1) if end != -1 else len(src)
|
|
60
|
+
else:
|
|
61
|
+
result.append(src[i])
|
|
62
|
+
i += 1
|
|
63
|
+
return ''.join(result)
|
|
64
|
+
|
|
65
|
+
def _peek(self, offset: int = 0) -> str:
|
|
66
|
+
p = self._pos + offset
|
|
67
|
+
return self._src[p] if p < len(self._src) else ''
|
|
68
|
+
|
|
69
|
+
def _advance(self) -> str:
|
|
70
|
+
ch = self._src[self._pos]; self._pos += 1
|
|
71
|
+
if ch == '\n': self._line += 1; self._col = 1
|
|
72
|
+
else: self._col += 1
|
|
73
|
+
return ch
|
|
74
|
+
|
|
75
|
+
def _tok(self, kind: AQLTokenType, value: str, line: int, col: int) -> AQLToken:
|
|
76
|
+
return AQLToken(kind=kind, value=value, line=line, column=col)
|
|
77
|
+
|
|
78
|
+
def tokenize(self) -> list:
|
|
79
|
+
tokens = []
|
|
80
|
+
while self._pos < len(self._src):
|
|
81
|
+
while self._pos < len(self._src) and self._src[self._pos] in ' \t\r\n':
|
|
82
|
+
self._advance()
|
|
83
|
+
if self._pos >= len(self._src):
|
|
84
|
+
break
|
|
85
|
+
line, col = self._line, self._col
|
|
86
|
+
ch = self._peek()
|
|
87
|
+
|
|
88
|
+
if ch == '@':
|
|
89
|
+
self._advance()
|
|
90
|
+
if self._peek() == '@':
|
|
91
|
+
self._advance()
|
|
92
|
+
tokens.append(self._tok(AQLTokenType.DYN_COLLECTION, '@@' + self._read_ident(), line, col))
|
|
93
|
+
else:
|
|
94
|
+
tokens.append(self._tok(AQLTokenType.BIND_VAR, '@' + self._read_ident(), line, col))
|
|
95
|
+
|
|
96
|
+
elif ch.isdigit():
|
|
97
|
+
tokens.append(self._read_number(line, col))
|
|
98
|
+
|
|
99
|
+
elif ch in ('"', "'", '`'):
|
|
100
|
+
tokens.append(self._read_string(line, col))
|
|
101
|
+
|
|
102
|
+
elif ch.isalpha() or ch == '_':
|
|
103
|
+
word = self._read_ident()
|
|
104
|
+
upper = word.upper()
|
|
105
|
+
kind = _KW.get(upper, AQLTokenType.IDENT)
|
|
106
|
+
tokens.append(self._tok(kind, word, line, col))
|
|
107
|
+
|
|
108
|
+
elif ch == '.' and self._peek(1) == '.':
|
|
109
|
+
self._advance(); self._advance()
|
|
110
|
+
tokens.append(self._tok(AQLTokenType.RANGE, '..', line, col))
|
|
111
|
+
|
|
112
|
+
elif ch == '.':
|
|
113
|
+
self._advance()
|
|
114
|
+
tokens.append(self._tok(AQLTokenType.DOT, '.', line, col))
|
|
115
|
+
|
|
116
|
+
elif ch == '=' and self._peek(1) == '~':
|
|
117
|
+
self._advance(); self._advance()
|
|
118
|
+
tokens.append(self._tok(AQLTokenType.REGEX_MATCH, '=~', line, col))
|
|
119
|
+
|
|
120
|
+
elif ch == '!' and self._peek(1) == '~':
|
|
121
|
+
self._advance(); self._advance()
|
|
122
|
+
tokens.append(self._tok(AQLTokenType.REGEX_NOTMATCH, '!~', line, col))
|
|
123
|
+
|
|
124
|
+
elif ch == '=' and self._peek(1) == '=':
|
|
125
|
+
self._advance(); self._advance()
|
|
126
|
+
tokens.append(self._tok(AQLTokenType.EQ, '==', line, col))
|
|
127
|
+
|
|
128
|
+
elif ch == '!' and self._peek(1) == '=':
|
|
129
|
+
self._advance(); self._advance()
|
|
130
|
+
tokens.append(self._tok(AQLTokenType.NEQ, '!=', line, col))
|
|
131
|
+
|
|
132
|
+
elif ch == '<' and self._peek(1) == '=':
|
|
133
|
+
self._advance(); self._advance()
|
|
134
|
+
tokens.append(self._tok(AQLTokenType.LTE, '<=', line, col))
|
|
135
|
+
|
|
136
|
+
elif ch == '>' and self._peek(1) == '=':
|
|
137
|
+
self._advance(); self._advance()
|
|
138
|
+
tokens.append(self._tok(AQLTokenType.GTE, '>=', line, col))
|
|
139
|
+
|
|
140
|
+
elif ch in '<>=!+-*/%,:()[]{}?':
|
|
141
|
+
m = {'<': AQLTokenType.LT, '>': AQLTokenType.GT, '=': AQLTokenType.ASSIGN,
|
|
142
|
+
'+': AQLTokenType.PLUS, '-': AQLTokenType.MINUS, '*': AQLTokenType.MUL,
|
|
143
|
+
'/': AQLTokenType.DIV, '%': AQLTokenType.MOD, ',': AQLTokenType.COMMA,
|
|
144
|
+
':': AQLTokenType.COLON, '(': AQLTokenType.LPAREN, ')': AQLTokenType.RPAREN,
|
|
145
|
+
'[': AQLTokenType.LBRACKET, ']': AQLTokenType.RBRACKET,
|
|
146
|
+
'{': AQLTokenType.LBRACE, '}': AQLTokenType.RBRACE, '?': AQLTokenType.QUESTION}
|
|
147
|
+
if ch in m:
|
|
148
|
+
self._advance()
|
|
149
|
+
tokens.append(self._tok(m[ch], ch, line, col))
|
|
150
|
+
else:
|
|
151
|
+
self._advance()
|
|
152
|
+
else:
|
|
153
|
+
self._advance()
|
|
154
|
+
|
|
155
|
+
tokens.append(AQLToken(AQLTokenType.EOF, '', self._line, self._col))
|
|
156
|
+
return tokens
|
|
157
|
+
|
|
158
|
+
def _read_ident(self) -> str:
|
|
159
|
+
start = self._pos
|
|
160
|
+
while self._pos < len(self._src) and (self._src[self._pos].isalnum() or self._src[self._pos] == '_'):
|
|
161
|
+
self._advance()
|
|
162
|
+
return self._src[start:self._pos]
|
|
163
|
+
|
|
164
|
+
def _read_number(self, line: int, col: int) -> AQLToken:
|
|
165
|
+
start = self._pos
|
|
166
|
+
while self._pos < len(self._src) and self._src[self._pos].isdigit():
|
|
167
|
+
self._advance()
|
|
168
|
+
if (self._pos < len(self._src) and self._src[self._pos] == '.' and
|
|
169
|
+
(self._pos + 1 >= len(self._src) or self._src[self._pos + 1] != '.')):
|
|
170
|
+
self._advance()
|
|
171
|
+
while self._pos < len(self._src) and self._src[self._pos].isdigit():
|
|
172
|
+
self._advance()
|
|
173
|
+
return AQLToken(AQLTokenType.FLOAT, self._src[start:self._pos], line, col)
|
|
174
|
+
return AQLToken(AQLTokenType.INT, self._src[start:self._pos], line, col)
|
|
175
|
+
|
|
176
|
+
def _read_string(self, line: int, col: int) -> AQLToken:
|
|
177
|
+
quote = self._advance()
|
|
178
|
+
chars = []
|
|
179
|
+
while self._pos < len(self._src):
|
|
180
|
+
ch = self._src[self._pos]
|
|
181
|
+
if ch == '\\' and quote != '`':
|
|
182
|
+
self._advance()
|
|
183
|
+
esc = self._advance()
|
|
184
|
+
chars.append({'n': '\n', 't': '\t', 'r': '\r', '\\': '\\',
|
|
185
|
+
'"': '"', "'": "'"}.get(esc, esc))
|
|
186
|
+
elif ch == quote:
|
|
187
|
+
self._advance(); break
|
|
188
|
+
else:
|
|
189
|
+
chars.append(self._advance())
|
|
190
|
+
return AQLToken(AQLTokenType.STRING, ''.join(chars), line, col)
|