inputlayer-client-dev 0.1.0.dev919__tar.gz → 0.1.0.dev921__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.
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/PKG-INFO +1 -1
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/pyproject.toml +1 -1
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/compiler.py +11 -6
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_compiler.py +19 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/.gitignore +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/LICENSE +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/README.md +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/01_quickstart.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/02_social_network.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/03_rag_pipeline.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/04_ecommerce.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/05_rbac.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/06_realtime_dashboard.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/07_dataframe_etl.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/08_session_rules.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/09_access_control.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/10_migrations.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/_common.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex01_retriever.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex02_vector.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex03_tool.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex04_lcel_chain.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex05_kg_building.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex06_explainable_rag.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex07_multihop.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex08_memory.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex09_access_control.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex10_multi_agent.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex11_anomaly.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex12_hallucination.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex13_guardrails.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex14_graphrag.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex15_caching.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex16_recommendation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/ex17_lineage.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langchain/runner.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/_common.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex01_reasoning_loop.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex02_investigation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex03_human_in_loop.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex04_branching_pipeline.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex05_self_correcting.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex06_collaborative_planning.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex07_event_correlation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex08_tool_selection.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex09_streaming_aggregation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex10_resumable_graph.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex11_memory.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/ex12_resumable_chat.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/langgraph/runner.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_ast.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_naming.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_protocol.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_proxy.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_sync.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/aggregations.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/auth.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/client.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/client_sync.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/connection.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/derived.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/exceptions.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/functions.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/index.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langchain/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langchain/params.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langchain/retriever.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langchain/tool.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langchain/vector_store.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/_checkpoint_serde.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/_checkpointer_mixin.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/_memory_helpers.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/_memory_mixin.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/_utils.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/checkpointer.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/memory.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/nodes.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/router.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/integrations/langgraph/state.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/knowledge_graph.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/autodetector.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/cli.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/errors.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/executor.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/loader.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/operations.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/recorder.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/state.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/migrations/writer.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/notifications.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/py.typed +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/relation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/result.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/session.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/types.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/__init__.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/_mock_checkpoint_kg.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/_mock_memory_kg.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/conftest.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_aggregations.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_ast.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_autodetector.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_checkpointer_core.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_checkpointer_lifecycle.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_checkpointer_list.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_checkpointer_validation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_cli.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_connection.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_derived.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_escape_iql.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_executor.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_functions.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_integration.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_kg_node.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_kg_router.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_langchain.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_langgraph_integration.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_loader.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_memory_core.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_memory_edge_cases.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_memory_helpers.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_migration_safety.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_naming.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_operations.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_protocol.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_proxy.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_relation.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_result.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_serde.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_state.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_sync.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_types.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_writer.py +0 -0
- {inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/uv.lock +0 -0
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/compiler.py
RENAMED
|
@@ -666,6 +666,17 @@ def compile_rule(
|
|
|
666
666
|
else:
|
|
667
667
|
head_parts.append(column_to_variable(col))
|
|
668
668
|
|
|
669
|
+
# Compile filter conditions BEFORE building body atoms, so every column
|
|
670
|
+
# the condition references is registered in the env and gets bound to a
|
|
671
|
+
# variable in its atom. Compiling them after produced atoms with `_` for
|
|
672
|
+
# condition-only columns while the condition referenced an unbound
|
|
673
|
+
# variable - which the engine accepts and silently satisfies, deriving
|
|
674
|
+
# wrong results (e.g. a tier == "gold" filter matching every row).
|
|
675
|
+
cond_parts: list[str] = []
|
|
676
|
+
if condition:
|
|
677
|
+
cond_parts = compile_bool_expr(condition, env)
|
|
678
|
+
cond_parts = [p for p in cond_parts if p]
|
|
679
|
+
|
|
669
680
|
# Build body atoms
|
|
670
681
|
body_atoms: list[str] = []
|
|
671
682
|
for rn, cls, alias in body_relations:
|
|
@@ -680,12 +691,6 @@ def compile_rule(
|
|
|
680
691
|
atom_parts.append("_")
|
|
681
692
|
body_atoms.append(f"{rn}({', '.join(atom_parts)})")
|
|
682
693
|
|
|
683
|
-
# Compile filter conditions
|
|
684
|
-
cond_parts: list[str] = []
|
|
685
|
-
if condition:
|
|
686
|
-
cond_parts = compile_bool_expr(condition, env)
|
|
687
|
-
cond_parts = [p for p in cond_parts if p]
|
|
688
|
-
|
|
689
694
|
all_body = body_atoms + cond_parts
|
|
690
695
|
prefix = "+" if persistent else ""
|
|
691
696
|
head_str = f"{prefix}{head_name}({', '.join(head_parts)})"
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_compiler.py
RENAMED
|
@@ -494,6 +494,25 @@ class TestCompileRule:
|
|
|
494
494
|
)
|
|
495
495
|
assert "+high_earner(Id, Name)" in result
|
|
496
496
|
assert "Salary > 100000" in result
|
|
497
|
+
# The condition column must be BOUND in the body atom. Emitting
|
|
498
|
+
# employee(Id, Name, _, _, _) alongside `Salary > 100000` leaves
|
|
499
|
+
# Salary unbound - the engine accepts that and silently satisfies
|
|
500
|
+
# the comparison, deriving wrong results.
|
|
501
|
+
assert "employee(Id, Name, _, Salary, _)" in result
|
|
502
|
+
|
|
503
|
+
def test_condition_only_column_is_bound(self):
|
|
504
|
+
# Regression: a column referenced ONLY by the where-condition (not
|
|
505
|
+
# selected into the head) must still be bound in its atom.
|
|
506
|
+
cond = Comparison("=", AstColumn("employee", "department"), Literal("eng"))
|
|
507
|
+
result = compile_rule(
|
|
508
|
+
"eng_member",
|
|
509
|
+
["name"],
|
|
510
|
+
{"name": AstColumn("employee", "name")},
|
|
511
|
+
[(Employee._resolve_name(), Employee, None)],
|
|
512
|
+
condition=cond,
|
|
513
|
+
persistent=True,
|
|
514
|
+
)
|
|
515
|
+
assert result == '+eng_member(Name) <- employee(_, Name, Department, _, _), Department = "eng"'
|
|
497
516
|
|
|
498
517
|
def test_recursive(self):
|
|
499
518
|
# reachable(Src, Dst) <- reachable(Src, Mid), edge(Mid, Dst)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/01_quickstart.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/04_ecommerce.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/05_rbac.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/examples/10_migrations.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
|
|
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
|
|
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
|
|
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
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/__init__.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_ast.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_naming.py
RENAMED
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_proxy.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/_sync.py
RENAMED
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/auth.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/derived.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/index.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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/py.typed
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/relation.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/result.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/session.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/src/inputlayer/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/_mock_memory_kg.py
RENAMED
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_aggregations.py
RENAMED
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_autodetector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_connection.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_derived.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_escape_iql.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_executor.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_functions.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_integration.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_kg_node.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_kg_router.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_langchain.py
RENAMED
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_loader.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_memory_core.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_naming.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_operations.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_protocol.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_proxy.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_relation.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_result.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_serde.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_state.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_sync.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_types.py
RENAMED
|
File without changes
|
{inputlayer_client_dev-0.1.0.dev919 → inputlayer_client_dev-0.1.0.dev921}/tests/test_writer.py
RENAMED
|
File without changes
|
|
File without changes
|