relationalai 1.0.0a2__py3-none-any.whl → 1.0.0a4__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.
Files changed (57) hide show
  1. relationalai/config/shims.py +1 -0
  2. relationalai/semantics/__init__.py +7 -1
  3. relationalai/semantics/frontend/base.py +19 -13
  4. relationalai/semantics/frontend/core.py +30 -2
  5. relationalai/semantics/frontend/front_compiler.py +38 -11
  6. relationalai/semantics/frontend/pprint.py +1 -1
  7. relationalai/semantics/metamodel/rewriter.py +6 -2
  8. relationalai/semantics/metamodel/typer.py +70 -26
  9. relationalai/semantics/reasoners/__init__.py +11 -0
  10. relationalai/semantics/reasoners/graph/__init__.py +38 -0
  11. relationalai/semantics/reasoners/graph/core.py +9015 -0
  12. relationalai/shims/executor.py +4 -1
  13. relationalai/shims/hoister.py +9 -0
  14. relationalai/shims/mm2v0.py +47 -34
  15. relationalai/tools/cli/cli.py +138 -0
  16. relationalai/tools/cli/docs.py +394 -0
  17. {relationalai-1.0.0a2.dist-info → relationalai-1.0.0a4.dist-info}/METADATA +5 -3
  18. {relationalai-1.0.0a2.dist-info → relationalai-1.0.0a4.dist-info}/RECORD +57 -43
  19. v0/relationalai/__init__.py +69 -22
  20. v0/relationalai/clients/__init__.py +15 -2
  21. v0/relationalai/clients/client.py +4 -4
  22. v0/relationalai/clients/exec_txn_poller.py +91 -0
  23. v0/relationalai/clients/local.py +5 -5
  24. v0/relationalai/clients/resources/__init__.py +8 -0
  25. v0/relationalai/clients/{azure.py → resources/azure/azure.py} +12 -12
  26. v0/relationalai/clients/resources/snowflake/__init__.py +20 -0
  27. v0/relationalai/clients/resources/snowflake/cli_resources.py +87 -0
  28. v0/relationalai/clients/resources/snowflake/direct_access_resources.py +717 -0
  29. v0/relationalai/clients/resources/snowflake/engine_state_handlers.py +309 -0
  30. v0/relationalai/clients/resources/snowflake/error_handlers.py +199 -0
  31. v0/relationalai/clients/resources/snowflake/resources_factory.py +99 -0
  32. v0/relationalai/clients/{snowflake.py → resources/snowflake/snowflake.py} +642 -1399
  33. v0/relationalai/clients/{use_index_poller.py → resources/snowflake/use_index_poller.py} +51 -12
  34. v0/relationalai/clients/resources/snowflake/use_index_resources.py +188 -0
  35. v0/relationalai/clients/resources/snowflake/util.py +387 -0
  36. v0/relationalai/early_access/dsl/ir/executor.py +4 -4
  37. v0/relationalai/early_access/dsl/snow/api.py +2 -1
  38. v0/relationalai/errors.py +18 -0
  39. v0/relationalai/experimental/solvers.py +7 -7
  40. v0/relationalai/semantics/devtools/benchmark_lqp.py +4 -5
  41. v0/relationalai/semantics/devtools/extract_lqp.py +1 -1
  42. v0/relationalai/semantics/internal/snowflake.py +1 -1
  43. v0/relationalai/semantics/lqp/executor.py +7 -12
  44. v0/relationalai/semantics/lqp/rewrite/extract_keys.py +25 -3
  45. v0/relationalai/semantics/metamodel/util.py +6 -5
  46. v0/relationalai/semantics/reasoners/optimization/solvers_pb.py +335 -84
  47. v0/relationalai/semantics/rel/executor.py +14 -11
  48. v0/relationalai/semantics/sql/executor/snowflake.py +9 -5
  49. v0/relationalai/semantics/tests/test_snapshot_abstract.py +1 -1
  50. v0/relationalai/tools/cli.py +26 -30
  51. v0/relationalai/tools/cli_helpers.py +10 -2
  52. v0/relationalai/util/otel_configuration.py +2 -1
  53. v0/relationalai/util/otel_handler.py +1 -1
  54. {relationalai-1.0.0a2.dist-info → relationalai-1.0.0a4.dist-info}/WHEEL +0 -0
  55. {relationalai-1.0.0a2.dist-info → relationalai-1.0.0a4.dist-info}/entry_points.txt +0 -0
  56. {relationalai-1.0.0a2.dist-info → relationalai-1.0.0a4.dist-info}/top_level.txt +0 -0
  57. /v0/relationalai/clients/{cache_store.py → resources/snowflake/cache_store.py} +0 -0
@@ -2,7 +2,7 @@ relationalai/__init__.py,sha256=hHhZc1h-IDj0pzPF67763g0a4Pdh7W-4GQpyqL60dec,152
2
2
  relationalai/config/__init__.py,sha256=QL7MxBN7xy50h4Sqg3jotuyg-6EisCEtJCHCWQrL1ME,1524
3
3
  relationalai/config/config.py,sha256=CUBkOYWu3IgCAa4oHVwEozfMbZgAX3hENo-Va2gsdIs,10477
4
4
  relationalai/config/config_fields.py,sha256=Gskc1Ugsi4xowepDlma1HNaYdQ_wS2RiMpUaG6aNdv4,4081
5
- relationalai/config/shims.py,sha256=Xoqvie0Rlc7Qr3FvipPdcDiGwHJmFk3m5TQ_vNRPZgA,14
5
+ relationalai/config/shims.py,sha256=YM3rtPNpRSrQomRw5xNSekU5Da3dcYbxxzGryQt7RME,41
6
6
  relationalai/config/connections/__init__.py,sha256=5709qbuJxqg2WedSoejpdDrXpvwowG_xDS8adoexeOA,1171
7
7
  relationalai/config/connections/base.py,sha256=9DkPLosMc9yb6uFFks_FP_e-47K5wMD14tW_cJ05s_A,759
8
8
  relationalai/config/connections/duckdb.py,sha256=PhhJXARTJf2ObQa9CYMJlZMGohMNCg879cKHvUr1M5Q,891
@@ -13,22 +13,25 @@ relationalai/config/external/dbt_models.py,sha256=Px_C5nID_3te3o1wfsYJjrKkZcTPUY
13
13
  relationalai/config/external/snowflake_converter.py,sha256=Vnaqgazd-XwZybqbOU2YK3qYf0if-KwdTORaP0xTff4,1280
14
14
  relationalai/config/external/snowflake_models.py,sha256=6hCaVMdhESxbW-HF0-s51Z4WIc97bS1FrZRKZ4DXE6A,2681
15
15
  relationalai/config/external/utils.py,sha256=IJsZUCLI4Y2erETERQKcd-Alo4wNMTi1AHkdb92Z-n0,422
16
- relationalai/semantics/__init__.py,sha256=N3rTlD4oIyIkCqTNNWWUjQbJMyEbot6XNR_NvmtiyDo,4340
16
+ relationalai/semantics/__init__.py,sha256=Td5zPCjwRbYV-UA05kXwnuL1BW-iRxiWEV6sJksrzTY,4640
17
17
  relationalai/semantics/backends/lqp/annotations.py,sha256=TUk_fuXyBWs7H4BHx-4jZGonSD8MdgPswt-D2k7QC-4,390
18
18
  relationalai/semantics/backends/sql/sql_compiler.py,sha256=p_1YjROlcmu0kwvI32qUWAmMQntp_A6H3_vgGDDLiQk,10628
19
19
  relationalai/semantics/frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- relationalai/semantics/frontend/base.py,sha256=yUBeXvF0cRYzKk4sTSh7Ja5PUSwEszvyuQjT1E25Cjc,65783
