relationalai 1.0.0a4__tar.gz → 1.0.0a5__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.
Files changed (543) hide show
  1. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/PKG-INFO +4 -3
  2. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/pyproject.toml +18 -7
  3. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/config.py +47 -21
  4. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/connections/__init__.py +5 -2
  5. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/connections/duckdb.py +2 -2
  6. relationalai-1.0.0a5/src/relationalai/config/connections/local.py +31 -0
  7. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/connections/snowflake.py +0 -1
  8. relationalai-1.0.0a5/src/relationalai/config/external/raiconfig_converter.py +235 -0
  9. relationalai-1.0.0a5/src/relationalai/config/external/raiconfig_models.py +202 -0
  10. relationalai-1.0.0a5/src/relationalai/config/external/utils.py +50 -0
  11. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/__init__.py +3 -7
  12. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/backends/sql/sql_compiler.py +1 -4
  13. relationalai-1.0.0a5/src/relationalai/semantics/experimental/builder.py +295 -0
  14. relationalai-1.0.0a5/src/relationalai/semantics/experimental/builtins.py +154 -0
  15. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/frontend/base.py +48 -29
  16. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/frontend/core.py +4 -4
  17. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/frontend/front_compiler.py +178 -33
  18. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/frontend/pprint.py +5 -1
  19. relationalai-1.0.0a5/src/relationalai/semantics/metamodel/__init__.py +13 -0
  20. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/metamodel.py +2 -0
  21. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/metamodel_analyzer.py +58 -16
  22. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/pprint.py +6 -1
  23. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/rewriter.py +6 -6
  24. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/typer.py +48 -17
  25. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/reasoners/__init__.py +1 -1
  26. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/reasoners/graph/__init__.py +0 -3
  27. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/reasoners/graph/core.py +545 -532
  28. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/std/__init__.py +30 -10
  29. relationalai-1.0.0a5/src/relationalai/semantics/std/aggregates.py +777 -0
  30. relationalai-1.0.0a5/src/relationalai/semantics/std/common.py +177 -0
  31. relationalai-1.0.0a5/src/relationalai/semantics/std/constraints.py +107 -0
  32. relationalai-1.0.0a5/src/relationalai/semantics/std/datetime.py +1360 -0
  33. relationalai-1.0.0a5/src/relationalai/semantics/std/decimals.py +196 -0
  34. relationalai-1.0.0a5/src/relationalai/semantics/std/floats.py +68 -0
  35. relationalai-1.0.0a5/src/relationalai/semantics/std/integers.py +131 -0
  36. relationalai-1.0.0a5/src/relationalai/semantics/std/math.py +1034 -0
  37. relationalai-1.0.0a5/src/relationalai/semantics/std/numbers.py +282 -0
  38. relationalai-1.0.0a5/src/relationalai/semantics/std/re.py +309 -0
  39. relationalai-1.0.0a5/src/relationalai/semantics/std/strings.py +511 -0
  40. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/shims/executor.py +60 -52
  41. relationalai-1.0.0a5/src/relationalai/shims/fixtures.py +85 -0
  42. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/shims/helpers.py +26 -2
  43. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/shims/hoister.py +19 -9
  44. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/shims/mm2v0.py +174 -151
  45. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/cli.py +55 -11
  46. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/components/progress_reader.py +1 -1
  47. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/debugger.py +11 -4
  48. relationalai-1.0.0a5/src/relationalai/tools/qb_debugger.py +435 -0
  49. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/typer_debugger.py +1 -2
  50. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/dataclasses.py +3 -5
  51. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/docutils.py +1 -2
  52. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/error.py +2 -5
  53. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/python.py +23 -0
  54. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/runtime.py +1 -2
  55. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/schema.py +2 -4
  56. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/structures.py +4 -2
  57. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/tracing.py +8 -2
  58. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/PKG-INFO +4 -3
  59. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/SOURCES.txt +18 -0
  60. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/requires.txt +2 -1
  61. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/__init__.py +1 -1
  62. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/client.py +52 -18
  63. relationalai-1.0.0a5/src/v0/relationalai/clients/exec_txn_poller.py +122 -0
  64. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/local.py +23 -8
  65. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/azure/azure.py +36 -11
  66. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/__init__.py +3 -3
  67. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/cli_resources.py +12 -1
  68. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/direct_access_resources.py +109 -91
  69. relationalai-1.0.0a5/src/v0/relationalai/clients/resources/snowflake/engine_service.py +381 -0
  70. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/engine_state_handlers.py +35 -29
  71. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/error_handlers.py +43 -2
  72. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/snowflake.py +251 -182
  73. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/types.py +5 -0
  74. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/errors.py +1 -1
  75. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/algorithms.py +173 -0
  76. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/builtins.py +213 -0
  77. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/executor.py +65 -36
  78. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/ir.py +28 -2
  79. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/model2lqp.py +215 -45
  80. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/passes.py +35 -0
  81. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/__init__.py +12 -0
  82. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/algorithm.py +385 -0
  83. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/constants_to_vars.py +70 -0
  84. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/deduplicate_vars.py +104 -0
  85. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/eliminate_data.py +108 -0
  86. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/period_math.py +77 -0
  87. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/quantify_vars.py +65 -31
  88. relationalai-1.0.0a5/src/v0/relationalai/semantics/lqp/rewrite/unify_definitions.py +317 -0
  89. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/utils.py +11 -1
  90. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/validators.py +14 -1
  91. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/builtins.py +2 -1
  92. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/compiler.py +2 -1
  93. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/dependency.py +12 -3
  94. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/executor.py +11 -1
  95. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/factory.py +2 -2
  96. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/helpers.py +7 -0
  97. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/ir.py +3 -2
  98. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/dnf_union_splitter.py +30 -20
  99. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/flatten.py +50 -13
  100. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/format_outputs.py +9 -3
  101. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/typer/checker.py +6 -4
  102. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/typer/typer.py +4 -3
  103. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/visitor.py +4 -3
  104. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/optimization/solvers_dev.py +1 -1
  105. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/optimization/solvers_pb.py +3 -4
  106. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/compiler.py +2 -1
  107. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/executor.py +3 -2
  108. relationalai-1.0.0a5/src/v0/relationalai/semantics/tests/lqp/__init__.py +0 -0
  109. relationalai-1.0.0a5/src/v0/relationalai/semantics/tests/lqp/algorithms.py +345 -0
  110. relationalai-1.0.0a5/src/v0/relationalai/tools/__init__.py +0 -0
  111. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/cli.py +339 -186
  112. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/cli_controls.py +216 -67
  113. relationalai-1.0.0a5/src/v0/relationalai/tools/cli_helpers.py +802 -0
  114. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/format.py +5 -2
  115. relationalai-1.0.0a4/src/relationalai/config/external/utils.py +0 -19
  116. relationalai-1.0.0a4/src/relationalai/semantics/metamodel/__init__.py +0 -6
  117. relationalai-1.0.0a4/src/relationalai/semantics/std/aggregates.py +0 -148
  118. relationalai-1.0.0a4/src/relationalai/semantics/std/common.py +0 -44
  119. relationalai-1.0.0a4/src/relationalai/semantics/std/constraints.py +0 -37
  120. relationalai-1.0.0a4/src/relationalai/semantics/std/datetime.py +0 -477
  121. relationalai-1.0.0a4/src/relationalai/semantics/std/decimals.py +0 -55
  122. relationalai-1.0.0a4/src/relationalai/semantics/std/floats.py +0 -15
  123. relationalai-1.0.0a4/src/relationalai/semantics/std/integers.py +0 -37
  124. relationalai-1.0.0a4/src/relationalai/semantics/std/math.py +0 -212
  125. relationalai-1.0.0a4/src/relationalai/semantics/std/numbers.py +0 -86
  126. relationalai-1.0.0a4/src/relationalai/semantics/std/re.py +0 -101
  127. relationalai-1.0.0a4/src/relationalai/semantics/std/strings.py +0 -118
  128. relationalai-1.0.0a4/src/v0/relationalai/clients/exec_txn_poller.py +0 -91
  129. relationalai-1.0.0a4/src/v0/relationalai/semantics/lqp/builtins.py +0 -16
  130. relationalai-1.0.0a4/src/v0/relationalai/semantics/lqp/passes.py +0 -680
  131. relationalai-1.0.0a4/src/v0/relationalai/tools/cli_helpers.py +0 -398
  132. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/README.md +0 -0
  133. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/setup.cfg +0 -0
  134. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/__init__.py +0 -0
  135. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/__init__.py +0 -0
  136. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/config_fields.py +0 -0
  137. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/connections/base.py +0 -0
  138. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/external/__init__.py +0 -0
  139. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/external/dbt_converter.py +0 -0
  140. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/external/dbt_models.py +0 -0
  141. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/external/snowflake_converter.py +0 -0
  142. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/external/snowflake_models.py +0 -0
  143. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/config/shims.py +0 -0
  144. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/backends/lqp/annotations.py +0 -0
  145. {relationalai-1.0.0a4/src/relationalai/semantics/frontend → relationalai-1.0.0a5/src/relationalai/semantics/experimental}/__init__.py +0 -0
  146. {relationalai-1.0.0a4/src/relationalai/shims → relationalai-1.0.0a5/src/relationalai/semantics/frontend}/__init__.py +0 -0
  147. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/builtins.py +0 -0
  148. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/semantics/metamodel/metamodel_compiler.py +0 -0
  149. {relationalai-1.0.0a4/src/v0/relationalai/analysis → relationalai-1.0.0a5/src/relationalai/shims}/__init__.py +0 -0
  150. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/__init__.py +0 -0
  151. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/components/__init__.py +0 -0
  152. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/components/utils.py +0 -0
  153. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/config_template.py +0 -0
  154. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/dev.py +0 -0
  155. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/tools/cli/docs.py +0 -0
  156. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/format.py +0 -0
  157. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/naming.py +0 -0
  158. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai/util/source.py +0 -0
  159. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/dependency_links.txt +0 -0
  160. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/entry_points.txt +0 -0
  161. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/relationalai.egg-info/top_level.txt +0 -0
  162. {relationalai-1.0.0a4/src/v0/relationalai/auth → relationalai-1.0.0a5/src/v0/relationalai/analysis}/__init__.py +0 -0
  163. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/analysis/mechanistic.py +0 -0
  164. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/analysis/whynot.py +0 -0
  165. {relationalai-1.0.0a4/src/v0/relationalai/early_access → relationalai-1.0.0a5/src/v0/relationalai/auth}/__init__.py +0 -0
  166. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/auth/jwt_generator.py +0 -0
  167. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/auth/oauth_callback_server.py +0 -0
  168. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/auth/token_handler.py +0 -0
  169. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/auth/util.py +0 -0
  170. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/__init__.py +0 -0
  171. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/config.py +0 -0
  172. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/direct_access_client.py +0 -0
  173. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/hash_util.py +0 -0
  174. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/profile_polling.py +0 -0
  175. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/__init__.py +0 -0
  176. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/cache_store.py +0 -0
  177. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/resources_factory.py +0 -0
  178. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/use_index_poller.py +0 -0
  179. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/use_index_resources.py +0 -0
  180. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/resources/snowflake/util.py +0 -0
  181. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/result_helpers.py +0 -0
  182. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/clients/util.py +0 -0
  183. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/compiler.py +0 -0
  184. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/debugging.py +0 -0
  185. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/dependencies.py +0 -0
  186. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/docutils.py +0 -0
  187. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/dsl.py +0 -0
  188. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/adapters → relationalai-1.0.0a5/src/v0/relationalai/early_access}/__init__.py +0 -0
  189. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/__init__.py +0 -0
  190. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/builder/__init__.py +0 -0
  191. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/snowflake/__init__.py +0 -0
  192. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/std/__init__.py +0 -0
  193. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/std/decimals/__init__.py +0 -0
  194. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/std/integers/__init__.py +0 -0
  195. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/std/math/__init__.py +0 -0
  196. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/builder/std/strings/__init__.py +0 -0
  197. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/devtools/__init__.py +0 -0
  198. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/devtools/benchmark_lqp/__init__.py +0 -0
  199. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/devtools/extract_lqp/__init__.py +0 -0
  200. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/__init__.py +0 -0
  201. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/adapters/orm → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/adapters}/__init__.py +0 -0
  202. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/adapters/owl → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/adapters/orm}/__init__.py +0 -0
  203. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/orm/adapter_qb.py +0 -0
  204. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/orm/model.py +0 -0
  205. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/orm/parser.py +0 -0
  206. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/bindings → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/adapters/owl}/__init__.py +0 -0
  207. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/owl/adapter.py +0 -0
  208. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/owl/model.py +0 -0
  209. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/adapters/owl/parser.py +0 -0
  210. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/bindings/legacy → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/bindings}/__init__.py +0 -0
  211. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/bindings/common.py +0 -0
  212. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/bindings/csv.py +0 -0
  213. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/codegen → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/bindings/legacy}/__init__.py +0 -0
  214. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/bindings/legacy/binding_models.py +0 -0
  215. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/bindings/snowflake.py +0 -0
  216. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/core/temporal → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/codegen}/__init__.py +0 -0
  217. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/codegen/binder.py +0 -0
  218. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/codegen/common.py +0 -0
  219. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/codegen/helpers.py +0 -0
  220. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/codegen/relations.py +0 -0
  221. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/codegen/weaver.py +0 -0
  222. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/constants.py +0 -0
  223. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/__init__.py +0 -0
  224. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/builders/__init__.py +0 -0
  225. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/builders/logic.py +0 -0
  226. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/builders/scalar_constraint.py +0 -0
  227. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/constraints/__init__.py +0 -0
  228. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/constraints/predicate/__init__.py +0 -0
  229. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/constraints/predicate/atomic.py +0 -0
  230. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/constraints/predicate/universal.py +0 -0
  231. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/constraints/scalar.py +0 -0
  232. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/context.py +0 -0
  233. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/cset.py +0 -0
  234. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/exprs/__init__.py +0 -0
  235. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/exprs/relational.py +0 -0
  236. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/exprs/scalar.py +0 -0
  237. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/instances.py +0 -0
  238. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/logic/__init__.py +0 -0
  239. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/logic/aggregation.py +0 -0
  240. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/logic/exists.py +0 -0
  241. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/logic/helper.py +0 -0
  242. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/namespaces.py +0 -0
  243. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/relations.py +0 -0
  244. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/rules.py +0 -0
  245. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/stack.py +0 -0
  246. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/std/__init__.py +0 -0
  247. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/ir → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/core/temporal}/__init__.py +0 -0
  248. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/temporal/recall.py +0 -0
  249. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/__init__.py +0 -0
  250. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/concepts.py +0 -0
  251. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/constrained/__init__.py +0 -0
  252. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/constrained/nominal.py +0 -0
  253. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/constrained/subtype.py +0 -0
  254. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/standard.py +0 -0
  255. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/unconstrained.py +0 -0
  256. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/types/variables.py +0 -0
  257. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/core/utils.py +0 -0
  258. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/ontologies → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/ir}/__init__.py +0 -0
  259. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ir/compiler.py +0 -0
  260. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ir/executor.py +0 -0
  261. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/orm → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/ontologies}/__init__.py +0 -0
  262. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/constraints.py +0 -0
  263. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/export.py +0 -0
  264. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/models.py +0 -0
  265. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/python_printer.py +0 -0
  266. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/raw_source.py +0 -0
  267. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/readings.py +0 -0
  268. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/relationships.py +0 -0
  269. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/roles.py +0 -0
  270. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/ontologies/subtyping.py +0 -0
  271. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/orm/measures → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/orm}/__init__.py +0 -0
  272. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/constraints.py +0 -0
  273. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/physical_metadata → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/orm/measures}/__init__.py +0 -0
  274. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/measures/dimensions.py +0 -0
  275. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/measures/initializer.py +0 -0
  276. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/measures/measure_rules.py +0 -0
  277. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/measures/measures.py +0 -0
  278. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/measures/role_exprs.py +0 -0
  279. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/models.py +0 -0
  280. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/object_oriented_printer.py +0 -0
  281. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/printer.py +0 -0
  282. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/reasoner_errors.py +0 -0
  283. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/reasoners.py +0 -0
  284. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/relations.py +0 -0
  285. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/relationships.py +0 -0
  286. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/types.py +0 -0
  287. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/utils.py +0 -0
  288. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/orm/verb.py +0 -0
  289. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/serialize → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/physical_metadata}/__init__.py +0 -0
  290. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/physical_metadata/tables.py +0 -0
  291. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/relations.py +0 -0
  292. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/rulesets.py +0 -0
  293. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/__init__.py +0 -0
  294. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/builder.py +0 -0
  295. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/comp_names.py +0 -0
  296. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/components.py +0 -0
  297. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/contexts.py +0 -0
  298. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/exprs.py +0 -0
  299. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/schemas/fragments.py +0 -0
  300. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/serialization.py +0 -0
  301. {relationalai-1.0.0a4/src/v0/relationalai/early_access/dsl/snow → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/serialize}/__init__.py +0 -0
  302. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/serialize/binding_model.py +0 -0
  303. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/serialize/exporter.py +0 -0
  304. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/serialize/model.py +0 -0
  305. {relationalai-1.0.0a4/src/v0/relationalai/loaders → relationalai-1.0.0a5/src/v0/relationalai/early_access/dsl/snow}/__init__.py +0 -0
  306. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/snow/api.py +0 -0
  307. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/snow/common.py +0 -0
  308. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/state_mgmt/__init__.py +0 -0
  309. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/state_mgmt/state_charts.py +0 -0
  310. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/state_mgmt/transitions.py +0 -0
  311. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/types/__init__.py +0 -0
  312. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/types/concepts.py +0 -0
  313. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/types/entities.py +0 -0
  314. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/types/values.py +0 -0
  315. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/dsl/utils.py +0 -0
  316. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/graphs/__init__.py +0 -0
  317. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/__init__.py +0 -0
  318. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/compiler/__init__.py +0 -0
  319. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/constructors/__init__.py +0 -0
  320. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/executor/__init__.py +0 -0
  321. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/ir/__init__.py +0 -0
  322. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/passes/__init__.py +0 -0
  323. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/pragmas/__init__.py +0 -0
  324. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/primitives/__init__.py +0 -0
  325. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/types/__init__.py +0 -0
  326. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/utils/__init__.py +0 -0
  327. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/lqp/validators/__init__.py +0 -0
  328. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/__init__.py +0 -0
  329. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/builtins/__init__.py +0 -0
  330. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/compiler/__init__.py +0 -0
  331. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/dependency/__init__.py +0 -0
  332. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/factory/__init__.py +0 -0
  333. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/helpers/__init__.py +0 -0
  334. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/ir/__init__.py +0 -0
  335. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/rewrite/__init__.py +0 -0
  336. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/typer/__init__.py +0 -0
  337. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/typer/typer/__init__.py +0 -0
  338. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/types/__init__.py +0 -0
  339. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/util/__init__.py +0 -0
  340. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/metamodel/visitor/__init__.py +0 -0
  341. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/rel/__init__.py +0 -0
  342. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/rel/executor/__init__.py +0 -0
  343. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/rel/rel_utils/__init__.py +0 -0
  344. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/rel/rewrite/__init__.py +0 -0
  345. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/solvers/__init__.py +0 -0
  346. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/sql/__init__.py +0 -0
  347. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/sql/executor/__init__.py +0 -0
  348. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/sql/rewrite/__init__.py +0 -0
  349. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/tests/__init__.py +0 -0
  350. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/tests/logging/__init__.py +0 -0
  351. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/tests/test_snapshot_base/__init__.py +0 -0
  352. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/early_access/tests/utils/__init__.py +0 -0
  353. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/__init__.py +0 -0
  354. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/base.py +0 -0
  355. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/ci.py +0 -0
  356. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/colab.py +0 -0
  357. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/generic.py +0 -0
  358. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/hex.py +0 -0
  359. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/ipython.py +0 -0
  360. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/jupyter.py +0 -0
  361. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/snowbook.py +0 -0
  362. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/environments/terminal.py +0 -0
  363. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/SF.py +0 -0
  364. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/__init__.py +0 -0
  365. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/graphs.py +0 -0
  366. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/inspect.py +0 -0
  367. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/__init__.py +0 -0
  368. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/api.py +0 -0
  369. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/automaton.py +0 -0
  370. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/bridge.py +0 -0
  371. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/compiler.py +0 -0
  372. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/datalog.py +0 -0
  373. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/diagnostics.py +0 -0
  374. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/filter.py +0 -0
  375. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/glushkov.py +0 -0
  376. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/options.py +0 -0
  377. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/rpq.py +0 -0
  378. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/transition.py +0 -0
  379. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/pathfinder/utils.py +0 -0
  380. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/__init__.py +0 -0
  381. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/api.py +0 -0
  382. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/benchmarks/__init__.py +0 -0
  383. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/benchmarks/grid_graph.py +0 -0
  384. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/basic_example.py +0 -0
  385. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/minimal_engine_warmup.py +0 -0
  386. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/movie_example.py +0 -0
  387. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/paths_benchmark.py +0 -0
  388. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/paths_example.py +0 -0
  389. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/examples/pattern_to_automaton.py +0 -0
  390. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/find_paths_via_automaton.py +0 -0
  391. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/graph.py +0 -0
  392. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/__init__.py +0 -0
  393. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/find_paths.py +0 -0
  394. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/one_sided_ball_repetition.py +0 -0
  395. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/one_sided_ball_upto.py +0 -0
  396. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/single.py +0 -0
  397. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/two_sided_balls_repetition.py +0 -0
  398. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/two_sided_balls_upto.py +0 -0
  399. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/usp-old.py +0 -0
  400. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/usp-tuple.py +0 -0
  401. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/path_algorithms/usp.py +0 -0
  402. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/product_graph.py +0 -0
  403. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/__init__.py +0 -0
  404. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/automaton.py +0 -0
  405. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/diagnostics.py +0 -0
  406. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/filter.py +0 -0
  407. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/glushkov.py +0 -0
  408. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/rpq.py +0 -0
  409. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/rpq/transition.py +0 -0
  410. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_limit_sp_max_length.py +0 -0
  411. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_limit_sp_multiple.py +0 -0
  412. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_limit_sp_single.py +0 -0
  413. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_limit_walks_multiple.py +0 -0
  414. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_limit_walks_single.py +0 -0
  415. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_multiple.py +0 -0
  416. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_one_sided_ball_repetition_single.py +0 -0
  417. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_one_sided_ball_upto_multiple.py +0 -0
  418. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_one_sided_ball_upto_single.py +0 -0
  419. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_single_paths.py +0 -0
  420. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_single_walks.py +0 -0
  421. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_single_walks_undirected.py +0 -0
  422. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_multiple.py +0 -0
  423. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_two_sided_balls_repetition_single.py +0 -0
  424. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_two_sided_balls_upto_multiple.py +0 -0
  425. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_two_sided_balls_upto_single.py +0 -0
  426. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_usp_nsp_multiple.py +0 -0
  427. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tests/tests_usp_nsp_single.py +0 -0
  428. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/tree_agg.py +0 -0
  429. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/utilities/__init__.py +0 -0
  430. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/utilities/iterators.py +0 -0
  431. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/utilities/prefix_sum.py +0 -0
  432. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/paths/utilities/utilities.py +0 -0
  433. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/experimental/solvers.py +0 -0
  434. {relationalai-1.0.0a4/src/v0/relationalai/semantics/tests → relationalai-1.0.0a5/src/v0/relationalai/loaders}/__init__.py +0 -0
  435. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/loaders/csv.py +0 -0
  436. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/loaders/loader.py +0 -0
  437. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/loaders/types.py +0 -0
  438. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/metagen.py +0 -0
  439. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/metamodel.py +0 -0
  440. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/rel.py +0 -0
  441. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/rel_emitter.py +0 -0
  442. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/rel_utils.py +0 -0
  443. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/__init__.py +0 -0
  444. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/devtools/__init__.py +0 -0
  445. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/devtools/benchmark_lqp.py +0 -0
  446. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/devtools/compilation_manager.py +0 -0
  447. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/devtools/extract_lqp.py +0 -0
  448. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/internal/__init__.py +0 -0
  449. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/internal/annotations.py +0 -0
  450. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/internal/internal.py +0 -0
  451. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/internal/snowflake.py +0 -0
  452. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/__init__.py +0 -0
  453. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/compiler.py +0 -0
  454. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/constructors.py +0 -0
  455. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/intrinsics.py +0 -0
  456. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/pragmas.py +0 -0
  457. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/primitives.py +0 -0
  458. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/result_helpers.py +0 -0
  459. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/annotate_constraints.py +0 -0
  460. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/cdc.py +0 -0
  461. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/extract_common.py +0 -0
  462. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/extract_keys.py +0 -0
  463. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/function_annotations.py +0 -0
  464. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/functional_dependencies.py +0 -0
  465. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/rewrite/splinter.py +0 -0
  466. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/lqp/types.py +0 -0
  467. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/__init__.py +0 -0
  468. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/dataflow.py +0 -0
  469. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/__init__.py +0 -0
  470. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/discharge_constraints.py +0 -0
  471. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/rewrite/extract_nested_logicals.py +0 -0
  472. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/typer/__init__.py +0 -0
  473. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/types.py +0 -0
  474. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/metamodel/util.py +0 -0
  475. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/__init__.py +0 -0
  476. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/experimental/__init__.py +0 -0
  477. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/graph/__init__.py +0 -0
  478. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/graph/core.py +0 -0
  479. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/optimization/__init__.py +0 -0
  480. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/reasoners/optimization/common.py +0 -0
  481. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/__init__.py +0 -0
  482. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/builtins.py +0 -0
  483. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/rel.py +0 -0
  484. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/rel/rel_utils.py +0 -0
  485. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/snowflake/__init__.py +0 -0
  486. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/__init__.py +0 -0
  487. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/compiler.py +0 -0
  488. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/executor/__init__.py +0 -0
  489. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/executor/duck_db.py +0 -0
  490. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/executor/result_helpers.py +0 -0
  491. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/executor/snowflake.py +0 -0
  492. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/rewrite/__init__.py +0 -0
  493. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/rewrite/denormalize.py +0 -0
  494. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/rewrite/double_negation.py +0 -0
  495. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/rewrite/recursive_union.py +0 -0
  496. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/rewrite/sort_output_query.py +0 -0
  497. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/sql/sql.py +0 -0
  498. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/__init__.py +0 -0
  499. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/constraints.py +0 -0
  500. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/datetime.py +0 -0
  501. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/decimals.py +0 -0
  502. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/floats.py +0 -0
  503. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/integers.py +0 -0
  504. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/math.py +0 -0
  505. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/pragmas.py +0 -0
  506. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/re.py +0 -0
  507. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/std.py +0 -0
  508. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/std/strings.py +0 -0
  509. {relationalai-1.0.0a4/src/v0/relationalai/tools → relationalai-1.0.0a5/src/v0/relationalai/semantics/tests}/__init__.py +0 -0
  510. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/tests/logging.py +0 -0
  511. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/tests/test_snapshot_abstract.py +0 -0
  512. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/tests/test_snapshot_base.py +0 -0
  513. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/semantics/tests/utils.py +0 -0
  514. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/__init__.py +0 -0
  515. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/aggregates.py +0 -0
  516. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/dates.py +0 -0
  517. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/graphs.py +0 -0
  518. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/inspect.py +0 -0
  519. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/math.py +0 -0
  520. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/re.py +0 -0
  521. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/std/strings.py +0 -0
  522. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/cleanup_snapshots.py +0 -0
  523. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/constants.py +0 -0
  524. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/debugger.py +0 -0
  525. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/debugger_client.py +0 -0
  526. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/debugger_server.py +0 -0
  527. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/dev.py +0 -0
  528. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/qb_debugger.py +0 -0
  529. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/query_utils.py +0 -0
  530. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/tools/snapshot_viewer.py +0 -0
  531. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/__init__.py +0 -0
  532. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/clean_up_databases.py +0 -0
  533. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/constants.py +0 -0
  534. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/graph.py +0 -0
  535. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/list_databases.py +0 -0
  536. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/otel_configuration.py +0 -0
  537. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/otel_handler.py +0 -0
  538. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/snowflake_handler.py +0 -0
  539. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/span_format_test.py +0 -0
  540. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/span_tracker.py +0 -0
  541. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/spans_file_handler.py +0 -0
  542. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/timeout.py +0 -0
  543. {relationalai-1.0.0a4 → relationalai-1.0.0a5}/src/v0/relationalai/util/tracing_handler.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: relationalai
