relationalai 0.12.13__py3-none-any.whl → 0.13.0.dev0__py3-none-any.whl
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.
- relationalai/__init__.py +1 -209
- relationalai/config/__init__.py +56 -0
- relationalai/config/config.py +289 -0
- relationalai/config/config_fields.py +86 -0
- relationalai/config/connections/__init__.py +46 -0
- relationalai/config/connections/base.py +23 -0
- relationalai/config/connections/duckdb.py +29 -0
- relationalai/config/connections/snowflake.py +243 -0
- relationalai/config/external/__init__.py +17 -0
- relationalai/config/external/dbt_converter.py +101 -0
- relationalai/config/external/dbt_models.py +93 -0
- relationalai/config/external/snowflake_converter.py +41 -0
- relationalai/config/external/snowflake_models.py +85 -0
- relationalai/config/external/utils.py +19 -0
- relationalai/semantics/__init__.py +146 -22
- relationalai/semantics/backends/lqp/annotations.py +11 -0
- relationalai/semantics/backends/sql/sql_compiler.py +327 -0
- relationalai/semantics/frontend/base.py +1707 -0
- relationalai/semantics/frontend/core.py +179 -0
- relationalai/semantics/frontend/front_compiler.py +1313 -0
- relationalai/semantics/frontend/pprint.py +408 -0
- relationalai/semantics/metamodel/__init__.py +6 -40
- relationalai/semantics/metamodel/builtins.py +205 -769
- relationalai/semantics/metamodel/metamodel.py +437 -0
- relationalai/semantics/metamodel/metamodel_analyzer.py +519 -0
- relationalai/semantics/metamodel/pprint.py +412 -0
- relationalai/semantics/metamodel/rewriter.py +266 -0
- relationalai/semantics/metamodel/typer.py +1378 -0
- relationalai/semantics/std/__init__.py +60 -40
- relationalai/semantics/std/aggregates.py +149 -0
- relationalai/semantics/std/common.py +44 -0
- relationalai/semantics/std/constraints.py +37 -43
- relationalai/semantics/std/datetime.py +246 -135
- relationalai/semantics/std/decimals.py +45 -52
- relationalai/semantics/std/floats.py +13 -5
- relationalai/semantics/std/integers.py +26 -11
- relationalai/semantics/std/math.py +183 -112
- relationalai/semantics/std/numbers.py +86 -0
- relationalai/semantics/std/re.py +80 -62
- relationalai/semantics/std/strings.py +117 -60
- relationalai/shims/executor.py +147 -0
- relationalai/shims/helpers.py +126 -0
- relationalai/shims/hoister.py +221 -0
- relationalai/shims/mm2v0.py +1290 -0
- relationalai/tools/cli/__init__.py +6 -0
- relationalai/tools/cli/cli.py +90 -0
- relationalai/tools/cli/components/__init__.py +5 -0
- relationalai/tools/cli/components/progress_reader.py +1524 -0
- relationalai/tools/cli/components/utils.py +58 -0
- relationalai/tools/cli/config_template.py +45 -0
- relationalai/tools/cli/dev.py +19 -0
- relationalai/tools/debugger.py +289 -183
- relationalai/tools/typer_debugger.py +93 -0
- relationalai/util/dataclasses.py +43 -0
- relationalai/util/docutils.py +40 -0
- relationalai/util/error.py +199 -0
- relationalai/util/format.py +48 -106
- relationalai/util/naming.py +145 -0
- relationalai/util/python.py +35 -0
- relationalai/util/runtime.py +156 -0
- relationalai/util/schema.py +197 -0
- relationalai/util/source.py +185 -0
- relationalai/util/structures.py +163 -0
- relationalai/util/tracing.py +261 -0
- relationalai-0.13.0.dev0.dist-info/METADATA +46 -0
- relationalai-0.13.0.dev0.dist-info/RECORD +488 -0
- relationalai-0.13.0.dev0.dist-info/WHEEL +5 -0
- relationalai-0.13.0.dev0.dist-info/entry_points.txt +3 -0
- relationalai-0.13.0.dev0.dist-info/top_level.txt +2 -0
- v0/relationalai/__init__.py +216 -0
- v0/relationalai/clients/azure.py +477 -0
- v0/relationalai/clients/client.py +912 -0
- v0/relationalai/clients/config.py +673 -0
- v0/relationalai/clients/direct_access_client.py +118 -0
- v0/relationalai/clients/hash_util.py +31 -0
- v0/relationalai/clients/local.py +571 -0
- v0/relationalai/clients/profile_polling.py +73 -0
- v0/relationalai/clients/result_helpers.py +420 -0
- v0/relationalai/clients/snowflake.py +3869 -0
- v0/relationalai/clients/types.py +113 -0
- v0/relationalai/clients/use_index_poller.py +980 -0
- v0/relationalai/clients/util.py +356 -0
- v0/relationalai/debugging.py +389 -0
- v0/relationalai/dsl.py +1749 -0
- v0/relationalai/early_access/builder/__init__.py +30 -0
- v0/relationalai/early_access/builder/builder/__init__.py +35 -0
- v0/relationalai/early_access/builder/snowflake/__init__.py +12 -0
- v0/relationalai/early_access/builder/std/__init__.py +25 -0
- v0/relationalai/early_access/builder/std/decimals/__init__.py +12 -0
- v0/relationalai/early_access/builder/std/integers/__init__.py +12 -0
- v0/relationalai/early_access/builder/std/math/__init__.py +12 -0
- v0/relationalai/early_access/builder/std/strings/__init__.py +14 -0
- v0/relationalai/early_access/devtools/__init__.py +12 -0
- v0/relationalai/early_access/devtools/benchmark_lqp/__init__.py +12 -0
- v0/relationalai/early_access/devtools/extract_lqp/__init__.py +12 -0
- v0/relationalai/early_access/dsl/adapters/orm/adapter_qb.py +427 -0
- v0/relationalai/early_access/dsl/adapters/orm/parser.py +636 -0
- v0/relationalai/early_access/dsl/adapters/owl/adapter.py +176 -0
- v0/relationalai/early_access/dsl/adapters/owl/parser.py +160 -0
- v0/relationalai/early_access/dsl/bindings/common.py +402 -0
- v0/relationalai/early_access/dsl/bindings/csv.py +170 -0
- v0/relationalai/early_access/dsl/bindings/legacy/binding_models.py +143 -0
- v0/relationalai/early_access/dsl/bindings/snowflake.py +64 -0
- v0/relationalai/early_access/dsl/codegen/binder.py +411 -0
- v0/relationalai/early_access/dsl/codegen/common.py +79 -0
- v0/relationalai/early_access/dsl/codegen/helpers.py +23 -0
- v0/relationalai/early_access/dsl/codegen/relations.py +700 -0
- v0/relationalai/early_access/dsl/codegen/weaver.py +417 -0
- v0/relationalai/early_access/dsl/core/builders/__init__.py +47 -0
- v0/relationalai/early_access/dsl/core/builders/logic.py +19 -0
- v0/relationalai/early_access/dsl/core/builders/scalar_constraint.py +11 -0
- v0/relationalai/early_access/dsl/core/constraints/predicate/atomic.py +455 -0
- v0/relationalai/early_access/dsl/core/constraints/predicate/universal.py +73 -0
- v0/relationalai/early_access/dsl/core/constraints/scalar.py +310 -0
- v0/relationalai/early_access/dsl/core/context.py +13 -0
- v0/relationalai/early_access/dsl/core/cset.py +132 -0
- v0/relationalai/early_access/dsl/core/exprs/__init__.py +116 -0
- v0/relationalai/early_access/dsl/core/exprs/relational.py +18 -0
- v0/relationalai/early_access/dsl/core/exprs/scalar.py +412 -0
- v0/relationalai/early_access/dsl/core/instances.py +44 -0
- v0/relationalai/early_access/dsl/core/logic/__init__.py +193 -0
- v0/relationalai/early_access/dsl/core/logic/aggregation.py +98 -0
- v0/relationalai/early_access/dsl/core/logic/exists.py +223 -0
- v0/relationalai/early_access/dsl/core/logic/helper.py +163 -0
- v0/relationalai/early_access/dsl/core/namespaces.py +32 -0
- v0/relationalai/early_access/dsl/core/relations.py +276 -0
- v0/relationalai/early_access/dsl/core/rules.py +112 -0
- v0/relationalai/early_access/dsl/core/std/__init__.py +45 -0
- v0/relationalai/early_access/dsl/core/temporal/recall.py +6 -0
- v0/relationalai/early_access/dsl/core/types/__init__.py +270 -0
- v0/relationalai/early_access/dsl/core/types/concepts.py +128 -0
- v0/relationalai/early_access/dsl/core/types/constrained/__init__.py +267 -0
- v0/relationalai/early_access/dsl/core/types/constrained/nominal.py +143 -0
- v0/relationalai/early_access/dsl/core/types/constrained/subtype.py +124 -0
- v0/relationalai/early_access/dsl/core/types/standard.py +92 -0
- v0/relationalai/early_access/dsl/core/types/unconstrained.py +50 -0
- v0/relationalai/early_access/dsl/core/types/variables.py +203 -0
- v0/relationalai/early_access/dsl/ir/compiler.py +318 -0
- v0/relationalai/early_access/dsl/ir/executor.py +260 -0
- v0/relationalai/early_access/dsl/ontologies/constraints.py +88 -0
- v0/relationalai/early_access/dsl/ontologies/export.py +30 -0
- v0/relationalai/early_access/dsl/ontologies/models.py +453 -0
- v0/relationalai/early_access/dsl/ontologies/python_printer.py +303 -0
- v0/relationalai/early_access/dsl/ontologies/readings.py +60 -0
- v0/relationalai/early_access/dsl/ontologies/relationships.py +322 -0
- v0/relationalai/early_access/dsl/ontologies/roles.py +87 -0
- v0/relationalai/early_access/dsl/ontologies/subtyping.py +55 -0
- v0/relationalai/early_access/dsl/orm/constraints.py +438 -0
- v0/relationalai/early_access/dsl/orm/measures/dimensions.py +200 -0
- v0/relationalai/early_access/dsl/orm/measures/initializer.py +16 -0
- v0/relationalai/early_access/dsl/orm/measures/measure_rules.py +275 -0
- v0/relationalai/early_access/dsl/orm/measures/measures.py +299 -0
- v0/relationalai/early_access/dsl/orm/measures/role_exprs.py +268 -0
- v0/relationalai/early_access/dsl/orm/models.py +256 -0
- v0/relationalai/early_access/dsl/orm/object_oriented_printer.py +344 -0
- v0/relationalai/early_access/dsl/orm/printer.py +469 -0
- v0/relationalai/early_access/dsl/orm/reasoners.py +480 -0
- v0/relationalai/early_access/dsl/orm/relations.py +19 -0
- v0/relationalai/early_access/dsl/orm/relationships.py +251 -0
- v0/relationalai/early_access/dsl/orm/types.py +42 -0
- v0/relationalai/early_access/dsl/orm/utils.py +79 -0
- v0/relationalai/early_access/dsl/orm/verb.py +204 -0
- v0/relationalai/early_access/dsl/physical_metadata/tables.py +133 -0
- v0/relationalai/early_access/dsl/relations.py +170 -0
- v0/relationalai/early_access/dsl/rulesets.py +69 -0
- v0/relationalai/early_access/dsl/schemas/__init__.py +450 -0
- v0/relationalai/early_access/dsl/schemas/builder.py +48 -0
- v0/relationalai/early_access/dsl/schemas/comp_names.py +51 -0
- v0/relationalai/early_access/dsl/schemas/components.py +203 -0
- v0/relationalai/early_access/dsl/schemas/contexts.py +156 -0
- v0/relationalai/early_access/dsl/schemas/exprs.py +89 -0
- v0/relationalai/early_access/dsl/schemas/fragments.py +464 -0
- v0/relationalai/early_access/dsl/serialization.py +79 -0
- v0/relationalai/early_access/dsl/serialize/exporter.py +163 -0
- v0/relationalai/early_access/dsl/snow/api.py +104 -0
- v0/relationalai/early_access/dsl/snow/common.py +76 -0
- v0/relationalai/early_access/dsl/state_mgmt/__init__.py +129 -0
- v0/relationalai/early_access/dsl/state_mgmt/state_charts.py +125 -0
- v0/relationalai/early_access/dsl/state_mgmt/transitions.py +130 -0
- v0/relationalai/early_access/dsl/types/__init__.py +40 -0
- v0/relationalai/early_access/dsl/types/concepts.py +12 -0
- v0/relationalai/early_access/dsl/types/entities.py +135 -0
- v0/relationalai/early_access/dsl/types/values.py +17 -0
- v0/relationalai/early_access/dsl/utils.py +102 -0
- v0/relationalai/early_access/graphs/__init__.py +13 -0
- v0/relationalai/early_access/lqp/__init__.py +12 -0
- v0/relationalai/early_access/lqp/compiler/__init__.py +12 -0
- v0/relationalai/early_access/lqp/constructors/__init__.py +18 -0
- v0/relationalai/early_access/lqp/executor/__init__.py +12 -0
- v0/relationalai/early_access/lqp/ir/__init__.py +12 -0
- v0/relationalai/early_access/lqp/passes/__init__.py +12 -0
- v0/relationalai/early_access/lqp/pragmas/__init__.py +12 -0
- v0/relationalai/early_access/lqp/primitives/__init__.py +12 -0
- v0/relationalai/early_access/lqp/types/__init__.py +12 -0
- v0/relationalai/early_access/lqp/utils/__init__.py +12 -0
- v0/relationalai/early_access/lqp/validators/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/__init__.py +58 -0
- v0/relationalai/early_access/metamodel/builtins/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/compiler/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/dependency/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/factory/__init__.py +17 -0
- v0/relationalai/early_access/metamodel/helpers/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/ir/__init__.py +14 -0
- v0/relationalai/early_access/metamodel/rewrite/__init__.py +7 -0
- v0/relationalai/early_access/metamodel/typer/__init__.py +3 -0
- v0/relationalai/early_access/metamodel/typer/typer/__init__.py +12 -0
- v0/relationalai/early_access/metamodel/types/__init__.py +15 -0
- v0/relationalai/early_access/metamodel/util/__init__.py +15 -0
- v0/relationalai/early_access/metamodel/visitor/__init__.py +12 -0
- v0/relationalai/early_access/rel/__init__.py +12 -0
- v0/relationalai/early_access/rel/executor/__init__.py +12 -0
- v0/relationalai/early_access/rel/rel_utils/__init__.py +12 -0
- v0/relationalai/early_access/rel/rewrite/__init__.py +7 -0
- v0/relationalai/early_access/solvers/__init__.py +19 -0
- v0/relationalai/early_access/sql/__init__.py +11 -0
- v0/relationalai/early_access/sql/executor/__init__.py +3 -0
- v0/relationalai/early_access/sql/rewrite/__init__.py +3 -0
- v0/relationalai/early_access/tests/logging/__init__.py +12 -0
- v0/relationalai/early_access/tests/test_snapshot_base/__init__.py +12 -0
- v0/relationalai/early_access/tests/utils/__init__.py +12 -0
- v0/relationalai/environments/__init__.py +35 -0
- v0/relationalai/environments/base.py +381 -0
- v0/relationalai/environments/colab.py +14 -0
- v0/relationalai/environments/generic.py +71 -0
- v0/relationalai/environments/ipython.py +68 -0
- v0/relationalai/environments/jupyter.py +9 -0
- v0/relationalai/environments/snowbook.py +169 -0
- v0/relationalai/errors.py +2455 -0
- v0/relationalai/experimental/SF.py +38 -0
- v0/relationalai/experimental/inspect.py +47 -0
- v0/relationalai/experimental/pathfinder/__init__.py +158 -0
- v0/relationalai/experimental/pathfinder/api.py +160 -0
- v0/relationalai/experimental/pathfinder/automaton.py +584 -0
- v0/relationalai/experimental/pathfinder/bridge.py +226 -0
- v0/relationalai/experimental/pathfinder/compiler.py +416 -0
- v0/relationalai/experimental/pathfinder/datalog.py +214 -0
- v0/relationalai/experimental/pathfinder/diagnostics.py +56 -0
- v0/relationalai/experimental/pathfinder/filter.py +236 -0
- v0/relationalai/experimental/pathfinder/glushkov.py +439 -0
- v0/relationalai/experimental/pathfinder/options.py +265 -0
- v0/relationalai/experimental/pathfinder/rpq.py +344 -0
- v0/relationalai/experimental/pathfinder/transition.py +200 -0
- v0/relationalai/experimental/pathfinder/utils.py +26 -0
- v0/relationalai/experimental/paths/api.py +143 -0
- v0/relationalai/experimental/paths/benchmarks/grid_graph.py +37 -0
- v0/relationalai/experimental/paths/examples/basic_example.py +40 -0
- v0/relationalai/experimental/paths/examples/minimal_engine_warmup.py +3 -0
- v0/relationalai/experimental/paths/examples/movie_example.py +77 -0
- v0/relationalai/experimental/paths/examples/paths_benchmark.py +115 -0
- v0/relationalai/experimental/paths/examples/paths_example.py +116 -0
- v0/relationalai/experimental/paths/examples/pattern_to_automaton.py +28 -0
- v0/relationalai/experimental/paths/find_paths_via_automaton.py +85 -0
- v0/relationalai/experimental/paths/graph.py +185 -0
- v0/relationalai/experimental/paths/path_algorithms/find_paths.py +280 -0
- v0/relationalai/experimental/paths/path_algorithms/one_sided_ball_repetition.py +26 -0
- v0/relationalai/experimental/paths/path_algorithms/one_sided_ball_upto.py +111 -0
- v0/relationalai/experimental/paths/path_algorithms/single.py +59 -0
- v0/relationalai/experimental/paths/path_algorithms/two_sided_balls_repetition.py +39 -0
- v0/relationalai/experimental/paths/path_algorithms/two_sided_balls_upto.py +103 -0
- v0/relationalai/experimental/paths/path_algorithms/usp-old.py +130 -0
- v0/relationalai/experimental/paths/path_algorithms/usp-tuple.py +183 -0
- v0/relationalai/experimental/paths/path_algorithms/usp.py +150 -0
- v0/relationalai/experimental/paths/product_graph.py +93 -0
- v0/relationalai/experimental/paths/rpq/automaton.py +584 -0
- v0/relationalai/experimental/paths/rpq/diagnostics.py +56 -0
- v0/relationalai/experimental/paths/rpq/rpq.py +378 -0
- v0/relationalai/experimental/paths/tests/tests_limit_sp_max_length.py +90 -0
- v0/relationalai/experimental/paths/tests/tests_limit_sp_multiple.py +119 -0
- v0/relationalai/experimental/paths/tests/tests_limit_sp_single.py +104 -0
- v0/relationalai/experimental/paths/tests/tests_limit_walks_multiple.py +113 -0
- v0/relationalai/experimental/paths/tests/tests_limit_walks_single.py +149 -0
- v0/relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_multiple.py +70 -0
- v0/relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_single.py +64 -0
- v0/relationalai/experimental/paths/tests/tests_one_sided_ball_upto_multiple.py +115 -0
- v0/relationalai/experimental/paths/tests/tests_one_sided_ball_upto_single.py +75 -0
- v0/relationalai/experimental/paths/tests/tests_single_paths.py +152 -0
- v0/relationalai/experimental/paths/tests/tests_single_walks.py +208 -0
- v0/relationalai/experimental/paths/tests/tests_single_walks_undirected.py +297 -0
- v0/relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_multiple.py +107 -0
- v0/relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_single.py +76 -0
- v0/relationalai/experimental/paths/tests/tests_two_sided_balls_upto_multiple.py +76 -0
- v0/relationalai/experimental/paths/tests/tests_two_sided_balls_upto_single.py +110 -0
- v0/relationalai/experimental/paths/tests/tests_usp_nsp_multiple.py +229 -0
- v0/relationalai/experimental/paths/tests/tests_usp_nsp_single.py +108 -0
- v0/relationalai/experimental/paths/tree_agg.py +168 -0
- v0/relationalai/experimental/paths/utilities/iterators.py +27 -0
- v0/relationalai/experimental/paths/utilities/prefix_sum.py +91 -0
- v0/relationalai/experimental/solvers.py +1087 -0
- v0/relationalai/loaders/__init__.py +0 -0
- v0/relationalai/loaders/csv.py +195 -0
- v0/relationalai/loaders/loader.py +177 -0
- v0/relationalai/loaders/types.py +23 -0
- v0/relationalai/rel_emitter.py +373 -0
- v0/relationalai/rel_utils.py +185 -0
- v0/relationalai/semantics/__init__.py +29 -0
- v0/relationalai/semantics/devtools/benchmark_lqp.py +536 -0
- v0/relationalai/semantics/devtools/compilation_manager.py +294 -0
- v0/relationalai/semantics/devtools/extract_lqp.py +110 -0
- v0/relationalai/semantics/internal/internal.py +3785 -0
- v0/relationalai/semantics/internal/snowflake.py +324 -0
- v0/relationalai/semantics/lqp/builtins.py +16 -0
- v0/relationalai/semantics/lqp/compiler.py +22 -0
- v0/relationalai/semantics/lqp/constructors.py +68 -0
- v0/relationalai/semantics/lqp/executor.py +469 -0
- v0/relationalai/semantics/lqp/intrinsics.py +24 -0
- v0/relationalai/semantics/lqp/model2lqp.py +839 -0
- v0/relationalai/semantics/lqp/passes.py +680 -0
- v0/relationalai/semantics/lqp/primitives.py +252 -0
- v0/relationalai/semantics/lqp/result_helpers.py +202 -0
- v0/relationalai/semantics/lqp/rewrite/annotate_constraints.py +57 -0
- v0/relationalai/semantics/lqp/rewrite/cdc.py +216 -0
- v0/relationalai/semantics/lqp/rewrite/extract_common.py +338 -0
- v0/relationalai/semantics/lqp/rewrite/extract_keys.py +449 -0
- v0/relationalai/semantics/lqp/rewrite/function_annotations.py +114 -0
- v0/relationalai/semantics/lqp/rewrite/functional_dependencies.py +314 -0
- v0/relationalai/semantics/lqp/rewrite/quantify_vars.py +296 -0
- v0/relationalai/semantics/lqp/rewrite/splinter.py +76 -0
- v0/relationalai/semantics/lqp/types.py +101 -0
- v0/relationalai/semantics/lqp/utils.py +160 -0
- v0/relationalai/semantics/lqp/validators.py +57 -0
- v0/relationalai/semantics/metamodel/__init__.py +40 -0
- v0/relationalai/semantics/metamodel/builtins.py +774 -0
- v0/relationalai/semantics/metamodel/compiler.py +133 -0
- v0/relationalai/semantics/metamodel/dependency.py +862 -0
- v0/relationalai/semantics/metamodel/executor.py +61 -0
- v0/relationalai/semantics/metamodel/factory.py +287 -0
- v0/relationalai/semantics/metamodel/helpers.py +361 -0
- v0/relationalai/semantics/metamodel/rewrite/discharge_constraints.py +39 -0
- v0/relationalai/semantics/metamodel/rewrite/dnf_union_splitter.py +210 -0
- v0/relationalai/semantics/metamodel/rewrite/extract_nested_logicals.py +78 -0
- v0/relationalai/semantics/metamodel/rewrite/flatten.py +549 -0
- v0/relationalai/semantics/metamodel/rewrite/format_outputs.py +165 -0
- v0/relationalai/semantics/metamodel/typer/checker.py +353 -0
- v0/relationalai/semantics/metamodel/typer/typer.py +1395 -0
- v0/relationalai/semantics/reasoners/__init__.py +10 -0
- v0/relationalai/semantics/reasoners/graph/__init__.py +37 -0
- v0/relationalai/semantics/reasoners/graph/core.py +9020 -0
- v0/relationalai/semantics/reasoners/optimization/__init__.py +68 -0
- v0/relationalai/semantics/reasoners/optimization/common.py +88 -0
- v0/relationalai/semantics/reasoners/optimization/solvers_dev.py +568 -0
- v0/relationalai/semantics/reasoners/optimization/solvers_pb.py +1163 -0
- v0/relationalai/semantics/rel/builtins.py +40 -0
- v0/relationalai/semantics/rel/compiler.py +989 -0
- v0/relationalai/semantics/rel/executor.py +359 -0
- v0/relationalai/semantics/rel/rel.py +482 -0
- v0/relationalai/semantics/rel/rel_utils.py +276 -0
- v0/relationalai/semantics/snowflake/__init__.py +3 -0
- v0/relationalai/semantics/sql/compiler.py +2503 -0
- v0/relationalai/semantics/sql/executor/duck_db.py +52 -0
- v0/relationalai/semantics/sql/executor/result_helpers.py +64 -0
- v0/relationalai/semantics/sql/executor/snowflake.py +145 -0
- v0/relationalai/semantics/sql/rewrite/denormalize.py +222 -0
- v0/relationalai/semantics/sql/rewrite/double_negation.py +49 -0
- v0/relationalai/semantics/sql/rewrite/recursive_union.py +127 -0
- v0/relationalai/semantics/sql/rewrite/sort_output_query.py +246 -0
- v0/relationalai/semantics/sql/sql.py +504 -0
- v0/relationalai/semantics/std/__init__.py +54 -0
- v0/relationalai/semantics/std/constraints.py +43 -0
- v0/relationalai/semantics/std/datetime.py +363 -0
- v0/relationalai/semantics/std/decimals.py +62 -0
- v0/relationalai/semantics/std/floats.py +7 -0
- v0/relationalai/semantics/std/integers.py +22 -0
- v0/relationalai/semantics/std/math.py +141 -0
- v0/relationalai/semantics/std/pragmas.py +11 -0
- v0/relationalai/semantics/std/re.py +83 -0
- v0/relationalai/semantics/std/std.py +14 -0
- v0/relationalai/semantics/std/strings.py +63 -0
- v0/relationalai/semantics/tests/__init__.py +0 -0
- v0/relationalai/semantics/tests/test_snapshot_abstract.py +143 -0
- v0/relationalai/semantics/tests/test_snapshot_base.py +9 -0
- v0/relationalai/semantics/tests/utils.py +46 -0
- v0/relationalai/std/__init__.py +70 -0
- v0/relationalai/tools/__init__.py +0 -0
- v0/relationalai/tools/cli.py +1940 -0
- v0/relationalai/tools/cli_controls.py +1826 -0
- v0/relationalai/tools/cli_helpers.py +390 -0
- v0/relationalai/tools/debugger.py +183 -0
- v0/relationalai/tools/debugger_client.py +109 -0
- v0/relationalai/tools/debugger_server.py +302 -0
- v0/relationalai/tools/dev.py +685 -0
- v0/relationalai/tools/qb_debugger.py +425 -0
- v0/relationalai/util/clean_up_databases.py +95 -0
- v0/relationalai/util/format.py +123 -0
- v0/relationalai/util/list_databases.py +9 -0
- v0/relationalai/util/otel_configuration.py +25 -0
- v0/relationalai/util/otel_handler.py +484 -0
- v0/relationalai/util/snowflake_handler.py +88 -0
- v0/relationalai/util/span_format_test.py +43 -0
- v0/relationalai/util/span_tracker.py +207 -0
- v0/relationalai/util/spans_file_handler.py +72 -0
- v0/relationalai/util/tracing_handler.py +34 -0
- frontend/debugger/dist/.gitignore +0 -2
- frontend/debugger/dist/assets/favicon-Dy0ZgA6N.png +0 -0
- frontend/debugger/dist/assets/index-Cssla-O7.js +0 -208
- frontend/debugger/dist/assets/index-DlHsYx1V.css +0 -9
- frontend/debugger/dist/index.html +0 -17
- relationalai/clients/azure.py +0 -477
- relationalai/clients/client.py +0 -912
- relationalai/clients/config.py +0 -673
- relationalai/clients/direct_access_client.py +0 -118
- relationalai/clients/export_procedure.py.jinja +0 -249
- relationalai/clients/hash_util.py +0 -31
- relationalai/clients/local.py +0 -571
- relationalai/clients/profile_polling.py +0 -73
- relationalai/clients/result_helpers.py +0 -420
- relationalai/clients/snowflake.py +0 -3869
- relationalai/clients/types.py +0 -113
- relationalai/clients/use_index_poller.py +0 -980
- relationalai/clients/util.py +0 -356
- relationalai/debugging.py +0 -389
- relationalai/dsl.py +0 -1749
- relationalai/early_access/builder/__init__.py +0 -30
- relationalai/early_access/builder/builder/__init__.py +0 -35
- relationalai/early_access/builder/snowflake/__init__.py +0 -12
- relationalai/early_access/builder/std/__init__.py +0 -25
- relationalai/early_access/builder/std/decimals/__init__.py +0 -12
- relationalai/early_access/builder/std/integers/__init__.py +0 -12
- relationalai/early_access/builder/std/math/__init__.py +0 -12
- relationalai/early_access/builder/std/strings/__init__.py +0 -14
- relationalai/early_access/devtools/__init__.py +0 -12
- relationalai/early_access/devtools/benchmark_lqp/__init__.py +0 -12
- relationalai/early_access/devtools/extract_lqp/__init__.py +0 -12
- relationalai/early_access/dsl/adapters/orm/adapter_qb.py +0 -427
- relationalai/early_access/dsl/adapters/orm/parser.py +0 -636
- relationalai/early_access/dsl/adapters/owl/adapter.py +0 -176
- relationalai/early_access/dsl/adapters/owl/parser.py +0 -160
- relationalai/early_access/dsl/bindings/common.py +0 -402
- relationalai/early_access/dsl/bindings/csv.py +0 -170
- relationalai/early_access/dsl/bindings/legacy/binding_models.py +0 -143
- relationalai/early_access/dsl/bindings/snowflake.py +0 -64
- relationalai/early_access/dsl/codegen/binder.py +0 -411
- relationalai/early_access/dsl/codegen/common.py +0 -79
- relationalai/early_access/dsl/codegen/helpers.py +0 -23
- relationalai/early_access/dsl/codegen/relations.py +0 -700
- relationalai/early_access/dsl/codegen/weaver.py +0 -417
- relationalai/early_access/dsl/core/builders/__init__.py +0 -47
- relationalai/early_access/dsl/core/builders/logic.py +0 -19
- relationalai/early_access/dsl/core/builders/scalar_constraint.py +0 -11
- relationalai/early_access/dsl/core/constraints/predicate/atomic.py +0 -455
- relationalai/early_access/dsl/core/constraints/predicate/universal.py +0 -73
- relationalai/early_access/dsl/core/constraints/scalar.py +0 -310
- relationalai/early_access/dsl/core/context.py +0 -13
- relationalai/early_access/dsl/core/cset.py +0 -132
- relationalai/early_access/dsl/core/exprs/__init__.py +0 -116
- relationalai/early_access/dsl/core/exprs/relational.py +0 -18
- relationalai/early_access/dsl/core/exprs/scalar.py +0 -412
- relationalai/early_access/dsl/core/instances.py +0 -44
- relationalai/early_access/dsl/core/logic/__init__.py +0 -193
- relationalai/early_access/dsl/core/logic/aggregation.py +0 -98
- relationalai/early_access/dsl/core/logic/exists.py +0 -223
- relationalai/early_access/dsl/core/logic/helper.py +0 -163
- relationalai/early_access/dsl/core/namespaces.py +0 -32
- relationalai/early_access/dsl/core/relations.py +0 -276
- relationalai/early_access/dsl/core/rules.py +0 -112
- relationalai/early_access/dsl/core/std/__init__.py +0 -45
- relationalai/early_access/dsl/core/temporal/recall.py +0 -6
- relationalai/early_access/dsl/core/types/__init__.py +0 -270
- relationalai/early_access/dsl/core/types/concepts.py +0 -128
- relationalai/early_access/dsl/core/types/constrained/__init__.py +0 -267
- relationalai/early_access/dsl/core/types/constrained/nominal.py +0 -143
- relationalai/early_access/dsl/core/types/constrained/subtype.py +0 -124
- relationalai/early_access/dsl/core/types/standard.py +0 -92
- relationalai/early_access/dsl/core/types/unconstrained.py +0 -50
- relationalai/early_access/dsl/core/types/variables.py +0 -203
- relationalai/early_access/dsl/ir/compiler.py +0 -318
- relationalai/early_access/dsl/ir/executor.py +0 -260
- relationalai/early_access/dsl/ontologies/constraints.py +0 -88
- relationalai/early_access/dsl/ontologies/export.py +0 -30
- relationalai/early_access/dsl/ontologies/models.py +0 -453
- relationalai/early_access/dsl/ontologies/python_printer.py +0 -303
- relationalai/early_access/dsl/ontologies/readings.py +0 -60
- relationalai/early_access/dsl/ontologies/relationships.py +0 -322
- relationalai/early_access/dsl/ontologies/roles.py +0 -87
- relationalai/early_access/dsl/ontologies/subtyping.py +0 -55
- relationalai/early_access/dsl/orm/constraints.py +0 -438
- relationalai/early_access/dsl/orm/measures/dimensions.py +0 -200
- relationalai/early_access/dsl/orm/measures/initializer.py +0 -16
- relationalai/early_access/dsl/orm/measures/measure_rules.py +0 -275
- relationalai/early_access/dsl/orm/measures/measures.py +0 -299
- relationalai/early_access/dsl/orm/measures/role_exprs.py +0 -268
- relationalai/early_access/dsl/orm/models.py +0 -256
- relationalai/early_access/dsl/orm/object_oriented_printer.py +0 -344
- relationalai/early_access/dsl/orm/printer.py +0 -469
- relationalai/early_access/dsl/orm/reasoners.py +0 -480
- relationalai/early_access/dsl/orm/relations.py +0 -19
- relationalai/early_access/dsl/orm/relationships.py +0 -251
- relationalai/early_access/dsl/orm/types.py +0 -42
- relationalai/early_access/dsl/orm/utils.py +0 -79
- relationalai/early_access/dsl/orm/verb.py +0 -204
- relationalai/early_access/dsl/physical_metadata/tables.py +0 -133
- relationalai/early_access/dsl/relations.py +0 -170
- relationalai/early_access/dsl/rulesets.py +0 -69
- relationalai/early_access/dsl/schemas/__init__.py +0 -450
- relationalai/early_access/dsl/schemas/builder.py +0 -48
- relationalai/early_access/dsl/schemas/comp_names.py +0 -51
- relationalai/early_access/dsl/schemas/components.py +0 -203
- relationalai/early_access/dsl/schemas/contexts.py +0 -156
- relationalai/early_access/dsl/schemas/exprs.py +0 -89
- relationalai/early_access/dsl/schemas/fragments.py +0 -464
- relationalai/early_access/dsl/serialization.py +0 -79
- relationalai/early_access/dsl/serialize/exporter.py +0 -163
- relationalai/early_access/dsl/snow/api.py +0 -104
- relationalai/early_access/dsl/snow/common.py +0 -76
- relationalai/early_access/dsl/state_mgmt/__init__.py +0 -129
- relationalai/early_access/dsl/state_mgmt/state_charts.py +0 -125
- relationalai/early_access/dsl/state_mgmt/transitions.py +0 -130
- relationalai/early_access/dsl/types/__init__.py +0 -40
- relationalai/early_access/dsl/types/concepts.py +0 -12
- relationalai/early_access/dsl/types/entities.py +0 -135
- relationalai/early_access/dsl/types/values.py +0 -17
- relationalai/early_access/dsl/utils.py +0 -102
- relationalai/early_access/graphs/__init__.py +0 -13
- relationalai/early_access/lqp/__init__.py +0 -12
- relationalai/early_access/lqp/compiler/__init__.py +0 -12
- relationalai/early_access/lqp/constructors/__init__.py +0 -18
- relationalai/early_access/lqp/executor/__init__.py +0 -12
- relationalai/early_access/lqp/ir/__init__.py +0 -12
- relationalai/early_access/lqp/passes/__init__.py +0 -12
- relationalai/early_access/lqp/pragmas/__init__.py +0 -12
- relationalai/early_access/lqp/primitives/__init__.py +0 -12
- relationalai/early_access/lqp/types/__init__.py +0 -12
- relationalai/early_access/lqp/utils/__init__.py +0 -12
- relationalai/early_access/lqp/validators/__init__.py +0 -12
- relationalai/early_access/metamodel/__init__.py +0 -58
- relationalai/early_access/metamodel/builtins/__init__.py +0 -12
- relationalai/early_access/metamodel/compiler/__init__.py +0 -12
- relationalai/early_access/metamodel/dependency/__init__.py +0 -12
- relationalai/early_access/metamodel/factory/__init__.py +0 -17
- relationalai/early_access/metamodel/helpers/__init__.py +0 -12
- relationalai/early_access/metamodel/ir/__init__.py +0 -14
- relationalai/early_access/metamodel/rewrite/__init__.py +0 -7
- relationalai/early_access/metamodel/typer/__init__.py +0 -3
- relationalai/early_access/metamodel/typer/typer/__init__.py +0 -12
- relationalai/early_access/metamodel/types/__init__.py +0 -15
- relationalai/early_access/metamodel/util/__init__.py +0 -15
- relationalai/early_access/metamodel/visitor/__init__.py +0 -12
- relationalai/early_access/rel/__init__.py +0 -12
- relationalai/early_access/rel/executor/__init__.py +0 -12
- relationalai/early_access/rel/rel_utils/__init__.py +0 -12
- relationalai/early_access/rel/rewrite/__init__.py +0 -7
- relationalai/early_access/solvers/__init__.py +0 -19
- relationalai/early_access/sql/__init__.py +0 -11
- relationalai/early_access/sql/executor/__init__.py +0 -3
- relationalai/early_access/sql/rewrite/__init__.py +0 -3
- relationalai/early_access/tests/logging/__init__.py +0 -12
- relationalai/early_access/tests/test_snapshot_base/__init__.py +0 -12
- relationalai/early_access/tests/utils/__init__.py +0 -12
- relationalai/environments/__init__.py +0 -35
- relationalai/environments/base.py +0 -381
- relationalai/environments/colab.py +0 -14
- relationalai/environments/generic.py +0 -71
- relationalai/environments/ipython.py +0 -68
- relationalai/environments/jupyter.py +0 -9
- relationalai/environments/snowbook.py +0 -169
- relationalai/errors.py +0 -2455
- relationalai/experimental/SF.py +0 -38
- relationalai/experimental/inspect.py +0 -47
- relationalai/experimental/pathfinder/__init__.py +0 -158
- relationalai/experimental/pathfinder/api.py +0 -160
- relationalai/experimental/pathfinder/automaton.py +0 -584
- relationalai/experimental/pathfinder/bridge.py +0 -226
- relationalai/experimental/pathfinder/compiler.py +0 -416
- relationalai/experimental/pathfinder/datalog.py +0 -214
- relationalai/experimental/pathfinder/diagnostics.py +0 -56
- relationalai/experimental/pathfinder/filter.py +0 -236
- relationalai/experimental/pathfinder/glushkov.py +0 -439
- relationalai/experimental/pathfinder/options.py +0 -265
- relationalai/experimental/pathfinder/pathfinder-v0.7.0.rel +0 -1951
- relationalai/experimental/pathfinder/rpq.py +0 -344
- relationalai/experimental/pathfinder/transition.py +0 -200
- relationalai/experimental/pathfinder/utils.py +0 -26
- relationalai/experimental/paths/README.md +0 -107
- relationalai/experimental/paths/api.py +0 -143
- relationalai/experimental/paths/benchmarks/grid_graph.py +0 -37
- relationalai/experimental/paths/code_organization.md +0 -2
- relationalai/experimental/paths/examples/Movies.ipynb +0 -16328
- relationalai/experimental/paths/examples/basic_example.py +0 -40
- relationalai/experimental/paths/examples/minimal_engine_warmup.py +0 -3
- relationalai/experimental/paths/examples/movie_example.py +0 -77
- relationalai/experimental/paths/examples/movies_data/actedin.csv +0 -193
- relationalai/experimental/paths/examples/movies_data/directed.csv +0 -45
- relationalai/experimental/paths/examples/movies_data/follows.csv +0 -7
- relationalai/experimental/paths/examples/movies_data/movies.csv +0 -39
- relationalai/experimental/paths/examples/movies_data/person.csv +0 -134
- relationalai/experimental/paths/examples/movies_data/produced.csv +0 -16
- relationalai/experimental/paths/examples/movies_data/ratings.csv +0 -10
- relationalai/experimental/paths/examples/movies_data/wrote.csv +0 -11
- relationalai/experimental/paths/examples/paths_benchmark.py +0 -115
- relationalai/experimental/paths/examples/paths_example.py +0 -116
- relationalai/experimental/paths/examples/pattern_to_automaton.py +0 -28
- relationalai/experimental/paths/find_paths_via_automaton.py +0 -85
- relationalai/experimental/paths/graph.py +0 -185
- relationalai/experimental/paths/path_algorithms/find_paths.py +0 -280
- relationalai/experimental/paths/path_algorithms/one_sided_ball_repetition.py +0 -26
- relationalai/experimental/paths/path_algorithms/one_sided_ball_upto.py +0 -111
- relationalai/experimental/paths/path_algorithms/single.py +0 -59
- relationalai/experimental/paths/path_algorithms/two_sided_balls_repetition.py +0 -39
- relationalai/experimental/paths/path_algorithms/two_sided_balls_upto.py +0 -103
- relationalai/experimental/paths/path_algorithms/usp-old.py +0 -130
- relationalai/experimental/paths/path_algorithms/usp-tuple.py +0 -183
- relationalai/experimental/paths/path_algorithms/usp.py +0 -150
- relationalai/experimental/paths/product_graph.py +0 -93
- relationalai/experimental/paths/rpq/automaton.py +0 -584
- relationalai/experimental/paths/rpq/diagnostics.py +0 -56
- relationalai/experimental/paths/rpq/rpq.py +0 -378
- relationalai/experimental/paths/tests/tests_limit_sp_max_length.py +0 -90
- relationalai/experimental/paths/tests/tests_limit_sp_multiple.py +0 -119
- relationalai/experimental/paths/tests/tests_limit_sp_single.py +0 -104
- relationalai/experimental/paths/tests/tests_limit_walks_multiple.py +0 -113
- relationalai/experimental/paths/tests/tests_limit_walks_single.py +0 -149
- relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_multiple.py +0 -70
- relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_single.py +0 -64
- relationalai/experimental/paths/tests/tests_one_sided_ball_upto_multiple.py +0 -115
- relationalai/experimental/paths/tests/tests_one_sided_ball_upto_single.py +0 -75
- relationalai/experimental/paths/tests/tests_single_paths.py +0 -152
- relationalai/experimental/paths/tests/tests_single_walks.py +0 -208
- relationalai/experimental/paths/tests/tests_single_walks_undirected.py +0 -297
- relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_multiple.py +0 -107
- relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_single.py +0 -76
- relationalai/experimental/paths/tests/tests_two_sided_balls_upto_multiple.py +0 -76
- relationalai/experimental/paths/tests/tests_two_sided_balls_upto_single.py +0 -110
- relationalai/experimental/paths/tests/tests_usp_nsp_multiple.py +0 -229
- relationalai/experimental/paths/tests/tests_usp_nsp_single.py +0 -108
- relationalai/experimental/paths/tree_agg.py +0 -168
- relationalai/experimental/paths/utilities/iterators.py +0 -27
- relationalai/experimental/paths/utilities/prefix_sum.py +0 -91
- relationalai/experimental/solvers.py +0 -1087
- relationalai/loaders/csv.py +0 -195
- relationalai/loaders/loader.py +0 -177
- relationalai/loaders/types.py +0 -23
- relationalai/rel_emitter.py +0 -373
- relationalai/rel_utils.py +0 -185
- relationalai/semantics/designs/query_builder/identify_by.md +0 -106
- relationalai/semantics/devtools/benchmark_lqp.py +0 -536
- relationalai/semantics/devtools/compilation_manager.py +0 -294
- relationalai/semantics/devtools/extract_lqp.py +0 -110
- relationalai/semantics/internal/internal.py +0 -3785
- relationalai/semantics/internal/snowflake.py +0 -324
- relationalai/semantics/lqp/README.md +0 -34
- relationalai/semantics/lqp/builtins.py +0 -16
- relationalai/semantics/lqp/compiler.py +0 -22
- relationalai/semantics/lqp/constructors.py +0 -68
- relationalai/semantics/lqp/executor.py +0 -469
- relationalai/semantics/lqp/intrinsics.py +0 -24
- relationalai/semantics/lqp/model2lqp.py +0 -839
- relationalai/semantics/lqp/passes.py +0 -680
- relationalai/semantics/lqp/primitives.py +0 -252
- relationalai/semantics/lqp/result_helpers.py +0 -202
- relationalai/semantics/lqp/rewrite/annotate_constraints.py +0 -57
- relationalai/semantics/lqp/rewrite/cdc.py +0 -216
- relationalai/semantics/lqp/rewrite/extract_common.py +0 -338
- relationalai/semantics/lqp/rewrite/extract_keys.py +0 -449
- relationalai/semantics/lqp/rewrite/function_annotations.py +0 -114
- relationalai/semantics/lqp/rewrite/functional_dependencies.py +0 -314
- relationalai/semantics/lqp/rewrite/quantify_vars.py +0 -296
- relationalai/semantics/lqp/rewrite/splinter.py +0 -76
- relationalai/semantics/lqp/types.py +0 -101
- relationalai/semantics/lqp/utils.py +0 -160
- relationalai/semantics/lqp/validators.py +0 -57
- relationalai/semantics/metamodel/compiler.py +0 -133
- relationalai/semantics/metamodel/dependency.py +0 -862
- relationalai/semantics/metamodel/executor.py +0 -61
- relationalai/semantics/metamodel/factory.py +0 -287
- relationalai/semantics/metamodel/helpers.py +0 -361
- relationalai/semantics/metamodel/rewrite/discharge_constraints.py +0 -39
- relationalai/semantics/metamodel/rewrite/dnf_union_splitter.py +0 -210
- relationalai/semantics/metamodel/rewrite/extract_nested_logicals.py +0 -78
- relationalai/semantics/metamodel/rewrite/flatten.py +0 -549
- relationalai/semantics/metamodel/rewrite/format_outputs.py +0 -165
- relationalai/semantics/metamodel/typer/checker.py +0 -353
- relationalai/semantics/metamodel/typer/typer.py +0 -1395
- relationalai/semantics/reasoners/__init__.py +0 -10
- relationalai/semantics/reasoners/graph/README.md +0 -620
- relationalai/semantics/reasoners/graph/__init__.py +0 -37
- relationalai/semantics/reasoners/graph/core.py +0 -9020
- relationalai/semantics/reasoners/graph/design/beyond_demand_transform.md +0 -797
- relationalai/semantics/reasoners/graph/tests/README.md +0 -21
- relationalai/semantics/reasoners/optimization/__init__.py +0 -68
- relationalai/semantics/reasoners/optimization/common.py +0 -88
- relationalai/semantics/reasoners/optimization/solvers_dev.py +0 -568
- relationalai/semantics/reasoners/optimization/solvers_pb.py +0 -1163
- relationalai/semantics/rel/builtins.py +0 -40
- relationalai/semantics/rel/compiler.py +0 -989
- relationalai/semantics/rel/executor.py +0 -359
- relationalai/semantics/rel/rel.py +0 -482
- relationalai/semantics/rel/rel_utils.py +0 -276
- relationalai/semantics/snowflake/__init__.py +0 -3
- relationalai/semantics/sql/compiler.py +0 -2503
- relationalai/semantics/sql/executor/duck_db.py +0 -52
- relationalai/semantics/sql/executor/result_helpers.py +0 -64
- relationalai/semantics/sql/executor/snowflake.py +0 -145
- relationalai/semantics/sql/rewrite/denormalize.py +0 -222
- relationalai/semantics/sql/rewrite/double_negation.py +0 -49
- relationalai/semantics/sql/rewrite/recursive_union.py +0 -127
- relationalai/semantics/sql/rewrite/sort_output_query.py +0 -246
- relationalai/semantics/sql/sql.py +0 -504
- relationalai/semantics/std/pragmas.py +0 -11
- relationalai/semantics/std/std.py +0 -14
- relationalai/semantics/tests/test_snapshot_abstract.py +0 -143
- relationalai/semantics/tests/test_snapshot_base.py +0 -9
- relationalai/semantics/tests/utils.py +0 -46
- relationalai/std/__init__.py +0 -70
- relationalai/tools/cli.py +0 -1940
- relationalai/tools/cli_controls.py +0 -1826
- relationalai/tools/cli_helpers.py +0 -390
- relationalai/tools/debugger_client.py +0 -109
- relationalai/tools/debugger_server.py +0 -302
- relationalai/tools/dev.py +0 -685
- relationalai/tools/notes +0 -7
- relationalai/tools/qb_debugger.py +0 -425
- relationalai/util/clean_up_databases.py +0 -95
- relationalai/util/list_databases.py +0 -9
- relationalai/util/otel_configuration.py +0 -25
- relationalai/util/otel_handler.py +0 -484
- relationalai/util/snowflake_handler.py +0 -88
- relationalai/util/span_format_test.py +0 -43
- relationalai/util/span_tracker.py +0 -207
- relationalai/util/spans_file_handler.py +0 -72
- relationalai/util/tracing_handler.py +0 -34
- relationalai-0.12.13.dist-info/METADATA +0 -74
- relationalai-0.12.13.dist-info/RECORD +0 -449
- relationalai-0.12.13.dist-info/WHEEL +0 -4
- relationalai-0.12.13.dist-info/entry_points.txt +0 -3
- relationalai-0.12.13.dist-info/licenses/LICENSE +0 -202
- relationalai_test_util/__init__.py +0 -4
- relationalai_test_util/fixtures.py +0 -228
- relationalai_test_util/snapshot.py +0 -252
- relationalai_test_util/traceback.py +0 -118
- /relationalai/{analysis → semantics/frontend}/__init__.py +0 -0
- /relationalai/{auth/__init__.py → semantics/metamodel/metamodel_compiler.py} +0 -0
- /relationalai/{early_access → shims}/__init__.py +0 -0
- {relationalai/early_access/dsl/adapters → v0/relationalai/analysis}/__init__.py +0 -0
- {relationalai → v0/relationalai}/analysis/mechanistic.py +0 -0
- {relationalai → v0/relationalai}/analysis/whynot.py +0 -0
- {relationalai/early_access/dsl/adapters/orm → v0/relationalai/auth}/__init__.py +0 -0
- {relationalai → v0/relationalai}/auth/jwt_generator.py +0 -0
- {relationalai → v0/relationalai}/auth/oauth_callback_server.py +0 -0
- {relationalai → v0/relationalai}/auth/token_handler.py +0 -0
- {relationalai → v0/relationalai}/auth/util.py +0 -0
- {relationalai → v0/relationalai}/clients/__init__.py +0 -0
- {relationalai → v0/relationalai}/clients/cache_store.py +0 -0
- {relationalai → v0/relationalai}/compiler.py +0 -0
- {relationalai → v0/relationalai}/dependencies.py +0 -0
- {relationalai → v0/relationalai}/docutils.py +0 -0
- {relationalai/early_access/dsl/adapters/owl → v0/relationalai/early_access}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/__init__.py +0 -0
- {relationalai/early_access/dsl/bindings → v0/relationalai/early_access/dsl/adapters}/__init__.py +0 -0
- {relationalai/early_access/dsl/bindings/legacy → v0/relationalai/early_access/dsl/adapters/orm}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/adapters/orm/model.py +0 -0
- {relationalai/early_access/dsl/codegen → v0/relationalai/early_access/dsl/adapters/owl}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/adapters/owl/model.py +0 -0
- {relationalai/early_access/dsl/core/temporal → v0/relationalai/early_access/dsl/bindings}/__init__.py +0 -0
- {relationalai/early_access/dsl/ir → v0/relationalai/early_access/dsl/bindings/legacy}/__init__.py +0 -0
- {relationalai/early_access/dsl/ontologies → v0/relationalai/early_access/dsl/codegen}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/constants.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/core/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/core/constraints/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/core/constraints/predicate/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/core/stack.py +0 -0
- {relationalai/early_access/dsl/orm → v0/relationalai/early_access/dsl/core/temporal}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/core/utils.py +0 -0
- {relationalai/early_access/dsl/orm/measures → v0/relationalai/early_access/dsl/ir}/__init__.py +0 -0
- {relationalai/early_access/dsl/physical_metadata → v0/relationalai/early_access/dsl/ontologies}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/ontologies/raw_source.py +0 -0
- {relationalai/early_access/dsl/serialize → v0/relationalai/early_access/dsl/orm}/__init__.py +0 -0
- {relationalai/early_access/dsl/snow → v0/relationalai/early_access/dsl/orm/measures}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/orm/reasoner_errors.py +0 -0
- {relationalai/loaders → v0/relationalai/early_access/dsl/physical_metadata}/__init__.py +0 -0
- {relationalai/semantics/tests → v0/relationalai/early_access/dsl/serialize}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/serialize/binding_model.py +0 -0
- {relationalai → v0/relationalai}/early_access/dsl/serialize/model.py +0 -0
- {relationalai/tools → v0/relationalai/early_access/dsl/snow}/__init__.py +0 -0
- {relationalai → v0/relationalai}/early_access/tests/__init__.py +0 -0
- {relationalai → v0/relationalai}/environments/ci.py +0 -0
- {relationalai → v0/relationalai}/environments/hex.py +0 -0
- {relationalai → v0/relationalai}/environments/terminal.py +0 -0
- {relationalai → v0/relationalai}/experimental/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/graphs.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/benchmarks/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/path_algorithms/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/rpq/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/rpq/filter.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/rpq/glushkov.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/rpq/transition.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/utilities/__init__.py +0 -0
- {relationalai → v0/relationalai}/experimental/paths/utilities/utilities.py +0 -0
- {relationalai → v0/relationalai}/metagen.py +0 -0
- {relationalai → v0/relationalai}/metamodel.py +0 -0
- {relationalai → v0/relationalai}/rel.py +0 -0
- {relationalai → v0/relationalai}/semantics/devtools/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/internal/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/internal/annotations.py +0 -0
- {relationalai → v0/relationalai}/semantics/lqp/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/lqp/ir.py +0 -0
- {relationalai → v0/relationalai}/semantics/lqp/pragmas.py +0 -0
- {relationalai → v0/relationalai}/semantics/lqp/rewrite/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/dataflow.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/ir.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/rewrite/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/typer/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/types.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/util.py +0 -0
- {relationalai → v0/relationalai}/semantics/metamodel/visitor.py +0 -0
- {relationalai → v0/relationalai}/semantics/reasoners/experimental/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/rel/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/sql/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/sql/executor/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/sql/rewrite/__init__.py +0 -0
- {relationalai → v0/relationalai}/semantics/tests/logging.py +0 -0
- {relationalai → v0/relationalai}/std/aggregates.py +0 -0
- {relationalai → v0/relationalai}/std/dates.py +0 -0
- {relationalai → v0/relationalai}/std/graphs.py +0 -0
- {relationalai → v0/relationalai}/std/inspect.py +0 -0
- {relationalai → v0/relationalai}/std/math.py +0 -0
- {relationalai → v0/relationalai}/std/re.py +0 -0
- {relationalai → v0/relationalai}/std/strings.py +0 -0
- {relationalai → v0/relationalai}/tools/cleanup_snapshots.py +0 -0
- {relationalai → v0/relationalai}/tools/constants.py +0 -0
- {relationalai → v0/relationalai}/tools/query_utils.py +0 -0
- {relationalai → v0/relationalai}/tools/snapshot_viewer.py +0 -0
- {relationalai → v0/relationalai}/util/__init__.py +0 -0
- {relationalai → v0/relationalai}/util/constants.py +0 -0
- {relationalai → v0/relationalai}/util/graph.py +0 -0
- {relationalai → v0/relationalai}/util/timeout.py +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
from relationalai.early_access.dsl.state_mgmt import ComponentWrapper, StateManager, TransitionComponent, UndecoratedStateComponent, UndecoratedTransitionComponent
|
|
2
|
-
|
|
3
|
-
class Transition(StateManager):
|
|
4
|
-
|
|
5
|
-
def __init__(self, sm):
|
|
6
|
-
self._state_chart = sm
|
|
7
|
-
|
|
8
|
-
# The transition that when fired activates this state machine from its
|
|
9
|
-
# declared start state. Users override this method to declare more precise
|
|
10
|
-
# effects of this operation.
|
|
11
|
-
#
|
|
12
|
-
def activate(self):
|
|
13
|
-
return self.And(self.top(),
|
|
14
|
-
self._state_chart.inactive(),
|
|
15
|
-
self._state_chart.active().decorate())
|
|
16
|
-
|
|
17
|
-
# An active transition starts and ends in the Active state. Most user-declared
|
|
18
|
-
# transitions will be either activate or active transitions.
|
|
19
|
-
#
|
|
20
|
-
def active(self):
|
|
21
|
-
return self.And(self.top(),
|
|
22
|
-
self.state_chart().active(),
|
|
23
|
-
self.state_chart().active().decorate())
|
|
24
|
-
|
|
25
|
-
def after_state(self): return self._state_chart.after_state()
|
|
26
|
-
def before_state(self): return self._state_chart.top()
|
|
27
|
-
|
|
28
|
-
def top(self):
|
|
29
|
-
return self.And(self.before_state(),
|
|
30
|
-
self.after_state())
|
|
31
|
-
|
|
32
|
-
def state_chart(self): return self._state_chart
|
|
33
|
-
|
|
34
|
-
class SimpleTransition(Transition):
|
|
35
|
-
|
|
36
|
-
def __init__(self, sm):
|
|
37
|
-
super().__init__(sm)
|
|
38
|
-
|
|
39
|
-
# The transition method of a SimpleTransition composes the transition
|
|
40
|
-
# by conjoining before and after instances of the state machine being managed.
|
|
41
|
-
# By default, these are the values returned by the before_state and after_state
|
|
42
|
-
# methods respectively, but these may be overridden by keyword arguments 'before'
|
|
43
|
-
# and 'after'.
|
|
44
|
-
#
|
|
45
|
-
def transition(self, **kwargs):
|
|
46
|
-
if len(kwargs) > 2:
|
|
47
|
-
raise Exception("Not possible")
|
|
48
|
-
|
|
49
|
-
for a in kwargs:
|
|
50
|
-
if a != 'before' and a != 'after':
|
|
51
|
-
raise Exception("Only permissible keyword arguments to SimpleTransition.transition are 'before' and 'after'")
|
|
52
|
-
if 'after' in kwargs:
|
|
53
|
-
after_state = kwargs['after']
|
|
54
|
-
else:
|
|
55
|
-
after_state = self.after_state()
|
|
56
|
-
|
|
57
|
-
if 'before' in kwargs:
|
|
58
|
-
before_state = kwargs['before']
|
|
59
|
-
else:
|
|
60
|
-
before_state = self.before_state()
|
|
61
|
-
|
|
62
|
-
return self.And(before_state, after_state)
|
|
63
|
-
|
|
64
|
-
class CompositeTransition(Transition):
|
|
65
|
-
|
|
66
|
-
def __init__(self, sm):
|
|
67
|
-
super().__init__(sm)
|
|
68
|
-
self._components = {}
|
|
69
|
-
|
|
70
|
-
comps = sm._components
|
|
71
|
-
for c in comps:
|
|
72
|
-
comp = comps[c]
|
|
73
|
-
if isinstance(comp, UndecoratedStateComponent):
|
|
74
|
-
self.add_undecorated_component(c, comp.machine().transition_manager())
|
|
75
|
-
else:
|
|
76
|
-
self.add_component(c, comp.machine().transition_manager())
|
|
77
|
-
|
|
78
|
-
def activate(self):
|
|
79
|
-
t = super().activate()
|
|
80
|
-
|
|
81
|
-
transitions = []
|
|
82
|
-
for c in self._components.values():
|
|
83
|
-
transitions.append(c(c.manager().activate()))
|
|
84
|
-
|
|
85
|
-
return self.And(t, *tuple(transitions))
|
|
86
|
-
|
|
87
|
-
def add_component(self, compname, transm):
|
|
88
|
-
state_mgr = self._state_chart
|
|
89
|
-
state_components = state_mgr._components
|
|
90
|
-
renamings = {}
|
|
91
|
-
if compname in state_components:
|
|
92
|
-
renamings = state_components[compname]._renamings
|
|
93
|
-
|
|
94
|
-
self._components[compname] = TransitionComponent(compname, transm, renamings)
|
|
95
|
-
self.__setattr__(compname, ComponentWrapper(transm, compname))
|
|
96
|
-
|
|
97
|
-
def add_undecorated_component(self, compname, machine):
|
|
98
|
-
state_mgr = self._state_chart
|
|
99
|
-
state_components = state_mgr._components
|
|
100
|
-
renamings = {}
|
|
101
|
-
if compname in state_components:
|
|
102
|
-
renamings = state_components[compname]._renamings
|
|
103
|
-
self._components[compname] = UndecoratedTransitionComponent(compname, machine, renamings)
|
|
104
|
-
self.__setattr__(compname, ComponentWrapper(machine, compname))
|
|
105
|
-
|
|
106
|
-
def component(self, name): return self._components[name]
|
|
107
|
-
|
|
108
|
-
def top(self):
|
|
109
|
-
t = super().top()
|
|
110
|
-
t2 = self.transition({})
|
|
111
|
-
return self.And(t, t2)
|
|
112
|
-
|
|
113
|
-
def transition(self, *transitions):
|
|
114
|
-
component_transitions = {}
|
|
115
|
-
for d in transitions:
|
|
116
|
-
component_transitions = component_transitions | d
|
|
117
|
-
|
|
118
|
-
transitions = []
|
|
119
|
-
for c in self._components:
|
|
120
|
-
comp = self._components[c]
|
|
121
|
-
if c in component_transitions:
|
|
122
|
-
transitions.append(comp(component_transitions[c]))
|
|
123
|
-
else:
|
|
124
|
-
transitions.append(comp(comp._prototype))
|
|
125
|
-
return self.And(*tuple(transitions))
|
|
126
|
-
|
|
127
|
-
def join_operations(self, *transitions):
|
|
128
|
-
return self.And(self.active(),
|
|
129
|
-
self.transition(*transitions))
|
|
130
|
-
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from relationalai.early_access.dsl.core.relations import Relation, AbstractRelation
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class AbstractConcept:
|
|
7
|
-
|
|
8
|
-
# We can add relation components to a ConceptModule by invoking it
|
|
9
|
-
# with arguments that interleave reading text with the Types used
|
|
10
|
-
# to play various Roles
|
|
11
|
-
#
|
|
12
|
-
def __setattr__(self, key, value):
|
|
13
|
-
if key in dir(self) and key not in self.__dict__:
|
|
14
|
-
raise Exception(f"Cannot override method {key} of Type {self._name} as an attribute.")
|
|
15
|
-
else:
|
|
16
|
-
if key[0] != '_':
|
|
17
|
-
self._relations[key] = value
|
|
18
|
-
return super().__setattr__(key, value)
|
|
19
|
-
|
|
20
|
-
def __getitem__(self, key):
|
|
21
|
-
return self.__dict__[key]
|
|
22
|
-
|
|
23
|
-
def __init__(self, model, name):
|
|
24
|
-
self._name = name
|
|
25
|
-
self._model = model
|
|
26
|
-
self._relations = {}
|
|
27
|
-
|
|
28
|
-
def relation(self, *args, name: Optional[str] = None, functional: bool=False) -> Relation:
|
|
29
|
-
if len(args) == 1 and not isinstance(args[0], str):
|
|
30
|
-
raise ValueError("For binary or higher order relations parameter 'args' should contain "
|
|
31
|
-
"Sequence of text fragments followed by Types.")
|
|
32
|
-
relationship = self._model.relationship(*[self, *args], relation_name=name)
|
|
33
|
-
rel = next(iter(relationship.relations()), None)
|
|
34
|
-
if rel is not None:
|
|
35
|
-
rel.signature().set_functional(functional)
|
|
36
|
-
return rel
|
|
37
|
-
raise Exception(f"Could not find relation for relationship {relationship.name()}")
|
|
38
|
-
|
|
39
|
-
def _add_relation(self, relation: AbstractRelation):
|
|
40
|
-
self.__setattr__(relation._relname, relation)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from relationalai.early_access.dsl.core.types.concepts import Concept as CoreConcept
|
|
4
|
-
from relationalai.early_access.dsl.types import AbstractConcept
|
|
5
|
-
from relationalai.early_access.dsl.core.types import Type as CoreType
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Concept(AbstractConcept, CoreConcept):
|
|
9
|
-
|
|
10
|
-
def __init__(self, model, name, extends: Optional[CoreType]=None):
|
|
11
|
-
super().__init__(model, name)
|
|
12
|
-
CoreConcept.__init__(self, name, extends)
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from relationalai.early_access.dsl import ExternalRelation, EntityPopulationRelation, Namespace
|
|
4
|
-
from relationalai.early_access.dsl.core.exprs import _
|
|
5
|
-
from relationalai.early_access.dsl.core.relations import RelationSignature, rule, EntityInstanceRelation
|
|
6
|
-
from relationalai.early_access.dsl.core.rules import Rule, Vars
|
|
7
|
-
from relationalai.early_access.dsl.core.types.standard import standard_value_types, Hash
|
|
8
|
-
from relationalai.early_access.dsl.types import AbstractConcept
|
|
9
|
-
from relationalai.early_access.dsl.core.types import Type as CoreType
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class AbstractEntityType(AbstractConcept, CoreType):
|
|
13
|
-
|
|
14
|
-
def __init__(self, model, name):
|
|
15
|
-
super().__init__(model, name)
|
|
16
|
-
CoreType.__init__(self, name)
|
|
17
|
-
self._poprel = None
|
|
18
|
-
|
|
19
|
-
def population(self):
|
|
20
|
-
if self._poprel is None:
|
|
21
|
-
self._poprel = EntityPopulationRelation(self.namespace(), self.display(), RelationSignature(self))
|
|
22
|
-
return self._poprel
|
|
23
|
-
|
|
24
|
-
def ctor_name(self): return f"^{self.display()}"
|
|
25
|
-
|
|
26
|
-
def entity(self): return True
|
|
27
|
-
|
|
28
|
-
def addrule(self, rule):
|
|
29
|
-
relation = self.population()
|
|
30
|
-
self._model._add_relation(relation)
|
|
31
|
-
if not isinstance(rule, Rule):
|
|
32
|
-
# Assume that rule is a Python function that, when invoked can build a rule
|
|
33
|
-
rule = Rule(relation).elaborate(rule)
|
|
34
|
-
relation._rules.append(rule)
|
|
35
|
-
return rule
|
|
36
|
-
|
|
37
|
-
def entity_instance_relation(self, name:str, namespace: Optional[Namespace]=None):
|
|
38
|
-
rel = EntityInstanceRelation(namespace, name, RelationSignature(self))
|
|
39
|
-
self._add_relation(rel)
|
|
40
|
-
return rel
|
|
41
|
-
|
|
42
|
-
@staticmethod
|
|
43
|
-
def root_unconstrained_type():
|
|
44
|
-
return standard_value_types['Hash']
|
|
45
|
-
|
|
46
|
-
class EntityType(AbstractEntityType):
|
|
47
|
-
|
|
48
|
-
def __init__(self, model, nm, *args, ref_schema_name: Optional[str] = None):
|
|
49
|
-
super().__init__(model, nm)
|
|
50
|
-
self._domain = [*args]
|
|
51
|
-
self._constructor = None
|
|
52
|
-
self._ref_schema_name = ref_schema_name
|
|
53
|
-
|
|
54
|
-
def __xor__(self, args):
|
|
55
|
-
ctr = self.constructor()
|
|
56
|
-
if ctr is None:
|
|
57
|
-
raise Exception(
|
|
58
|
-
f"Entity '{self.display()}' domain is empty or this Entity is not a subtype of another EntityType with constructor")
|
|
59
|
-
return ctr(*args)
|
|
60
|
-
|
|
61
|
-
def build_relation_variable(self, args, kwargs):
|
|
62
|
-
if len(args) == 0:
|
|
63
|
-
raise Exception(f"Unexpected error in EntityType {self.display()}")
|
|
64
|
-
|
|
65
|
-
if len(args) > 1:
|
|
66
|
-
raise Exception(f"Cannot declare type variable of EntityType {self.display()} by supplying more than a type")
|
|
67
|
-
|
|
68
|
-
if len(kwargs) != 0:
|
|
69
|
-
raise Exception(
|
|
70
|
-
f"Cannot use keyword arguments when instantiating a type parameter for EntityType {self.display()}")
|
|
71
|
-
|
|
72
|
-
type = args[0]
|
|
73
|
-
self._domain.append(type)
|
|
74
|
-
return type
|
|
75
|
-
|
|
76
|
-
def build_scalar_variable(self, args, kwargs):
|
|
77
|
-
if len(args) == 0:
|
|
78
|
-
raise Exception(f"Unexpected error in EntityType {self.display()}")
|
|
79
|
-
|
|
80
|
-
if len(args) > 1:
|
|
81
|
-
raise Exception(f"Cannot declare type variable of EntityType {self.display()} by supplying more than a type")
|
|
82
|
-
|
|
83
|
-
if len(kwargs) != 0:
|
|
84
|
-
raise Exception(
|
|
85
|
-
f"Cannot use keyword arguments when instantiating a type parameter for EntityType {self.display()}")
|
|
86
|
-
|
|
87
|
-
type = args[0]
|
|
88
|
-
self._domain.append(type)
|
|
89
|
-
return type
|
|
90
|
-
|
|
91
|
-
# An EntityTypeConstructor is an n-ary functional Relation that maps tuples of
|
|
92
|
-
# arity (n-1) to instances of the EntityType.
|
|
93
|
-
def constructor(self):
|
|
94
|
-
if self._constructor is None:
|
|
95
|
-
# Create a constructor function (relation) when this EntityType is created
|
|
96
|
-
ctortype = self.domain().copy()
|
|
97
|
-
ctortype.append(self)
|
|
98
|
-
self._constructor = ExternalRelation(self.namespace(),
|
|
99
|
-
self.ctor_name(),
|
|
100
|
-
RelationSignature(*tuple(ctortype)))
|
|
101
|
-
return self._constructor
|
|
102
|
-
|
|
103
|
-
def first(self, relation):
|
|
104
|
-
with self:
|
|
105
|
-
@rule()
|
|
106
|
-
def r(e):
|
|
107
|
-
relation(e, _)
|
|
108
|
-
|
|
109
|
-
def filtered_by(self, filter, value):
|
|
110
|
-
with self:
|
|
111
|
-
@rule()
|
|
112
|
-
def r(e):
|
|
113
|
-
v = Vars(Hash)
|
|
114
|
-
#
|
|
115
|
-
value(v)
|
|
116
|
-
filter(e, v)
|
|
117
|
-
|
|
118
|
-
def qualified_name(self):
|
|
119
|
-
return self._name
|
|
120
|
-
|
|
121
|
-
def domain(self):
|
|
122
|
-
return self._domain
|
|
123
|
-
|
|
124
|
-
def is_composite(self):
|
|
125
|
-
return len(self._domain) > 1
|
|
126
|
-
|
|
127
|
-
def ref_schema_name(self):
|
|
128
|
-
return self._ref_schema_name
|
|
129
|
-
|
|
130
|
-
def pprint(self):
|
|
131
|
-
domain_str = ", ".join([f"x{i} in {t.display()}" for i, t in enumerate(self._domain)])
|
|
132
|
-
return f"entity type {self.display()}({domain_str})"
|
|
133
|
-
|
|
134
|
-
def __str__(self):
|
|
135
|
-
return f'EntityType({self.display()})'
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
from relationalai.early_access.dsl.types import AbstractConcept
|
|
2
|
-
from relationalai.early_access.dsl.core.types.constrained.nominal import ValueType as CoreValueType
|
|
3
|
-
from relationalai.early_access.dsl.core.types.constrained.subtype import ValueSubtype as CoreValueSubtype
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class ValueType(AbstractConcept, CoreValueType):
|
|
7
|
-
|
|
8
|
-
def __init__(self, model, nm, *args):
|
|
9
|
-
super().__init__(model, nm)
|
|
10
|
-
CoreValueType.__init__(self, nm, *args)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class ValueSubtype(AbstractConcept, CoreValueSubtype):
|
|
14
|
-
|
|
15
|
-
def __init__(self, model, nm, *args):
|
|
16
|
-
super().__init__(model, nm)
|
|
17
|
-
CoreValueSubtype.__init__(self, nm, *args)
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
from relationalai.early_access.dsl.core.types import Type
|
|
2
|
-
from relationalai.early_access.dsl.core.utils import camel_to_snake, to_rai_way_string, to_pascal_case
|
|
3
|
-
from relationalai.early_access.dsl.constants import VERBAL_PART_CONNECTION
|
|
4
|
-
from relationalai.early_access.dsl.ontologies.roles import Role
|
|
5
|
-
|
|
6
|
-
def normalize(s):
|
|
7
|
-
return "\n".join(line.strip() for line in s.splitlines() if line.strip())
|
|
8
|
-
|
|
9
|
-
def build_relation_name(roles, verbal_parts):
|
|
10
|
-
"""
|
|
11
|
-
Build the relation name from the verbal parts and roles. The relation name does not include the namespace.
|
|
12
|
-
We can derive the name of the relation from the Role names and the reading (verbal_parts).
|
|
13
|
-
|
|
14
|
-
Simple case: the Relationship is either unary or binary.
|
|
15
|
-
In case when the reading starts with:
|
|
16
|
-
- "is": we use the reading omitting "is";
|
|
17
|
-
- "has": we use the reading omitting "has";
|
|
18
|
-
if role doesn't have a name then role's player name transformed from camel case to snake is used.
|
|
19
|
-
- otherwise, the reading is used.
|
|
20
|
-
Examples:
|
|
21
|
-
- reading: "{Person} is female" -> namespace: "person", relation name: "female"
|
|
22
|
-
- reading: "{Person} has birth {Date}" -> namespace: "person", relation name: "birth"
|
|
23
|
-
- reading: "{Account} has {AccountNr}" -> namespace: "account", relation name: "nr" (or "account_nr" when role has no name)
|
|
24
|
-
- reading: "{Account} created on {Date}" -> namespace: "account", relation name: "created_on"
|
|
25
|
-
|
|
26
|
-
Complex case: the Relationship has more than two Roles.
|
|
27
|
-
We typically omit the name of the first Role in the reading, use the rest of the reading filling in
|
|
28
|
-
the role name positions with the names.
|
|
29
|
-
Examples:
|
|
30
|
-
- reading: "{Person} has {Child} born on {Date}" -> namespace: "person", relation name: "has_child_born_on_date"
|
|
31
|
-
- reading: "{Account} on {Date} has activation- {Event}" -> namespace: "account", relation name: "on_date_has_activation_event"
|
|
32
|
-
|
|
33
|
-
"""
|
|
34
|
-
rel_name = ""
|
|
35
|
-
if len(roles) == 1: # for unary relations
|
|
36
|
-
if len(verbal_parts) > 0:
|
|
37
|
-
rel_name = to_rai_way_string(verbal_parts[0])
|
|
38
|
-
if not rel_name:
|
|
39
|
-
rel_name = _get_role_name(roles[0])
|
|
40
|
-
elif len(roles) == 2: # for binary relations
|
|
41
|
-
s_role = roles[1]
|
|
42
|
-
if len(verbal_parts) > 0:
|
|
43
|
-
rel_name = to_rai_way_string(verbal_parts[0])
|
|
44
|
-
if verbal_parts[0].strip().startswith(("has", "is")):
|
|
45
|
-
if not rel_name:
|
|
46
|
-
rel_name += _get_role_name(s_role)
|
|
47
|
-
else:
|
|
48
|
-
rel_name = _get_role_name(s_role)
|
|
49
|
-
else:
|
|
50
|
-
# assumption that len(roles) - 1 == len(verbal_parts)
|
|
51
|
-
join_parts = [to_rai_way_string(verbal_parts[0], False)]
|
|
52
|
-
for i in range(1, len(roles)): # skip the first role
|
|
53
|
-
role = roles[i]
|
|
54
|
-
join_parts.append(_get_role_name(role))
|
|
55
|
-
if i < len(roles) - 1: # append verbal part after each iteration except the last one
|
|
56
|
-
join_parts.append(to_rai_way_string(verbal_parts[i]))
|
|
57
|
-
rel_name = VERBAL_PART_CONNECTION.join(join_parts)
|
|
58
|
-
return rel_name
|
|
59
|
-
|
|
60
|
-
def build_relationship_name(roles, verbal_parts):
|
|
61
|
-
"""
|
|
62
|
-
Build the relationship name from the verbal parts and roles.
|
|
63
|
-
|
|
64
|
-
"""
|
|
65
|
-
relationship_name = ""
|
|
66
|
-
for i in range(len(roles)):
|
|
67
|
-
relationship_name += to_pascal_case(roles[i].verbalize())
|
|
68
|
-
# assumption that len(roles) >= than len(verbal_parts)
|
|
69
|
-
if i < len(verbal_parts):
|
|
70
|
-
relationship_name += to_pascal_case(verbal_parts[i])
|
|
71
|
-
|
|
72
|
-
return relationship_name
|
|
73
|
-
|
|
74
|
-
def extract_relation_text_with_signature(*args):
|
|
75
|
-
types = []
|
|
76
|
-
text_frags = []
|
|
77
|
-
if len(args) < 2:
|
|
78
|
-
raise Exception("Invalid declaration for the unary relation. Type should be followed by a text.")
|
|
79
|
-
|
|
80
|
-
for i in range(len(args)):
|
|
81
|
-
a = args[i]
|
|
82
|
-
# even must be 'Type' and odd must be 'str'
|
|
83
|
-
if i % 2 == 0:
|
|
84
|
-
if not isinstance(a, Type):
|
|
85
|
-
raise Exception(f"Invalid declaration for the relation. Argument {i + 1} is not a type.")
|
|
86
|
-
types.append(a)
|
|
87
|
-
else:
|
|
88
|
-
if not isinstance(a, str):
|
|
89
|
-
raise Exception(f"Invalid declaration for the relation. Argument {i + 1} is not a text.")
|
|
90
|
-
text_frags.append(a)
|
|
91
|
-
# check that N-ary relation ends with Type. Exclude the case for unary when args == 2: (Person, "is adult")
|
|
92
|
-
if len(text_frags) == len(types) and len(args) > 2:
|
|
93
|
-
raise Exception("Invalid declaration for the relation. Relations with arity > 2 must end with a type.")
|
|
94
|
-
|
|
95
|
-
return text_frags, types
|
|
96
|
-
|
|
97
|
-
def _get_role_name(role) -> str:
|
|
98
|
-
if isinstance(role, Type):
|
|
99
|
-
return camel_to_snake(role.display())
|
|
100
|
-
elif isinstance(role, Role):
|
|
101
|
-
return to_rai_way_string(role.ref_name(), False) if role.name else camel_to_snake(role.player().display())
|
|
102
|
-
raise Exception(f"Invalid declaration for the relation. Argument {role} is not a 'Type' or a 'Role'.")
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.0"
|
|
2
|
-
import warnings
|
|
3
|
-
|
|
4
|
-
from relationalai.semantics.reasoners.graph.core import Graph
|
|
5
|
-
|
|
6
|
-
__all__ = ["Graph"]
|
|
7
|
-
|
|
8
|
-
warnings.warn(
|
|
9
|
-
"relationalai.early_access.graphs.* is deprecated. "
|
|
10
|
-
"Please migrate to relationalai.semantics.reasoners.graph.*",
|
|
11
|
-
DeprecationWarning,
|
|
12
|
-
stacklevel=2,
|
|
13
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp import ir, model2lqp, result_helpers, utils
|
|
4
|
-
|
|
5
|
-
__all__ = ['ir', 'model2lqp', 'result_helpers', 'utils']
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.* is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.*",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.compiler import Compiler
|
|
4
|
-
|
|
5
|
-
__all__ = ["Compiler"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.compiler is deprecated, "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.compiler",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.constructors import (
|
|
4
|
-
mk_abstraction, mk_and, mk_exists, mk_or, mk_pragma, mk_primitive,
|
|
5
|
-
mk_specialized_value, mk_type, mk_value
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
__all__ = [
|
|
9
|
-
"mk_abstraction", "mk_and", "mk_exists", "mk_or", "mk_pragma", "mk_primitive", "mk_specialized_value", "mk_type",
|
|
10
|
-
"mk_value"
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
warnings.warn(
|
|
14
|
-
"relationalai.early_access.lqp.constructors is deprecated. "
|
|
15
|
-
"Please migrate to relationalai.semantics.lqp.constructors",
|
|
16
|
-
DeprecationWarning,
|
|
17
|
-
stacklevel=2,
|
|
18
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.executor import LQPExecutor
|
|
4
|
-
|
|
5
|
-
__all__ = ["LQPExecutor"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.executor is deprecated, "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.executor",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.ir import convert_transaction, validate_lqp
|
|
4
|
-
|
|
5
|
-
__all__ = ["convert_transaction", "validate_lqp"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.ir is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.ir",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.passes import lqp_passes
|
|
4
|
-
|
|
5
|
-
__all__ = ["lqp_passes"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.passes is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.passes",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.pragmas import pragma_to_lqp_name
|
|
4
|
-
|
|
5
|
-
__all__ = ["pragma_to_lqp_name"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.pragmas is deprecated, "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.pragmas",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.primitives import lqp_avg_op, lqp_operator, build_primitive
|
|
4
|
-
|
|
5
|
-
__all__ = ["lqp_avg_op", "lqp_operator", "build_primitive"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.primitives is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.primitives",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.types import lqp_type_to_sql, meta_type_to_lqp, is_numeric
|
|
4
|
-
|
|
5
|
-
__all__ = ['lqp_type_to_sql', 'meta_type_to_lqp', 'is_numeric']
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.types is deprecated, "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.types",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.utils import TranslationCtx, gen_unique_var, output_names, UniqueNames
|
|
4
|
-
|
|
5
|
-
__all__ = ["TranslationCtx", "gen_unique_var", "output_names", "UniqueNames"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.utils is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.utils",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.lqp.validators import assert_valid_input
|
|
4
|
-
|
|
5
|
-
__all__ = ["assert_valid_input"]
|
|
6
|
-
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"relationalai.early_access.lqp.validators is deprecated. "
|
|
9
|
-
"Please migrate to relationalai.semantics.lqp.validators",
|
|
10
|
-
DeprecationWarning,
|
|
11
|
-
stacklevel=2,
|
|
12
|
-
)
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from relationalai.semantics.metamodel import (types, util, ir, factory, helpers, builtins, compiler, executor, dependency,
|
|
4
|
-
Node, Model, Capability, Engine, Type, ScalarType, ListType, UnionType,
|
|
5
|
-
Field, Relation, Task, Logical, Union, Sequence, Match, Until, Wait, Not,
|
|
6
|
-
Exists, ForAll, Loop, Break, Var, Literal, Value, Annotation, Effect,
|
|
7
|
-
Update, Lookup, Output, Construct, Aggregate)
|
|
8
|
-
|
|
9
|
-
__all__ = [
|
|
10
|
-
"types",
|
|
11
|
-
"util",
|
|
12
|
-
"ir",
|
|
13
|
-
"factory",
|
|
14
|
-
"helpers",
|
|
15
|
-
"builtins",
|
|
16
|
-
"compiler",
|
|
17
|
-
"executor",
|
|
18
|
-
"dependency",
|
|
19
|
-
"Node",
|
|
20
|
-
"Model",
|
|
21
|
-
"Capability",
|
|
22
|
-
"Engine",
|
|
23
|
-
"Type",
|
|
24
|
-
"ScalarType",
|
|
25
|
-
"ListType",
|
|
26
|
-
"UnionType",
|
|
27
|
-
"Field",
|
|
28
|
-
"Relation",
|
|
29
|
-
"Task",
|
|
30
|
-
"Logical",
|
|
31
|
-
"Union",
|
|
32
|
-
"Sequence",
|
|
33
|
-
"Match",
|
|
34
|
-
"Until",
|
|
35
|
-
"Wait",
|
|
36
|
-
"Not",
|
|
37
|
-
"Exists",
|
|
38
|
-
"ForAll",
|
|
39
|
-
"Loop",
|
|
40
|
-
"Break",
|
|
41
|
-
"Var",
|
|
42
|
-
"Literal",
|
|
43
|
-
"Value",
|
|
44
|
-
"Annotation",
|
|
45
|
-
"Effect",
|
|
46
|
-
"Update",
|
|
47
|
-
"Lookup",
|
|
48
|
-
"Output",
|
|
49
|
-
"Construct",
|
|
50
|
-
"Aggregate",
|
|
51
|
-
]
|
|
52
|
-
|
|
53
|
-
warnings.warn(
|
|
54
|
-
"relationalai.early_access.metamodel.* is deprecated. "
|
|
55
|
-
"Please migrate to relationalai.semantics.metamodel.*",
|
|
56
|
-
DeprecationWarning,
|
|
57
|
-
stacklevel=2,
|
|
58
|
-
)
|