21
- relationalai/semantics/frontend/core.py,sha256=mwPG9HxQWrh77O5n7j_M9lt96gTyYsoUE_BFz7qcfXw,7396
22
- relationalai/semantics/frontend/front_compiler.py,sha256=q84SDS1AQllKSnZya1k8gUG_SD12zIl9QbWIU9zFliU,57403
23
- relationalai/semantics/frontend/pprint.py,sha256=IMkKwkZs3ohOIjYUIjT10poa1L39F_PrLdSjV-D4wpk,14977
20
+ relationalai/semantics/frontend/base.py,sha256=xxs0udBqK4ErwA9pPAtFXV-Ky4keEOJQ0k4gsOKrMUQ,66007
21
+ relationalai/semantics/frontend/core.py,sha256=nTFDsF18WemplUmxOeCbUTHGhrCmxWIeRjC5amKkdDE,8399
22
+ relationalai/semantics/frontend/front_compiler.py,sha256=RIa12ifKoWJ0HqwrBSiDniKF5K-AGEJ1L8VC4wOyuck,58615
23
+ relationalai/semantics/frontend/pprint.py,sha256=mc2i4MlmPpsjXWx6bO_J7lMrxUeDfO2du4eaPZi6pFU,14982
24
24
  relationalai/semantics/metamodel/__init__.py,sha256=mISE8niHeEAD6QjX8pi_apFfMIVCZ7dGeCXFGtFPTvk,364
25
25
  relationalai/semantics/metamodel/builtins.py,sha256=rmeVdjw3kDSsx7TjpnFpy8W6OrHuUV1GQwazWhaWrG0,7009
26
26
  relationalai/semantics/metamodel/metamodel.py,sha256=TgIufxJslJZkf5_RleTU19i2h0DTW6CodSYqwyVcLEc,13899
27
27
  relationalai/semantics/metamodel/metamodel_analyzer.py,sha256=tusDRO2az1yiF951SDg-cHOaNQ1M7qw1HG1cxV3YuxU,16228
28
28
  relationalai/semantics/metamodel/metamodel_compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  relationalai/semantics/metamodel/pprint.py,sha256=65t7tZTfBP2qOlKShYM8nwrbsiS3gKaCYkUJepu0a2o,15684
30
- relationalai/semantics/metamodel/rewriter.py,sha256=CEkYxsyFPF-nEHktJxwzOY6RQzo9Nr4Welhw2YDq9q8,8313
31
- relationalai/semantics/metamodel/typer.py,sha256=Q35spCuIRMGE2BslgWiyZvQWb3Z0VzCx1YF_Lzk1Sts,55268
30
+ relationalai/semantics/metamodel/rewriter.py,sha256=14T2fzoBLMvYZNOy8VjRq_NS7rwU9EECbkQXJxfdvDw,8436
31
+ relationalai/semantics/metamodel/typer.py,sha256=Acc1NiS9oCrqt9ZP_uI4GyT0sduOwmu1tS5U-3Irndo,57654
32
+ relationalai/semantics/reasoners/__init__.py,sha256=T1ysWgmX85pULUqdxZroPexY45DvfzsV3J2xJQHr3nQ,377
33
+ relationalai/semantics/reasoners/graph/__init__.py,sha256=1hFTc-a8tj4LJv7bYUSGqRCKAuSygbhqwFH25lebWDs,1356
34
+ relationalai/semantics/reasoners/graph/core.py,sha256=prUtjt8nb87Xp9z38Y6bD_iqFaYWCZLwBGhWOmCs20I,399827
32
35
  relationalai/semantics/std/__init__.py,sha256=_cbDmeCT634GtdGJ0CqgfJw6pFaJR0ajR3B_bWCr_9A,2627
33
36
  relationalai/semantics/std/aggregates.py,sha256=uCwoBLmuRBBq9lTf5ACD3yosvtp5Wi8IQUCF_dKWS80,6259
34
37
  relationalai/semantics/std/common.py,sha256=raWuvX2u4juKPU0BKtqF5xvJSDjKHF1BWQVFioBmOf8,1658
@@ -42,16 +45,17 @@ relationalai/semantics/std/numbers.py,sha256=AcmESbBXIQDkDL6YGZXYKmpo7uyYD1or7su
42
45
  relationalai/semantics/std/re.py,sha256=xMuQY5sG3fEL1efHDNFnVpnXVkDJMmDVUEbHiPr1oqA,4375
43
46
  relationalai/semantics/std/strings.py,sha256=w0k06gDfyMS6GODPjhG0gl2SkJ0aH5aYezS8jG9jsU8,5617
44
47
  relationalai/shims/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- relationalai/shims/executor.py,sha256=KKPno0Jfeb8KK9jSdLl-T5EeBkcxWDC7HDUcMxTQkw4,7405
48
+ relationalai/shims/executor.py,sha256=LtpBx74mhbJ1bCUVvetDlk5iDAEi_x-wNZ6iq5WPW2s,7531
46
49
  relationalai/shims/helpers.py,sha256=1v6D-wDq3nCwDz4egdGUeleRC0fK6wfo9fIQIeQCfZA,4508
47
- relationalai/shims/hoister.py,sha256=YXXi9pWpKQ7Sd5DzRVl_78z4OYCoKzFfIMMp6OIN3EM,8797
48
- relationalai/shims/mm2v0.py,sha256=xt08HGv06ABxR1u1EZsdDc_2qVuNw5XNLQ8HKuK_YxU,63715
50
+ relationalai/shims/hoister.py,sha256=maebjwse3GvOFCHJWgBXBTwpiqeny8DAyoFW6HtUzI8,9423
51
+ relationalai/shims/mm2v0.py,sha256=G1Gct9rtH6KF1z0yN6yZj0WFTACfeJhcbRCZTyc1eRU,64436
49
52
  relationalai/tools/debugger.py,sha256=B8QIE1-WFdfkiPoFFn1yztr9t6yf5PI32Y9Y9XzQOJk,10798
50
53
  relationalai/tools/typer_debugger.py,sha256=__oLODEBwgt6pYIn1jgIPlenFmiK7iqXfTY_mozHxXA,3182
51
54
  relationalai/tools/cli/__init__.py,sha256=jkIlp7wftUuSIlczwZD4_siT5cs6mzpsNGrQ_kMkLZ4,74
52
- relationalai/tools/cli/cli.py,sha256=aNXpFb-8GaBjv1J8qk32EeRXu4bDuBnlVsVkNasnfvw,2278
55
+ relationalai/tools/cli/cli.py,sha256=N2quQWjcgq7qqiW1WhkDGOVZZL0nfNfUc59zsUj95pY,5958
53
56
  relationalai/tools/cli/config_template.py,sha256=l52KOI3ZBkhtM9V7EQSUOEddHVdMnjl21hPnnQSwdBE,949
54
57
  relationalai/tools/cli/dev.py,sha256=1GjfjTLi4BXbV5fXKlF5g1bc8-YsA9oKOBSntquBd8g,340
58
+ relationalai/tools/cli/docs.py,sha256=GSUMHVqHMzrpYw1wOHTKfbkZW-dozRfzoKpgb2o4wvQ,12648
55
59
  relationalai/tools/cli/components/__init__.py,sha256=H91hUt3lohr6kAVGOHgTKpDgwRc2Ka4a-iw2domfm5o,143
56
60
  relationalai/tools/cli/components/progress_reader.py,sha256=mrAFI4p1T7tgDNd_S9QAF9QXuF5RlWGSg5fzQY1_MRY,56767
57
61
  relationalai/tools/cli/components/utils.py,sha256=n_st7K3B8bDLsi8rjYgilPtx7TJRcU5xZlauGUrjyv8,1700
@@ -66,13 +70,13 @@ relationalai/util/schema.py,sha256=8pzpI4eMg1W4rsyBZtrU_AzCuBxNx4m_cX_XR1BFjCI,6
66
70
  relationalai/util/source.py,sha256=k49NhkCDST4Wa_1xJnEsfG2JZIdADlqzqvHt4FCYfq4,6645
67
71
  relationalai/util/structures.py,sha256=3QxHkgJSy9oPom6eJX2z1O3pJugINqD5DUjXwoCWwRg,4990
68
72
  relationalai/util/tracing.py,sha256=peOVe55R3B9gVdXAsVPGZ7_jw0KvYlkito-_5zERYtg,9632