3
- Version: 1.0.0a4
3
+ Version: 1.0.0a5
4
4
  Summary: RelationalAI Library and CLI
5
5
  Author-email: RelationalAI <support@relational.ai>
6
- Requires-Python: >=3.10
6
+ Requires-Python: <3.14,>=3.10
7
7
  Description-Content-Type: text/markdown
8
- Requires-Dist: lqp==0.1.19
8
+ Requires-Dist: lqp
9
9
  Requires-Dist: snowflake-connector-python[secure-local-storage]
10
10
  Requires-Dist: snowflake-snowpark-python>=1.38.0
11
11
  Requires-Dist: typing-extensions
@@ -32,6 +32,7 @@ Requires-Dist: pyjwt
32
32
  Requires-Dist: more-itertools
33
33
  Requires-Dist: sqlglot
34
34
  Requires-Dist: pyyaml
35
+ Requires-Dist: confocal
35
36
  Requires-Dist: pydantic<2.12.0,>=2.0.0
36
37
  Requires-Dist: pydantic-settings<2.11.0,>=2.0.0
37
38
  Requires-Dist: tomlkit
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = 'relationalai'
3
- version = '1.0.0a4'
3
+ version = '1.0.0a5'
4
4
  description = 'RelationalAI Library and CLI'
5
5
  readme="docs/pypi/README.md"