69
- v0/relationalai/__init__.py,sha256=iub3QOhxIMGilcne0MUyhvs65k4bU58v-H4Ku-N4cso,8219
73
+ v0/relationalai/__init__.py,sha256=IcozhVGyoDvBaLAbCgGxJ7JBDbgsMhNkEgVzJ2rZFVY,10464
70
74
  v0/relationalai/compiler.py,sha256=5LZY8AyqadkTLSe_xoJ3J9iXOmetz5YQn9EjJKk8XeQ,6411
71
75
  v0/relationalai/debugging.py,sha256=AuzbwLT1s71tctuIbYNhfWY2vR_opB7ItbmlqFVHgrY,12024
72
76
  v0/relationalai/dependencies.py,sha256=tL113efcISkJUiDXYHmRdU_usdD7gmee-VRHA7N4EFA,16574
73
77
  v0/relationalai/docutils.py,sha256=1gVv9mk0ytdMB2W7_NvslJefmSQtTOg8LHTCDcGCjyE,1554
74
78
  v0/relationalai/dsl.py,sha256=9BdpqzDNcW4717GyxVAYIMZ7ctE_bvXS-5sNLIbXQZ0,66128
75
- v0/relationalai/errors.py,sha256=2rFE3tWDhhZ3GCzG1UNuCkns3xxsscUU6wx_3VvoVWI,95976
79
+ v0/relationalai/errors.py,sha256=bwKNODY5aROWRRW-Df2zxHk5ACxWnR0zOhOdOHO9Yi0,96831
76
80
  v0/relationalai/metagen.py,sha256=o10PNvR_myr_61DC8g6lkB093bFo9qXGUkZKgKyfXiE,26821
77
81
  v0/relationalai/metamodel.py,sha256=P1hliwHd1nYxbXON4LZeaYZD6T6pZm97HgmFBFrWyCk,32886
78
82
  v0/relationalai/rel.py,sha256=ePmAXx4NxOdsPcHNHyGH3Jkp_cB3QzfKu5p_EQSHPh0,38293
@@ -86,20 +90,30 @@ v0/relationalai/auth/jwt_generator.py,sha256=bQY2-EhvKcidamWB4tiRO8VVl_5bH0GC9Y6
86
90
  v0/relationalai/auth/oauth_callback_server.py,sha256=vbcpz77n_WKMDZ4sac6IYyrpxScR0DHlf5VFHMwjHGg,3908
87
91
  v0/relationalai/auth/token_handler.py,sha256=d5aueGEiK6BmzkxSab3reCdkhtjdphb0CeecyvvNaQU,19443
88
92
  v0/relationalai/auth/util.py,sha256=oXOUwW5gaBhEV5v5A-q2ME1VnfjfRWswvRlXW4oBYpk,1116
89
- v0/relationalai/clients/__init__.py,sha256=-LHT6vQmleYqAaNerV0OdHy56-s4nxFSmZFsQXfgnrI,318
90
- v0/relationalai/clients/azure.py,sha256=nmOFdw64e7z7eWMS-TZ7X4_qCAdTOEe5V7uTzqS9MFY,20640
91
- v0/relationalai/clients/cache_store.py,sha256=A-qd11wcwN3TkIqvlN0_iFUU3aEjJal3T2pqFBwkkzQ,3966
92
- v0/relationalai/clients/client.py,sha256=46_fu8xKR5m6HnTeI9UhIEZtojPrsc-3hMhTutObzxY,35798
93
+ v0/relationalai/clients/__init__.py,sha256=LQ_yHsutRMpoW2mOTmOPGF8mrbP0OiV5E68t8uVwDyQ,833
94
+ v0/relationalai/clients/client.py,sha256=gk_V9KS7_MM2dLL2OCO7EPLHD9dsRwR6R-30SW8lDwU,35759
93
95
  v0/relationalai/clients/config.py,sha256=PriDlD0_VZFV0fEQng6U-F5xjGwz5gC2F5_lM159AjM,24481
94
96
  v0/relationalai/clients/direct_access_client.py,sha256=p3hqjwdiXQQytRke1wIeNRM-HlZLAxH1U6-yPhsPOdQ,6454
97
+ v0/relationalai/clients/exec_txn_poller.py,sha256=veEHerCeKIJe9X7Yjnxab-lXUI4lWBW8tmY-tgMwKwQ,3123
95
98
  v0/relationalai/clients/hash_util.py,sha256=NXVtUFgRokZz-45CwV-r5Z5KvmEXD2dh4ypNOrEWAwY,1501
96
- v0/relationalai/clients/local.py,sha256=cq3fRoayPxjqh6iW3hqfdmDgDbcuM73IcndMeEb_Nhk,23589
99
+ v0/relationalai/clients/local.py,sha256=vo5ikSWg38l3xQAh9yL--4sMAj_T5Tn7YEZiw7TCH08,23504
97
100
  v0/relationalai/clients/profile_polling.py,sha256=c1ixxAOKvy-dDfVqkKENwfcsvBB8jhLA1oT9RIFIrY8,2571
98
101
  v0/relationalai/clients/result_helpers.py,sha256=dgj4mVg7ZsFsVppI98VQjNMdDEBXuBF7BnyNozidmeY,17817
99
- v0/relationalai/clients/snowflake.py,sha256=xAyCYWfDE0n7MGdwFBfhVg248QaDzxaKArAObJe0Gho,168282
100
102
  v0/relationalai/clients/types.py,sha256=VU2LRtlnFsBRYdokxUccrsUkEYLE9N62EUiWtA_qdYc,2893
101
- v0/relationalai/clients/use_index_poller.py,sha256=34KQyNr_TL85hWsd803R0D_Ms4P6grQhOr5KSXDyszs,46830
102
103
  v0/relationalai/clients/util.py,sha256=Vrw_kr-Oqp_DKTkJ_rTbzpDm4_Z4h8w10T8GUyGLxbA,12323
104
+ v0/relationalai/clients/resources/__init__.py,sha256=pymn8gB86Q3C2bVoFei0KAL8pX_U04uDY9TE4TKzTBs,260
105
+ v0/relationalai/clients/resources/azure/azure.py,sha256=TDapfM5rLoHrPrXg5cUe827m3AO0gSqQjNid1VUlUFo,20631
106
+ v0/relationalai/clients/resources/snowflake/__init__.py,sha256=Ofyf1RZu9GLQdvsjpHDUHEQHHVODb9vKYI4hMOxczH4,923
107
+ v0/relationalai/clients/resources/snowflake/cache_store.py,sha256=A-qd11wcwN3TkIqvlN0_iFUU3aEjJal3T2pqFBwkkzQ,3966
108
+ v0/relationalai/clients/resources/snowflake/cli_resources.py,sha256=xTIcCzvgbkxuNAEvzZoRpj0n-js0hZCK30q7IZXztbI,3252
109
+ v0/relationalai/clients/resources/snowflake/direct_access_resources.py,sha256=a_vfArYM8IAd7gAwx4VEis0KOOr2Vej7vMwY3csxGmQ,30134
110
+ v0/relationalai/clients/resources/snowflake/engine_state_handlers.py,sha256=SQBu4GfbyABU6xrEV-koivC-ubsVrfCBTF0FEQgJM5g,12054
111
+ v0/relationalai/clients/resources/snowflake/error_handlers.py,sha256=581G2xOihUoiPlucC_Z2FOzhKu_swdIc3uORd0yJQuA,8805
112
+ v0/relationalai/clients/resources/snowflake/resources_factory.py,sha256=4LGd4IQ6z8hGeGlO1TIjSFJEeUNHutaB7j9q1a9rYfQ,3385
113
+ v0/relationalai/clients/resources/snowflake/snowflake.py,sha256=buPPwLR9_gX5zo9sN90rGD1qIkn1qX4yOcaXmNlOP4U,134362
114
+ v0/relationalai/clients/resources/snowflake/use_index_poller.py,sha256=AE7z2pL4QioPRDL7-O9J4KHSuxbYbRAvd886mZPpCQI,48871
115
+ v0/relationalai/clients/resources/snowflake/use_index_resources.py,sha256=69PNWHI_uf-Aw_evfwC6j8HLVdjhp84vs8hLkjnhwbg,6462
116
+ v0/relationalai/clients/resources/snowflake/util.py,sha256=BEnm1B1-nqqHdm41RNxblbb-zqXbtqEGGZmTdAYeN_M,13841
103
117
  v0/relationalai/early_access/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
118
  v0/relationalai/early_access/builder/__init__.py,sha256=h2zZSEF6xcuk0Ysy8CRzF172usliAs9VUW5t6P3rOBw,996
105
119
  v0/relationalai/early_access/builder/builder/__init__.py,sha256=0nUNYRT0QdAlBU0S7aovypHQBdBrBHumr3Ps_gG3R_E,1468
@@ -176,7 +190,7 @@ v0/relationalai/early_access/dsl/core/types/constrained/nominal.py,sha256=jfpqGs
176
190
  v0/relationalai/early_access/dsl/core/types/constrained/subtype.py,sha256=qODz36SaWywRHALQLy1d2V8gPqHfb6F357ShRrbacJA,4311
177
191
  v0/relationalai/early_access/dsl/ir/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
192
  v0/relationalai/early_access/dsl/ir/compiler.py,sha256=W_hLa6FoqfF140G01aq6qpYtfpxVZRsxS37Ss7N2mUY,15313
179
- v0/relationalai/early_access/dsl/ir/executor.py,sha256=U10L5OnV9HEL_3-o9FMuJrEei_Ua6nv9FmIVJWqWLjA,12200
193
+ v0/relationalai/early_access/dsl/ir/executor.py,sha256=RSuFpgvkV7ILdE3krUNOHg0ZplpHKlQlbV6GWCAR1d4,12241
180
194
  v0/relationalai/early_access/dsl/ontologies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
195
  v0/relationalai/early_access/dsl/ontologies/constraints.py,sha256=do7IR0sN9S5mBEf79adtmZq-RkOc3HNg9Q1ZbXjlAsY,2429
182
196
  v0/relationalai/early_access/dsl/ontologies/export.py,sha256=wyDUjwQ9TwCFKwN8m9S-7G4kKaI5dk4nvecbCy-W5Hc,999
@@ -219,7 +233,7 @@ v0/relationalai/early_access/dsl/serialize/binding_model.py,sha256=RvfUUnTjjmtWw
219
233
  v0/relationalai/early_access/dsl/serialize/exporter.py,sha256=oXBxSjHvms7bzIHYb_dU1ItOchbjpDiSjkhXRD-oF2c,8024
220
234
  v0/relationalai/early_access/dsl/serialize/model.py,sha256=bIzNuw5hV4iPyUZIPTWdG6BevAtl9RnhNW_cymSk7zU,2378
221
235
  v0/relationalai/early_access/dsl/snow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
- v0/relationalai/early_access/dsl/snow/api.py,sha256=UYveBVEKVP1xYzYsax1e2ujc_mMzwz7-v7zP1VlSgAA,4332
236
+ v0/relationalai/early_access/dsl/snow/api.py,sha256=NyOPLanXZaqtINOo9e7M-tdu2Jlo9KFw2G7mYrAKMes,4375
223
237
  v0/relationalai/early_access/dsl/snow/common.py,sha256=i8L-TXw1RLUVB9NK8LpFkQAkUquIkbdh1nU0ePsGkCA,2172
224
238
  v0/relationalai/early_access/dsl/state_mgmt/__init__.py,sha256=W0hzq5Oa2yy9YoQfC5Ru5UqggyzIhsryljmVt_NCkKQ,4339
225
239
  v0/relationalai/early_access/dsl/state_mgmt/state_charts.py,sha256=zBQS9vdEYx5iRSLbp31k4xz8HFDp2EMKTgVQfzaPQlM,4054
@@ -279,7 +293,7 @@ v0/relationalai/experimental/SF.py,sha256=ER6NFB_Vo6hjxdwgDFshFMx_huCwhqOYfEqzFn
279
293
  v0/relationalai/experimental/__init__.py,sha256=alaOJulJ9YHRl4WGyQ3Kzxhrpc2gP542oNheWXzs7NQ,74
280
294
  v0/relationalai/experimental/graphs.py,sha256=vJQ_8ZF_Q2pL-w1xI4O22VGqbnTDimkkqTNqqIkGL7c,3521
281
295
  v0/relationalai/experimental/inspect.py,sha256=CkZVzq1MTXf5aOsqHYZaDXYNegW8Er-7Z4NAJqT9QWM,1650
282
- v0/relationalai/experimental/solvers.py,sha256=FY9l9NCbEmJxyK8QJgUq6KwRkSw-4R8GQYzrNWyQYI4,43328
296
+ v0/relationalai/experimental/solvers.py,sha256=boZc8DNKTZa-p3AAAtMrYX23nzNSnhw03TlXPm0OO8I,43446
283
297
  v0/relationalai/experimental/pathfinder/__init__.py,sha256=GSGTur8UMhhv9u3VmZAWp6OxtDymZRaHDqgV9V2IFuc,5519
284
298
  v0/relationalai/experimental/pathfinder/api.py,sha256=iRf9QKq5xIVqiPPQEQGx9BHxbT-dME0kmn5ox6IBCDM,4241
285
299
  v0/relationalai/experimental/pathfinder/automaton.py,sha256=y5i3ry_gIPoAp0ZTsCNXTXSutst6VcGCg2VZ5Z_N9Yw,21910
@@ -352,18 +366,18 @@ v0/relationalai/loaders/loader.py,sha256=SmdV5u8NPvc72eb03sQWDD2nqCNDEsueh8LJ3kL
352
366
  v0/relationalai/loaders/types.py,sha256=1Fnr-TQc21Vh_Vwrzpmqm7ILr9-lvogOBE0OXGLG7mg,622
353
367
  v0/relationalai/semantics/__init__.py,sha256=SnJCjUGj-y9e5-75jxLsiZRM_xLmhOVaZwmgxtscinI,935
354
368
  v0/relationalai/semantics/devtools/__init__.py,sha256=hckMw2EtrVBiE71ABXX8bWPdI-6DV9uHqkhYG_nl8S4,85
355
- v0/relationalai/semantics/devtools/benchmark_lqp.py,sha256=kULTss_dHTsCdMlj_2FfaMGT5hPAXEs1BdMwK3rCMgQ,21260
369
+ v0/relationalai/semantics/devtools/benchmark_lqp.py,sha256=02bMXOYAVYLzi1pYF9qGa9cBV7IH_-VTRNBL76Iq158,21254
356
370
  v0/relationalai/semantics/devtools/compilation_manager.py,sha256=DDHY5DNwRK0hD9P8ffBUfrGIG24QI7HDj8XKZulgpog,11181
357
- v0/relationalai/semantics/devtools/extract_lqp.py,sha256=Ccvhw3W-8VHYi2Kui64lCUmCrliygGqFc6C0LQlvgWM,3702
371
+ v0/relationalai/semantics/devtools/extract_lqp.py,sha256=R4F718cH2uYHz0lx66JHy-2Qj6QbWfqeR-ApAxyVqvU,3712
358
372
  v0/relationalai/semantics/internal/__init__.py,sha256=BS0WE1GbT-HpQ5p_zMr9Fcvph562WMvMQNI9czfKNt0,798
359
373
  v0/relationalai/semantics/internal/annotations.py,sha256=PkrRN-gHO2ksh1hDKB1VVIB39dONvLdTd8_Y0rCR3fE,367
360
374
  v0/relationalai/semantics/internal/internal.py,sha256=-juUQ8AL1kAoh6PgpBQJ5Jp3qjwSgjx64s3IKeKXVYk,150821
361
- v0/relationalai/semantics/internal/snowflake.py,sha256=Zw-jC2XmsWwZlOn_5zwfu_gCxs-dH0XlSOcAELAc70k,13588
375
+ v0/relationalai/semantics/internal/snowflake.py,sha256=rQpxtR8BImj_ulTbmN0PIpMz0CvJrcC0-TPrTxCSa3k,13598
362
376
  v0/relationalai/semantics/lqp/__init__.py,sha256=XgcQZxK-zz_LqPDVtwREhsIvjTuUIt4BZhIedCeMY-s,48
363
377
  v0/relationalai/semantics/lqp/builtins.py,sha256=Xst9-UxkCAwDqL-hFOby8B3GKh705oidFUjEozxn71Y,585