6
6
  authors = [
7
7
  { name="RelationalAI", email="support@relational.ai" },
8
8
  ]
9
- requires-python = ">= 3.10"
9
+ requires-python = ">= 3.10, <3.14"
10
10
  dependencies = [
11
- "lqp==0.1.19",
11
+ "lqp",
12
12
  "snowflake-connector-python[secure-local-storage]",
13
13
  "snowflake-snowpark-python>=1.38.0",
14
14
  "typing-extensions",
@@ -35,8 +35,7 @@ dependencies = [
35
35
  "more-itertools",
36
36
  "sqlglot",
37
37
  "pyyaml",
38
- # TODO: Add back when confocal is published to PyPI
39
- # "confocal @ git+https://github.com/joshuafcole/confocal.git",
38
+ "confocal",
40
39
  "pydantic>=2.0.0,<2.12.0",
41
40
  "pydantic-settings>=2.0.0,<2.11.0",
42
41
  "tomlkit",
@@ -63,10 +62,22 @@ exclude = []
63
62
 
64
63
  [tool.pyright]
65
64
  include = ["src", "tests", "example"]
66
- exclude = ["**/node_modules", "**/__pycache__", "**/.*"]
65
+ exclude = ["**/node_modules", "**/__pycache__", "**/.*", "src/v0/**", "src/relationalai/shims/**", "tests/unified/tests/dry_run/**", "tests/unified/tests/pragmas/**", "tests/unified/tests/tables/**", "tests/unified/tests/warnings/**", "tests/reasoners/graphs/**", "tests/shims/**", "tests/tpch/**", "tests/unified/test_all.py"]
67
66
  useLibraryCodeForTypes = true
68
67
  reportMissingImports = true
69
68
  reportMissingTypeStubs = false
70
- pythonVersion = "3.10"
69
+ pythonVersion = "3.13"
70
+ venvPath = "."
71
+ venv = ".venv"
71
72
  typeCheckingMode = "standard"
72
73
  reportUnusedExpression = false
74
+
75
+ [tool.pytest.ini_options]
76
+ markers = [
77
+ "experimental: marks tests as experimental/loopy (deselect with '-m \"not experimental\"')",
78
+ ]
79
+ addopts = "-m 'not experimental'"
80
+ filterwarnings = [
81
+ "ignore:Type google\\._upb\\._message\\.MessageMapContainer uses PyType_Spec:DeprecationWarning",
82
+ "ignore:Type google\\._upb\\._message\\.ScalarMapContainer uses PyType_Spec:DeprecationWarning",
83
+ ]
@@ -6,32 +6,28 @@ Main configuration class for PyRel (YAML-based).
6
6
  from __future__ import annotations
7
7
 
8
8
  from abc import ABC
9
- from typing import Any, TypeVar, overload, Literal, TYPE_CHECKING
9
+ from typing import Any, TypeVar, overload, Literal, TYPE_CHECKING, cast
10
10
  from pydantic import Field, model_validator
11
11
  from pydantic_settings import SettingsConfigDict
12
-
13
- try:
14
- from confocal import BaseConfig
15
- except ImportError:
16
- # Confocal not yet published to PyPI - use pydantic_settings as fallback
17
- # Config system not actively used yet, this is just to prevent import errors
18
- from pydantic_settings import BaseSettings as BaseConfig # type: ignore[misc, assignment]
12
+ from confocal import BaseConfig
19
13
 
20
14
  if TYPE_CHECKING:
21
15
  import snowflake.snowpark
22
- import duckdb
16
+ import duckdb # type: ignore[import-not-found]
17
+ import requests
23
18
 
24
- from .connections import ConnectionConfig, BaseConnection, SnowflakeConnection, DuckDBConnection
19
+ from .connections import ConnectionConfig, BaseConnection, SnowflakeConnection, DuckDBConnection, LocalConnection
25
20
  from .config_fields import EngineConfig, DataConfig, CompilerConfig, ModelConfig, ReasonerConfig, DebugConfig
26
21
  from .external.dbt_converter import convert_dbt_to_rai
27
22
  from .external.snowflake_converter import convert_snowflake_to_rai
28
- from .external.utils import find_dbt_profiles_file, find_snowflake_config_file
23
+ from .external.raiconfig_converter import convert_raiconfig_to_rai
24
+ from .external.utils import find_dbt_profiles_file, find_snowflake_config_file, find_raiconfig_toml_file
29
25
 
30
26
  # TypeVar for generic connection retrieval
31
27
  T = TypeVar('T', bound=BaseConnection)
32
28
 
33
29
 
34
- class _Config(BaseConfig, ABC): # type: ignore for now until we publish confocal
30
+ class _Config(BaseConfig, ABC):
35
31
  """Base configuration class with common fields and methods."""
36
32
 
37
33
  active_profile: str | None = Field(
@@ -171,6 +167,8 @@ class _Config(BaseConfig, ABC): # type: ignore for now until we publish confocal
171
167
  connection_class = "SnowflakeConnection"
172
168
  elif isinstance(connection, DuckDBConnection):
173
169
  connection_class = "DuckDBConnection"
170
+ elif isinstance(connection, LocalConnection):
171
+ connection_class = "LocalConnection"
174
172
  else:
175
173
  connection_class = actual_type
176
174
 
@@ -179,18 +177,15 @@ class _Config(BaseConfig, ABC): # type: ignore for now until we publish confocal
179
177
  f"Got: {connection_class} (actual: {actual_type})"
180
178
  )
181
179
 
182
- return connection
183
-
184
- @overload
185
- def get_session(self, connection_type: type[SnowflakeConnection]) -> snowflake.snowpark.Session: ...
180
+ return cast(T, connection)
186
181
 
187
182
  @overload
188
- def get_session(self, connection_type: type[DuckDBConnection]) -> duckdb.DuckDBPyConnection: ...
183
+ def get_session(self) -> snowflake.snowpark.Session | duckdb.DuckDBPyConnection | requests.Session: ...
189
184
 
190
185
  @overload
191
- def get_session(self, connection_type: None = None) -> snowflake.snowpark.Session | duckdb.DuckDBPyConnection: ...
186
+ def get_session(self, connection_type: type[SnowflakeConnection] | type[DuckDBConnection] | type[LocalConnection]) -> snowflake.snowpark.Session | duckdb.DuckDBPyConnection | requests.Session: ...
192
187
 
193
- def get_session(self, connection_type: type[SnowflakeConnection] | type[DuckDBConnection] | None = None) -> snowflake.snowpark.Session | duckdb.DuckDBPyConnection:
188
+ def get_session(self, connection_type: type[SnowflakeConnection] | type[DuckDBConnection] | type[LocalConnection] | None = None) -> snowflake.snowpark.Session | duckdb.DuckDBPyConnection | requests.Session:
194
189
  if connection_type is None:
195
190
  connection = self.get_default_connection()
196
191
  return connection.get_session()
@@ -250,6 +245,35 @@ class ConfigFromDBT(_Config):
250
245
  return convert_dbt_to_rai(data)
251
246
 
252
247
 
248
+ class ConfigFromRAIConfigToml(_Config):
249
+ """Config loaded from deprecated raiconfig.toml (for backwards compatibility)"""
250
+
251
+ source: Literal["raiconfig_toml"] = Field(default="raiconfig_toml", exclude=True)
252
+
253
+ model_config = SettingsConfigDict(
254
+ toml_file=find_raiconfig_toml_file(),
255
+ extra="ignore",
256
+ nested_model_default_partial_update=True,
257
+ )
258
+
259
+ @model_validator(mode='before')
260
+ @classmethod
261
+ def convert_raiconfig_structure(cls, data: Any):
262
+ """Convert deprecated raiconfig.toml format to new format."""
263
+ if not isinstance(data, dict):
264
+ return data
265
+
266
+ # Add deprecation warning
267
+ import warnings
268
+ warnings.warn(
269
+ "raiconfig.toml is deprecated. Please migrate to raiconfig.yaml.",
270
+ DeprecationWarning,
271
+ stacklevel=2
272
+ )
273
+
274
+ return convert_raiconfig_to_rai(data)
275
+
276
+
253
277
  # =============================================================================
254
278
  # Config Factory - Tries each source in order
255
279
  # =============================================================================
@@ -258,11 +282,13 @@ def Config(**data) -> _Config:
258
282
  """
259
283
  Create Config by trying multiple sources in priority order:
260
284
  1. RAIConfig (raiconfig.yaml) - or direct data if provided
261
- 2. ConfigFromSnowflake (config.toml) - only if no data provided
262
- 3. ConfigFromDBT (profiles.yml) - only if no data provided
285
+ 2. ConfigFromRAIConfigToml (raiconfig.toml - DEPRECATED) - only if no data provided
286
+ 3. ConfigFromSnowflake (config.toml) - only if no data provided
287
+ 4. ConfigFromDBT (profiles.yml) - only if no data provided
263
288
  """
264
289
  sources = [
265
290
  ("RAIConfig (raiconfig.yaml)", RAIConfig, True), # passes **data
291
+ ("ConfigFromRAIConfigToml (raiconfig.toml - DEPRECATED)", ConfigFromRAIConfigToml, False),
266
292
  ("ConfigFromSnowflake (config.toml)", ConfigFromSnowflake, False),
267
293
  ("ConfigFromDBT (profiles.yml)", ConfigFromDBT, False),
268
294
  ]
@@ -5,8 +5,9 @@ This module exports:
5
5
  - BaseConnection: Base class for all connections
6
6
  - Snowflake authenticators: UsernamePasswordAuth, UsernamePasswordMFAAuth, etc.
7
7
  - DuckDBConnection: DuckDB connection
8
+ - LocalConnection: Local RAI server connection
8
9
  - SnowflakeConnection: Discriminated union of Snowflake authenticators
9
- - ConnectionConfig: Top-level discriminated union (Snowflake | DuckDB)
10
+ - ConnectionConfig: Top-level discriminated union (Snowflake | DuckDB | Local)
10
11
  """
11
12
 
12
13
  from __future__ import annotations
@@ -26,9 +27,10 @@ from .snowflake import (
26
27
  SnowflakeAuthenticator,
27
28
  )
28
29
  from .duckdb import DuckDBConnection
30
+ from .local import LocalConnection
29
31
 
30
32
  ConnectionConfig = Annotated[
31
- Union[SnowflakeAuthenticator, DuckDBConnection],
33
+ Union[SnowflakeAuthenticator, DuckDBConnection, LocalConnection],
32
34
  Field(discriminator="type")
33
35
  ]
34
36
 
@@ -42,5 +44,6 @@ __all__ = [
42
44
  "ProgrammaticAccessTokenAuth",
43
45
  "SnowflakeConnection",
44
46
  "DuckDBConnection",
47
+ "LocalConnection",
45
48
  "ConnectionConfig",
46
49
  ]
@@ -4,7 +4,7 @@ from typing import Literal, Any, TYPE_CHECKING
4
4
  from pydantic import Field
5
5
 
6
6
  if TYPE_CHECKING:
7
- import duckdb
7
+ import duckdb # type: ignore[import-not-found]
8
8
 
9
9
  from .base import BaseConnection
10
10
 
@@ -17,7 +17,7 @@ class DuckDBConnection(BaseConnection):
17
17
  config: dict[str, Any] | None = Field(None, description="Additional DuckDB configuration options")
18
18
 
19
19
  def get_session(self) -> duckdb.DuckDBPyConnection:
20
- import duckdb
20
+ import duckdb # type: ignore[import-not-found]
21
21
 
22
22
  if self._cached_session is None:
23
23
  self._cached_session = duckdb.connect(
@@ -0,0 +1,31 @@
1
+ """Local server connection configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Literal, TYPE_CHECKING
6
+ from pydantic import Field
7
+
8
+ if TYPE_CHECKING:
9
+ import requests
10
+
11
+ from .base import BaseConnection
12
+
13
+
14
+ class LocalConnection(BaseConnection):
15
+ """Connection to a local RAI server."""
16
+
17
+ type: Literal["local"] = "local"
18
+
19
+ host: str = Field(default="localhost", description="Local server host")
20
+ port: int = Field(default=8010, description="Local server port")
21
+ engine: str | None = Field(default=None, description="Engine name")
22
+
23
+ def get_session(self) -> requests.Session:
24
+ """Return a requests.Session instance for the local server."""
25
+ # Should we migrate to using LocalClient to PyRel V1?
26
+ from v0.relationalai.clients.local import LocalClient # type: ignore[import-not-found]
27
+
28
+ if self._cached_session is None:
29
+ self._cached_session = LocalClient(host=self.host, port=self.port).http_session
30
+
31
+ return self._cached_session
@@ -71,7 +71,6 @@ class UsernamePasswordAuth(SnowflakeConnectionBase):
71
71
  "password": cast(SecretStr, self.password).get_secret_value(),
72
72
  "account": self.account,
73
73
  "warehouse": self.warehouse,
74
- "authenticator": self.authenticator,
75
74
  }
76
75
 
77
76
 
@@ -0,0 +1,235 @@
1
+ """
2
+ Converter for deprecated raiconfig.toml to RAI Config format.
3
+ """
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Any
8
+
9
+ from .raiconfig_models import RAIConfigFile, RAIConfigSnowflakeProfile, RAIConfigLocalProfile
10
+
11
+
12
+ # Central field mapping configuration
13
+ # Format: "old_field_name": ("new_section", "new_field_name")
14
+ # where section=None means top-level field
15
+ FIELD_MAPPINGS = {
16
+ # Top-level fields (stay at top level)
17
+ "use_graph_index": (None, "use_graph_index"),
18
+ "use_direct_access": (None, "use_direct_access"),
19
+ "enable_otel_handler": (None, "enable_otel_handler"),
20
+ "use_package_manager": (None, "use_package_manager"),
21
+ "reuse_model": (None, "reuse_model"),
22
+ "skip_invalid_data": (None, "skip_invalid_data"),
23
+
24
+ # Engine fields
25
+ "engine": ("engine", "name"),
26
+ "engine_size": ("engine", "size"),
27
+ "auto_suspend_mins": ("engine", "auto_suspend_mins"),
28
+
29
+ # Data fields
30
+ "wait_for_stream_sync": ("data", "wait_for_stream_sync"),
31
+ "ensure_change_tracking": ("data", "ensure_change_tracking"),
32
+ "data_freshness_mins": ("data", "data_freshness_mins"),
33
+ "query_timeout_mins": ("data", "query_timeout_mins"),
34
+ "download_url_type": ("data", "download_url_type"),
35
+
36
+ # Debug fields
37
+ "debug": ("debug", "enabled"), # Note: maps to "enabled"!
38
+ "show_full_traces": ("debug", "show_full_traces"),
39
+
40
+ # Compiler fields
41
+ "use_monotype_operators": ("compiler", "use_monotype_operators"),
42
+ "show_corerel_errors": ("compiler", "show_corerel_errors"),
43
+ "dry_run": ("compiler", "dry_run"),
44
+ "inspect_df": ("compiler", "inspect_df"),
45
+ "use_value_types": ("compiler", "use_value_types"),
46
+ "debug_hidden_keys": ("compiler", "debug_hidden_keys"),
47
+ "wide_outputs": ("compiler", "wide_outputs"),
48
+ "strict": ("compiler", "strict"),
49
+ "use_inlined_intermediates": ("compiler", "use_inlined_intermediates"),
50
+ "inline_value_maps": ("compiler", "inline_value_maps"),
51
+ "inline_entity_maps": ("compiler", "inline_entity_maps"),
52
+
53
+ # Model fields
54
+ "keep": ("model", "keep"),
55
+ "isolated": ("model", "isolated"),
56
+ "nowait_durable": ("model", "nowait_durable"),
57
+ }
58
+
59
+ # Connection fields (stay in connection dict)
60
+ CONNECTION_FIELDS = {
61
+ "account", "warehouse", "user", "password", "role", "database", "schema",
62
+ "authenticator", "rai_app_name", "passcode",
63
+ "private_key_path", "private_key_passphrase", "token",
64
+ }
65
+
66
+ # Old -> New field name mappings for connection fields
67
+ # Old field names from deprecated raiconfig.toml are mapped to new names
68
+ # These are accessed via model_extra in RAIConfigSnowflakeProfile.convert()
69
+ CONNECTION_FIELD_MAPPINGS = {
70
+ "private_key_file": "private_key_path",
71
+ "private_key_file_pwd": "private_key_passphrase",
72
+ "token_file_path": "token",
73
+ }
74
+
75
+
76
+ def map_fields_to_nested_structure(merged: dict[str, Any]) -> dict[str, Any]:
77
+ """
78
+ Map flat config fields to nested structure using FIELD_MAPPINGS.
79
+
80
+ This replaces all the manual if statements!
81
+
82
+ Args:
83
+ merged: Flat dictionary with all config fields
84
+
85
+ Returns:
86
+ Nested dictionary structured according to new config format
87
+ """
88
+ result = {}
89
+ nested_sections = {} # Collect fields for each section
90
+
91
+ for old_field, (section, new_field) in FIELD_MAPPINGS.items():
92
+ if old_field not in merged or merged[old_field] is None:
93
+ continue # Skip missing or None values
94
+
95
+ value = merged[old_field]
96
+
97
+ if section is None:
98
+ # Top-level field
99
+ result[new_field] = value
100
+ else:
101
+ # Nested section field
102
+ if section not in nested_sections:
103
+ nested_sections[section] = {}
104
+ nested_sections[section][new_field] = value
105
+
106
+ # Add nested sections to result
107
+ for section, fields in nested_sections.items():
108
+ if fields: # Only add non-empty sections
109
+ result[section] = fields
110
+
111
+ return result
112
+
113
+
114
+ def merge_profile_with_toplevel(
115
+ config_file: RAIConfigFile,
116
+ profile: RAIConfigSnowflakeProfile | RAIConfigLocalProfile
117
+ ) -> dict[str, Any]:
118
+ """
119
+ Merge profile over top-level config (profile takes precedence).
120
+
121
+ This matches the v0 behavior where profile-specific settings override
122
+ global defaults.
123
+ """
124
+ # Start with top-level config
125
+ merged = config_file.model_dump(
126
+ exclude={"profile", "active_profile"},
127
+ exclude_none=True
128
+ )
129
+
130
+ # Overlay profile fields (they take precedence)
131
+ profile_dict = profile.model_dump(exclude_none=True)
132
+
133
+ # Merge profile into config (profile overrides top-level)
134
+ merged.update(profile_dict)
135
+
136
+ return merged
137
+
138
+
139
+ def convert_raiconfig_to_rai(
140
+ rai_config: dict[str, Any],
141
+ profile_name: str | None = None
142
+ ) -> dict[str, Any]:
143
+ """
144
+ Convert deprecated raiconfig.toml to new RAI Config format.
145
+
146
+ Flow:
147
+ 1. Validate with RAIConfigFile model
148
+ 2. Select active profile (parameter > active_profile > single profile)
149
+ 3. Merge profile over top-level config (profile takes precedence)
150
+ 4. Extract connection from profile
151
+ 5. Map flat fields to nested structure
152
+
153
+ Args:
154
+ rai_config: Parsed TOML config dict
155
+ profile_name: Profile name to use (overrides active_profile)
156
+
157
+ Returns:
158
+ Dict in new config format ready for RAIConfig model
159
+ """
160
+ config_file = RAIConfigFile(**rai_config)
161
+
162
+ # Profile selection logic
163
+ if not profile_name:
164
+ profile_name = config_file.active_profile
165
+
166
+ # Supported platforms
167
+ supported_platforms = {"snowflake", "local"}
168
+
169
+ # Filter to supported profiles (Snowflake and Local)
170
+ supported_profiles = {
171
+ name: data for name, data in config_file.profile.items()
172
+ if data.get("platform", "snowflake") in supported_platforms
173
+ }
174
+
175
+ if not profile_name and len(supported_profiles) == 1:
176
+ # Auto-select single supported profile
177
+ profile_name = next(iter(supported_profiles.keys()))
178
+
179
+ if not profile_name:
180
+ if not supported_profiles:
181
+ raise ValueError(
182
+ "No supported profiles found in raiconfig.toml. "
183
+ "Supported platforms: snowflake, local. "
184
+ "Please add a supported profile or migrate to raiconfig.yaml."
185
+ )
186
+ raise ValueError(
187
+ f"No profile specified. Either set 'active_profile' in config, "
188
+ f"provide profile_name parameter, or ensure only one supported profile exists. "
189
+ f"Available profiles: {list(supported_profiles.keys())}"
190
+ )
191
+
192
+ if profile_name not in config_file.profile:
193
+ available = list(config_file.profile.keys())
194
+ raise ValueError(
195
+ f"Profile '{profile_name}' not found. Available profiles: {available}"
196
+ )
197
+
198
+ # Get profile data
199
+ profile_data = config_file.profile[profile_name]
200
+ platform = profile_data.get("platform", "snowflake")
201
+
202
+ # Validate and convert based on platform
203
+ if platform == "local":
204
+ profile = RAIConfigLocalProfile(**profile_data)
205
+ connection = profile.convert()
206
+ connection_name = "local"
207
+ elif platform == "snowflake":
208
+ profile = RAIConfigSnowflakeProfile(**profile_data)
209
+ connection = profile.convert()
210
+ connection_name = "snowflake"
211
+ else:
212
+ raise ValueError(
213
+ f"Profile '{profile_name}' uses platform '{platform}'. "
214
+ f"Supported platforms: snowflake, local. "
215
+ f"Please use a supported profile or migrate to raiconfig.yaml."
216
+ )
217
+
218
+ # Merge profile with top-level config
219
+ merged = merge_profile_with_toplevel(config_file, profile)
220
+
221
+ # Build base result
222
+ result = {
223
+ "connections": {connection_name: connection},
224
+ "default_connection": connection_name,
225
+ }
226
+
227
+ # Map all config fields automatically using FIELD_MAPPINGS
228
+ mapped_fields = map_fields_to_nested_structure(merged)
229
+ result.update(mapped_fields)
230
+
231
+ # Handle reasoner separately (nested dict structure)
232
+ if "reasoner" in merged and merged["reasoner"]:
233
+ result["reasoner"] = merged["reasoner"]
234
+
235
+ return result