364
378
  v0/relationalai/semantics/lqp/compiler.py,sha256=xpGIQAqTMwLi3Vrbe79Yal7O_mfNxpBLioZjqeV2hzc,955
365
379
  v0/relationalai/semantics/lqp/constructors.py,sha256=x7G85vbJzLIXzUCMKVdJVsr4PrcUsAOzCCfvimHLMVU,2366
366
- v0/relationalai/semantics/lqp/executor.py,sha256=DeZw71K3TAXI8mZDWa4c9N3V3HQfOVn1YNIPhuKcFcU,21875
380
+ v0/relationalai/semantics/lqp/executor.py,sha256=OkxegnEp4_U7uslhDS0cBi8OQOg499NPYEYomWpEqlI,21550
367
381
  v0/relationalai/semantics/lqp/intrinsics.py,sha256=8kgH4ndYKBCNnoNOn7iWOU0wnMTSiov0kYaKocQ45RY,880
368
382
  v0/relationalai/semantics/lqp/ir.py,sha256=6W9mUH0W7u5eIfF1S3o33uSOfQuM3UcqEkxrxpr1X_8,1867
369
383
  v0/relationalai/semantics/lqp/model2lqp.py,sha256=J_QofcYgq_Yb5dhOOP4lXvxsxFMEGHVnaNXoCMK_ak8,38639
@@ -378,7 +392,7 @@ v0/relationalai/semantics/lqp/rewrite/__init__.py,sha256=V9ERED9qdh4VvY9Ud_M8Zn8
378
392
  v0/relationalai/semantics/lqp/rewrite/annotate_constraints.py,sha256=zOm-OUzWBhk2iMc_eURII1-okIGJ-teDbEcJ30WDjUU,2325
379
393
  v0/relationalai/semantics/lqp/rewrite/cdc.py,sha256=cx_fpQrzkzkeAGHE_kV10nd1-0Jduws6yiIRq650f4c,10412
380
394
  v0/relationalai/semantics/lqp/rewrite/extract_common.py,sha256=johHGsS9SDDVbonMIE8Ck9rCuidllwdeJZDruW_5kQs,14705
381
- v0/relationalai/semantics/lqp/rewrite/extract_keys.py,sha256=lDO1e5pC_Z-nYMXt5zeLBxWQUjNgkhLMiaRLYkF7ZqU,21070
395
+ v0/relationalai/semantics/lqp/rewrite/extract_keys.py,sha256=8C5te8XWU5JiLpc7WojIVKg0_wyMM-gdlxmJdHQSnQQ,22165
382
396
  v0/relationalai/semantics/lqp/rewrite/function_annotations.py,sha256=WAHpqRVBqpUIDL2MA1aBmyOTvcpH_yfdeWBS1vAEtzA,4675
383
397
  v0/relationalai/semantics/lqp/rewrite/functional_dependencies.py,sha256=LTwMvU19FMdgCG8nJwV2wyiW8Hu9oCj-hIKKSMOYZYE,12727
384
398
  v0/relationalai/semantics/lqp/rewrite/quantify_vars.py,sha256=3l_pDMc4r-izuE274MP_ffNgZ6g7Rk5ysg3CXqKKlBU,12016
@@ -393,7 +407,7 @@ v0/relationalai/semantics/metamodel/factory.py,sha256=ECOg7Fg6DJrJDKIzv3TZqhuN4R
393
407
  v0/relationalai/semantics/metamodel/helpers.py,sha256=G6p6XgqeM9b95D4yUaiq71l5WY40Y1neLgMjqk-ofeU,15409
394
408
  v0/relationalai/semantics/metamodel/ir.py,sha256=4Xl3oc92Q7_s33axtrZUXr-GL8VGJsKc7yaSNcO6jXY,33578
395
409
  v0/relationalai/semantics/metamodel/types.py,sha256=9ErIkHgsTcPgsoEet-meiftLs4W1MJb-G1H_1EzFfLY,11557
396
- v0/relationalai/semantics/metamodel/util.py,sha256=cmSmeww34JVMqcFudwVAY820IPM2ETSELJylwJ3GRJk,16654
410
+ v0/relationalai/semantics/metamodel/util.py,sha256=-_9UMyLvz6bzAI0paXWLWlbqOcPwI9dKopPwEK3ZZhk,16755
397
411
  v0/relationalai/semantics/metamodel/visitor.py,sha256=DFY0DACLhxlZ0e4p0vWqbK6ZJr_GWEvH66CU_HVuoTk,35527
398
412
  v0/relationalai/semantics/metamodel/rewrite/__init__.py,sha256=9ONWFSdMPHkWpObDMSljt8DywhpFf4Ehsq1aT3fTPt8,344
399
413
  v0/relationalai/semantics/metamodel/rewrite/discharge_constraints.py,sha256=jilU6ZNaqhoFRwNdxArSfYb3Rbeahig9kDjdYoJR9Q4,1955
@@ -411,11 +425,11 @@ v0/relationalai/semantics/reasoners/graph/core.py,sha256=Bth2oe5ulItBChZCoFTgP-o
411
425
  v0/relationalai/semantics/reasoners/optimization/__init__.py,sha256=HZlyy3Od7ArXI_HMhWrxrQPnyZGScgiVdmMul51lx7Q,2218
412
426
  v0/relationalai/semantics/reasoners/optimization/common.py,sha256=gmJrJAPNyaBqik2_QaxjCoFPZKqdroxmNXUeoDGwOtY,3130
413
427
  v0/relationalai/semantics/reasoners/optimization/solvers_dev.py,sha256=MqCvdDk1l_XSBlHd5-XpHVfcvD8INjCNbCttaomv6SY,24517
414
- v0/relationalai/semantics/reasoners/optimization/solvers_pb.py,sha256=1RobVkhUDP0OCRBS7f6MMM8wXQD56y5WKWZEO0fFB6k,48015
428
+ v0/relationalai/semantics/reasoners/optimization/solvers_pb.py,sha256=MbubEIDJbXpe1gJ3lT_yBhVSDzA_EVuDvxRU4bLOjUk,60159
415
429
  v0/relationalai/semantics/rel/__init__.py,sha256=pMlVTC_TbQ45mP1LpzwFBBgPxpKc0H3uJDvvDXEWzvs,55
416
430
  v0/relationalai/semantics/rel/builtins.py,sha256=0M9r5GQb9CnkkbdhO8Psw9TgiZk5CC3z5RMncUa6uuM,1571
417
431
  v0/relationalai/semantics/rel/compiler.py,sha256=t7gitonfRewTk8IQ53DTqPegytwax1jGu43VgQOqBWA,43062
418
- v0/relationalai/semantics/rel/executor.py,sha256=47TeoS7qlKCp5uwddSujg9B2sdjdy796TnJF-3owrTU,17348
432
+ v0/relationalai/semantics/rel/executor.py,sha256=fJnOb6Lgv32Qrr8V72i4M6ebOuEiqqyOcSuffUok3AI,17660
419
433
  v0/relationalai/semantics/rel/rel.py,sha256=mQTykcHz63P1w8nhvA8SwYRtIi0LEud19vGrdh0ZrG8,15747
420
434
  v0/relationalai/semantics/rel/rel_utils.py,sha256=B9qR7hUouybwluuo9zUYemv6tWPnDPaV4da-emsTrRQ,9569
421
435
  v0/relationalai/semantics/snowflake/__init__.py,sha256=QRcuGvnK-TeNOWvHpBu5Z4hJHcMRXb5IPOokvLihy1U,169
@@ -425,7 +439,7 @@ v0/relationalai/semantics/sql/sql.py,sha256=a3EBJKPp92EoVpl1qct2jdBwXQflFpG1nJ2O
425
439
  v0/relationalai/semantics/sql/executor/__init__.py,sha256=F3HqQPJVP9wgV3rkwI5jy1_QBCD_3qj2IGxbdT_pX9k,120
426
440
  v0/relationalai/semantics/sql/executor/duck_db.py,sha256=FriWhN_IvpQ1YH0YcQ9vlnPRkM1ARoqKDZd0koSk0SM,1918
427
441
  v0/relationalai/semantics/sql/executor/result_helpers.py,sha256=WFeijyYXUSl2Ut25SNFYTGZ-XktTlz8CZQt5xm9QW9o,3224
428
- v0/relationalai/semantics/sql/executor/snowflake.py,sha256=DVRxApKTzsVjoutOGzYrp8pM1ksAiPBgQ7awA0Z-9iQ,5939
442
+ v0/relationalai/semantics/sql/executor/snowflake.py,sha256=ItM-dcC-OynlAQNtXTdmVdSyJtKuY24_9_vIXDFP9-A,6024
429
443
  v0/relationalai/semantics/sql/rewrite/__init__.py,sha256=AT1WR0rqQHQ7E06NLoVym0zrZpBVPqK85uRFNJUTDp4,254
430
444
  v0/relationalai/semantics/sql/rewrite/denormalize.py,sha256=zCwjt8FvcOjs88GUOzLzoqYcxPVlARrYtbVc78yQeBI,9046
431
445
  v0/relationalai/semantics/sql/rewrite/double_negation.py,sha256=Rm2-g_gbPPYzqMfsYWX0Z9rm_d-kGVuNRBFNrUaMBbo,1713
@@ -444,7 +458,7 @@ v0/relationalai/semantics/std/std.py,sha256=T9cPRC19I3WlolDyHk8nwVzGRyyYCpbagN1v
444
458
  v0/relationalai/semantics/std/strings.py,sha256=3fw1VAggsuFosH_3-5BIB4KbKDmqVque9FlV3yJusrE,2705
445
459
  v0/relationalai/semantics/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
446
460
  v0/relationalai/semantics/tests/logging.py,sha256=oJTrUS_Bq6WxqqO8QLtrjdkUB02Uu5erZ7FTl__-lNY,1432
447
- v0/relationalai/semantics/tests/test_snapshot_abstract.py,sha256=FMzia4QeiNP-JZ5E0vt6YlL0SMSESB3flg8-ybWb4jU,6326
461
+ v0/relationalai/semantics/tests/test_snapshot_abstract.py,sha256=Q2rIUhzwVAJMJVoCsBtrCVBYafUR7nTQUxO2bL3ECa8,6336
448
462
  v0/relationalai/semantics/tests/test_snapshot_base.py,sha256=Q2zThxDOp2FrXK4uhV4nStBc_Q2-ML6MJ-dfE-e6R7U,469
449
463
  v0/relationalai/semantics/tests/utils.py,sha256=qcZ5IgU6_vRdKI9yLuoUkBE0Cq0iU6yzPh5HQaH3ttA,1834
450
464
  v0/relationalai/std/__init__.py,sha256=r-o7hYZip7xe1stQP4R10jFNA_Km1dcFwmr2j7LBF3s,2184
@@ -457,9 +471,9 @@ v0/relationalai/std/re.py,sha256=7B0dPaYyEdIlEgZfDzs7HJ_MTqccYTfIZieqst6MHbk,445
457
471
  v0/relationalai/std/strings.py,sha256=vHvex_W5GHhhsVws6Dfyl4w1EHdbDE3nPjT09DnpvSE,4260
458
472
  v0/relationalai/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
459
473
  v0/relationalai/tools/cleanup_snapshots.py,sha256=s1q1ophi1RmiTZ9QQolQ6q1K9ZwseCaOuDtI1Rm99MQ,3434
460
- v0/relationalai/tools/cli.py,sha256=AbfliJiUJUDIbqrazLQIv-sHTJ12qI3jcEmIRE-O0R0,77053
474
+ v0/relationalai/tools/cli.py,sha256=7Ads7TGIqqUviVCW1YoVK14chhLu2v2Vr4Zo9GrInNg,76883
461
475
  v0/relationalai/tools/cli_controls.py,sha256=PgXdmJ7JJxk_yUyhljPBV7A4qbAzvSMvjhybni7bJwo,70474
462
- v0/relationalai/tools/cli_helpers.py,sha256=0oF3XeVcq8Ti4nqegkb_tJh2zXLje_AzC3pgdRrah4k,14053
476
+ v0/relationalai/tools/cli_helpers.py,sha256=z6RGKDNwOK8DjWtd-rxiSNdEtnwdF8Kh5d0xV9xtjkI,14449
463
477
  v0/relationalai/tools/constants.py,sha256=A8Qz0CPs2cRUs5xaZ-Y7BCyvqmI6RLvipzwLDYZ3_PU,4505
464
478
  v0/relationalai/tools/debugger.py,sha256=CiPy3czIR80TfnjGTTpiDSJC2ZlPneAtlddPEMri7Us,6937
465
479
  v0/relationalai/tools/debugger_client.py,sha256=lh2ejDZkAmOBu2qOAdVqH0XnqMKM7azGmXXDpTSoq30,3741
@@ -474,16 +488,16 @@ v0/relationalai/util/constants.py,sha256=rq6c1Q5tLIewiG_M_lUtRAbmrKFUUL1jfl_nxU0
474
488
  v0/relationalai/util/format.py,sha256=fLRovumUa2cu0_2gy3O5vaEbpND4p9_IIgr-vDaIGDc,3754
475
489
  v0/relationalai/util/graph.py,sha256=eT8s0yCiJIu6D1T1fjZsLSPCcuQb2Mzl6qnljtQ5TuA,1504
476
490
  v0/relationalai/util/list_databases.py,sha256=dHu9xQkL1MxORrHMqR5E38GybzIjsfayCnFKFKEzXL4,155
477
- v0/relationalai/util/otel_configuration.py,sha256=38WfHkDMsgTX0H8AWc67XWgGA36kMoXxmk1u8IkAeAM,1075
478
- v0/relationalai/util/otel_handler.py,sha256=a-It_P-vxBLJjyf9apOVerEcj4aU6IT0JMlD4io-UCo,18121
491
+ v0/relationalai/util/otel_configuration.py,sha256=rt6jQsWBevQNMkTBT3RDHR7r-py2O05vRgx4y2XAdZc,1127
492
+ v0/relationalai/util/otel_handler.py,sha256=lG4fcCb4C8PvQ38c53uhW1-9--son6qztT0QmzbenWU,18131
479
493
  v0/relationalai/util/snowflake_handler.py,sha256=mm5hm4FjjaTkDwZGocOkRK4DmLQqFWLMV05pv7mmvUg,2945
480
494
  v0/relationalai/util/span_format_test.py,sha256=djFxvHx7IDdh0QwU4DBThTd8OQBBZTBDN4dGcpOwf1Y,1348
481
495
  v0/relationalai/util/span_tracker.py,sha256=7vyvEBdI9uCj1dxVZCQT_W5vPMxIzxewrlRRkvD5FGA,7900
482
496
  v0/relationalai/util/spans_file_handler.py,sha256=w34WVw19ubtrjPBkKmg0Hb-9MldICmowF1OW85KCJN0,3209
483
497
  v0/relationalai/util/timeout.py,sha256=2o6BVNFnFc-B2j-i1pEkZcQbMRto9ps2emci0XwiA4I,783
484
498
  v0/relationalai/util/tracing_handler.py,sha256=wJQN52PRw8R2XB1_qd-POgfGZStrj9OFL7wa5Xr6SEM,1732
485
- relationalai-1.0.0a2.dist-info/METADATA,sha256=j3ofGijkfDIsTfki1G_l7ycajPA4m9hLrUWYIuNI9dg,1368
486
- relationalai-1.0.0a2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
487
- relationalai-1.0.0a2.dist-info/entry_points.txt,sha256=u_anMN5_VCOQNA5E2mTLT2LWc9r1i-F9yQmy3ZNAAck,91
488
- relationalai-1.0.0a2.dist-info/top_level.txt,sha256=Y9cfzWf-p2omqqmVy_98m287xf0OJbj6OB5RRdkGql4,16
489
- relationalai-1.0.0a2.dist-info/RECORD,,
499
+ relationalai-1.0.0a4.dist-info/METADATA,sha256=IBtzvgqfMTby0BJHn885Ub5UgZ9O3f_flCGqY84qCWM,1417
500
+ relationalai-1.0.0a4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
501
+ relationalai-1.0.0a4.dist-info/entry_points.txt,sha256=u_anMN5_VCOQNA5E2mTLT2LWc9r1i-F9yQmy3ZNAAck,91
502
+ relationalai-1.0.0a4.dist-info/top_level.txt,sha256=Y9cfzWf-p2omqqmVy_98m287xf0OJbj6OB5RRdkGql4,16
503
+ relationalai-1.0.0a4.dist-info/RECORD,,
@@ -7,8 +7,8 @@ import importlib.metadata
7
7
 
8
8
  from typing import cast
9
9
 
10
- from .clients import config as cfg
11
10
  from .clients.config import Config, save_config
11
+ from . import clients
12
12
  from . import dsl
13
13
  from . import debugging
14
14
  from . import metamodel
@@ -19,11 +19,14 @@ from . import tools
19
19
  from .util.otel_configuration import configure_otel
20
20
  from snowflake.snowpark import Session
21
21
  from .errors import RAIException, handle_missing_integration
22
- from .environments import runtime_env, SessionEnvironment
23
- from v0.relationalai.tools.constants import USE_DIRECT_ACCESS, Generation
22
+ from .environments import runtime_env, SessionEnvironment, SnowbookEnvironment
23
+ from v0.relationalai.tools.constants import Generation
24
24
 
25
25
  import __main__
26
26
 
27
+ # Define cfg after all imports since it depends on clients being imported
28
+ cfg = clients.config
29
+
27
30
  # __version__ = importlib.metadata.version(__package__ or __name__)
28
31
 
29
32
  __version__ = '1.0.0a'
@@ -114,9 +117,9 @@ def Model(
114
117
 
115
118
  try:
116
119
  if platform == "azure":
117
- import v0.relationalai.clients.azure as azure
120
+ from v0.relationalai.clients.resources.azure.azure import Graph
118
121
  from .util.otel_handler import disable_otel_handling, is_otel_initialized
119
- model = azure.Graph(
122
+ model = Graph(
120
123
  name,
121
124
  profile=profile,
122
125
  config=config,
@@ -128,8 +131,18 @@ def Model(
128
131
  if is_otel_initialized:
129
132
  disable_otel_handling()
130
133
  elif platform == "snowflake":
131
- from v0.relationalai.clients import snowflake
132
- model = snowflake.Graph(
134
+ try:
135
+ from v0.relationalai.clients.resources.snowflake import Graph
136
+ except ImportError as e:
137
+ # Provide a helpful error message for Snowflake notebook environments
138
+ if isinstance(runtime_env, SnowbookEnvironment):
139
+ raise ImportError(
140
+ "Failed to import relationalai.clients.resources.snowflake. "
141
+ "This may indicate that the relationalai.zip package structure is incomplete. "
142
+ "Please ensure the zip file includes the full clients/resources/snowflake directory structure."
143
+ ) from e
144
+ raise
145
+ model = Graph(
133
146
  name,
134
147
  profile=profile,
135
148
  config=config,
@@ -164,18 +177,41 @@ def Resources(
164
177
  config = config or Config(profile)
165
178
  platform = config.get("platform", "snowflake")
166
179
  if platform == "azure":
167
- from v0.relationalai.clients.azure import Resources
180
+ from v0.relationalai.clients.resources.azure.azure import Resources
168
181
  return Resources(config=config)
169
182
  elif platform == "snowflake":
170
- from v0.relationalai.clients.snowflake import Resources, DirectAccessResources
171
- use_direct_access = config.get("use_direct_access", USE_DIRECT_ACCESS)
172
- if use_direct_access:
173
- return DirectAccessResources(config=config, connection=connection, reset_session=reset_session, generation=generation)
174
- else:
175
- return Resources(config=config, connection=connection, reset_session=reset_session, generation=generation)
183
+ try:
184
+ from v0.relationalai.clients.resources.snowflake.resources_factory import create_resources_instance
185
+ except ImportError as e:
186
+ # Provide a helpful error message for Snowflake notebook environments
187
+ from v0.relationalai.environments import runtime_env, SnowbookEnvironment
188
+ if isinstance(runtime_env, SnowbookEnvironment):
189
+ raise ImportError(
190
+ "Failed to import relationalai.clients.resources.snowflake. "
191
+ "This may indicate that the relationalai.zip package structure is incomplete. "
192
+ "Please ensure the zip file includes the full clients/resources/snowflake directory structure."
193
+ ) from e
194
+ raise
195
+ return create_resources_instance(
196
+ config=config,
197
+ profile=profile,
198
+ connection=connection,
199
+ reset_session=reset_session,
200
+ generation=generation or Generation.V0,
201
+ dry_run=False,
202
+ language="rel",
203
+ )
176
204
  elif platform == "local":
177
- from v0.relationalai.clients.local import LocalResources
178
- return LocalResources(config=config, connection=connection, reset_session=reset_session, generation=generation)
205
+ from v0.relationalai.clients.resources.snowflake.resources_factory import create_resources_instance
206
+ return create_resources_instance(
207
+ config=config,
208
+ profile=profile,
209
+ connection=connection,
210
+ reset_session=reset_session,
211
+ generation=generation or Generation.V0,
212
+ dry_run=False,
213
+ language="rel",
214
+ )
179
215
  else:
180
216
  raise Exception(f"Unknown platform: {platform}")
181
217
 
@@ -188,15 +224,26 @@ def Provider(
188
224
  resources = Resources(profile, config, connection, generation=generation)
189
225
  platform = resources.config.get("platform", "snowflake")
190
226
  if platform == "azure":
191
- import v0.relationalai.clients.azure
192
- resources = cast(v0.relationalai.clients.azure.Resources, resources)
193
- return v0.relationalai.clients.azure.Provider(
227
+ from v0.relationalai.clients.resources.azure.azure import Resources as AzureResources, Provider as AzureProvider
228
+ resources = cast(AzureResources, resources)
229
+ return AzureProvider(
194
230
  resources=resources
195
231
  )
196
232
  elif platform == "snowflake":
197
- import v0.relationalai.clients.snowflake
198
- resources = cast(v0.relationalai.clients.snowflake.Resources, resources)
199
- return v0.relationalai.clients.snowflake.Provider(
233
+ try:
234
+ from v0.relationalai.clients.resources.snowflake import Resources as SnowflakeResources, Provider as SnowflakeProvider
235
+ except ImportError as e:
236
+ # Provide a helpful error message for Snowflake notebook environments
237
+ from v0.relationalai.environments import runtime_env, SnowbookEnvironment
238
+ if isinstance(runtime_env, SnowbookEnvironment):
239
+ raise ImportError(
240
+ "Failed to import relationalai.clients.resources.snowflake. "
241
+ "This may indicate that the relationalai.zip package structure is incomplete. "
242
+ "Please ensure the zip file includes the full clients/resources/snowflake directory structure."
243
+ ) from e
244
+ raise
245
+ resources = cast(SnowflakeResources, resources)
246
+ return SnowflakeProvider(
200
247
  resources=resources,
201
248
  generation=generation
202
249
  )
@@ -1,5 +1,18 @@
1
1
  # Azure import is dropped because we need to to do runtime import of azure module to support our package running on Snowflake Notebook
2
- from . import config, snowflake, client, local
2
+ from . import config
3
+
4
+ # Lazy imports for client and local to avoid circular import issues
5
+ # These modules import from relationalai which imports from clients, creating a cycle
6
+ def __getattr__(name: str):
7
+ if name == 'client':
8
+ from . import client
9
+ return client
10
+ elif name == 'local':
11
+ from . import local
12
+ return local
13
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
3
14
 
4
15
  # note: user must do `import relationalai.clients.azure` to get `azure` submodule
5
- __all__ = ['snowflake', 'config', 'client', 'local']
16
+ # note: snowflake module is now at relationalai.clients.resources.snowflake
17
+ # note: 'client' and 'local' are lazy-loaded via __getattr__, so they're not in __all__
18
+ __all__ = ['config']
@@ -10,12 +10,12 @@ from dataclasses import dataclass
10
10
  from pandas import DataFrame
11
11
  import time
12
12
 
13
- from v0.relationalai.clients.hash_util import database_name_from_sproc_name
14
- from v0.relationalai.tools.constants import USE_GRAPH_INDEX, USE_PACKAGE_MANAGER
13
+ from .hash_util import database_name_from_sproc_name
14
+ from ..tools.constants import USE_GRAPH_INDEX, USE_PACKAGE_MANAGER
15
15
 
16
16
 
17
17
  from .types import AvailableModel, EngineState, Import, ImportSource, ImportsStatus, SourceMapEntry
18
- from ..clients.config import Config
18
+ from .config import Config
19
19
  from ..compiler import Compiler
20
20
  from ..environments import runtime_env, NotebookRuntimeEnvironment
21
21
  from .. import dsl, debugging, metamodel as m
@@ -210,7 +210,7 @@ class ResourcesBase(ABC):
210
210
  return engine
211
211
 
212
212
  @abstractmethod
213
- def auto_create_engine_async(self, name: str | None = None):
213
+ def auto_create_engine_async(self, name: str | None = None) -> str:
214
214
  pass
215
215
 
216
216
  _active_engine: EngineState|None = None
@@ -0,0 +1,91 @@
1
+ from __future__ import annotations
2
+
3
+ import time
4
+ from typing import Dict, Optional, TYPE_CHECKING
5
+
6
+ from v0.relationalai import debugging
7
+ from v0.relationalai.clients.util import poll_with_specified_overhead
8
+ from v0.relationalai.tools.cli_controls import create_progress
9
+ from v0.relationalai.util.format import format_duration
10
+
11
+ if TYPE_CHECKING:
12
+ from v0.relationalai.clients.resources.snowflake import Resources
13
+
14
+ # Polling behavior constants
15
+ POLL_OVERHEAD_RATE = 0.1 # Overhead rate for exponential backoff
16
+
17
+ # Text color constants
18
+ GREEN_COLOR = '\033[92m'
19
+ GRAY_COLOR = '\033[90m'
20
+ ENDC = '\033[0m'
21
+
22
+
23
+ class ExecTxnPoller:
24
+ """
25
+ Encapsulates the polling logic for exec_async transaction completion.
26
+ """
27
+
28
+ def __init__(
29
+ self,
30
+ resource: "Resources",
31
+ txn_id: str,
32
+ headers: Optional[Dict] = None,
33
+ txn_start_time: Optional[float] = None,
34
+ ):
35
+ self.res = resource
36
+ self.txn_id = txn_id
37
+ self.headers = headers or {}
38
+ self.txn_start_time = txn_start_time or time.time()
39
+
40
+ def poll(self) -> bool:
41
+ """
42
+ Poll for transaction completion with interactive progress display.
43
+
44
+ Returns:
45
+ True if transaction completed successfully, False otherwise
46
+ """
47
+
48
+ # Don't show duration summary - we handle our own completion message
49
+ with create_progress(
50
+ description="Evaluating Query...",
51
+ success_message="", # We'll handle this ourselves
52
+ leading_newline=False,
53
+ trailing_newline=False,
54
+ show_duration_summary=False,
55
+ ) as progress:
56
+ def check_status() -> bool:
57
+ """Check if transaction is complete."""
58
+ elapsed = time.time() - self.txn_start_time
59
+ # Update the main status with elapsed time
60
+ progress.update_main_status(
61
+ query_progress_message(self.txn_id, elapsed)
62
+ )
63
+ return self.res._check_exec_async_status(self.txn_id, headers=self.headers)
64
+
65
+ with debugging.span("wait", txn_id=self.txn_id):
66
+ poll_with_specified_overhead(check_status, overhead_rate=POLL_OVERHEAD_RATE)
67
+
68
+ # Calculate final duration
69
+ total_duration = time.time() - self.txn_start_time
70
+
71
+ # Update to success message with duration
72
+ progress.update_main_status(
73
+ query_complete_message(self.txn_id, total_duration)
74
+ )
75
+
76
+ return True
77
+
78
+ def query_progress_message(id: str, duration: float) -> str:
79
+ return (
80
+ # Print with whitespace to align with the end of the transaction ID
81
+ f"Evaluating Query... {format_duration(duration):>18}\n" +
82
+ f"{GRAY_COLOR}Query: {id}{ENDC}"
83
+ )
84
+
85
+ def query_complete_message(id: str, duration: float, status_header: bool = False) -> str:
86
+ return (
87
+ (f"{GREEN_COLOR}✅ " if status_header else "") +
88
+ # Print with whitespace to align with the end of the transaction ID
89
+ f"Query Complete: {format_duration(duration):>24}\n" +
90
+ f"{GRAY_COLOR}Query: {id}{ENDC}"
91
+ )
@@ -13,10 +13,10 @@ from typing import Any, Dict, List, Iterable, Literal, Optional, Tuple, Union
13
13
  from requests.adapters import HTTPAdapter
14
14
  from urllib3.util.retry import Retry
15
15
 
16
- from v0.relationalai.clients.client import ResourcesBase, ProviderBase
17
- from v0.relationalai.clients.config import Config
18
- from v0.relationalai.clients.types import TransactionAsyncResponse
19
- from v0.relationalai.clients.util import get_pyrel_version
16
+ from .client import ResourcesBase, ProviderBase
17
+ from .config import Config
18
+ from .types import TransactionAsyncResponse
19
+ from .util import get_pyrel_version
20
20
  from ..errors import ResponseStatusException
21
21
  from .. import debugging
22
22
 
@@ -202,7 +202,7 @@ class LocalResources(ResourcesBase):
202
202
  def alter_engine_pool(self, size: str | None = None, mins: int | None = None, maxs: int | None = None):
203
203
  raise NotImplementedError("alter_engine_pool not supported in local mode")
204
204
 
205
- def auto_create_engine_async(self, name: str | None = None):
205
+ def auto_create_engine_async(self, name: str | None = None) -> str:
206
206
  raise NotImplementedError("auto_create_engine_async not supported in local mode")
207
207
 
208
208
  #--------------------------------------------------
@@ -0,0 +1,8 @@
1
+ """
2
+ Resources module for RelationalAI clients.
3
+ """
4
+
5
+ # This package contains resource implementations for different platforms:
6
+ # - snowflake: Snowflake-specific resources
7
+ # - azure: Azure-specific resources (optional, may not be available in all environments)
8
+
@@ -9,18 +9,18 @@ from urllib.error import HTTPError
9
9
 
10
10
  from pandas import DataFrame
11
11
 
12
- from v0.relationalai import debugging
13
- from v0.relationalai.clients.util import poll_with_specified_overhead
14
-
15
- from ..errors import EngineNotFoundException, RAIException, AzureUnsupportedQueryTimeoutException
16
- from ..rel_utils import assert_no_problems
17
- from ..loaders.loader import emit_delete_import, import_file, list_available_resources
18
- from .config import Config
19
- from .types import EngineState, ImportSource, ImportSourceFile, TransactionAsyncResponse
20
- from .client import Client, ExportParams, ProviderBase, ResourcesBase
21
- from .. import dsl, rel, metamodel as m
12
+ from .... import debugging
13
+ from ...util import poll_with_specified_overhead
14
+
15
+ from ....errors import EngineNotFoundException, RAIException, AzureUnsupportedQueryTimeoutException
16
+ from ....rel_utils import assert_no_problems
17
+ from ....loaders.loader import emit_delete_import, import_file, list_available_resources
18
+ from ...config import Config
19
+ from ...types import EngineState, ImportSource, ImportSourceFile, TransactionAsyncResponse
20
+ from ...client import Client, ExportParams, ProviderBase, ResourcesBase
21
+ from .... import dsl, rel, metamodel as m
22
22
  from railib import api
23
- from . import result_helpers
23
+ from ... import result_helpers
24
24
 
25
25
  #--------------------------------------------------
26
26
  # Constants
@@ -105,7 +105,7 @@ class Resources(ResourcesBase):
105
105
  def resume_engine_async(self, name:str):
106
106
  return api.resume_engine(self._api_ctx(), name)
107
107
 
108
- def auto_create_engine_async(self, name: str | None = None):
108
+ def auto_create_engine_async(self, name: str | None = None) -> str:
109
109
  raise Exception("Azure doesn't support auto_create_engine_async")
110
110
 
111
111
  def alter_engine_pool(self, size: str | None = None, mins: int | None = None, maxs: int | None = None):