sqlmesh 0.213.1.dev1__py3-none-any.whl → 0.227.2.dev4__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 (252) hide show
  1. sqlmesh/__init__.py +12 -2
  2. sqlmesh/_version.py +2 -2
  3. sqlmesh/cli/main.py +0 -44
  4. sqlmesh/cli/project_init.py +11 -2
  5. sqlmesh/core/_typing.py +1 -0
  6. sqlmesh/core/audit/definition.py +8 -2
  7. sqlmesh/core/config/__init__.py +1 -1
  8. sqlmesh/core/config/connection.py +17 -5
  9. sqlmesh/core/config/dbt.py +13 -0
  10. sqlmesh/core/config/janitor.py +12 -0
  11. sqlmesh/core/config/loader.py +7 -0
  12. sqlmesh/core/config/model.py +2 -0
  13. sqlmesh/core/config/root.py +3 -0
  14. sqlmesh/core/console.py +81 -3
  15. sqlmesh/core/constants.py +1 -1
  16. sqlmesh/core/context.py +69 -26
  17. sqlmesh/core/dialect.py +3 -0
  18. sqlmesh/core/engine_adapter/_typing.py +2 -0
  19. sqlmesh/core/engine_adapter/base.py +322 -22
  20. sqlmesh/core/engine_adapter/base_postgres.py +17 -1
  21. sqlmesh/core/engine_adapter/bigquery.py +146 -7
  22. sqlmesh/core/engine_adapter/clickhouse.py +17 -13
  23. sqlmesh/core/engine_adapter/databricks.py +33 -2
  24. sqlmesh/core/engine_adapter/fabric.py +10 -29
  25. sqlmesh/core/engine_adapter/mixins.py +142 -48
  26. sqlmesh/core/engine_adapter/mssql.py +15 -4
  27. sqlmesh/core/engine_adapter/mysql.py +2 -2
  28. sqlmesh/core/engine_adapter/postgres.py +9 -3
  29. sqlmesh/core/engine_adapter/redshift.py +4 -0
  30. sqlmesh/core/engine_adapter/risingwave.py +1 -0
  31. sqlmesh/core/engine_adapter/shared.py +6 -0
  32. sqlmesh/core/engine_adapter/snowflake.py +82 -11
  33. sqlmesh/core/engine_adapter/spark.py +14 -10
  34. sqlmesh/core/engine_adapter/trino.py +4 -2
  35. sqlmesh/core/environment.py +2 -0
  36. sqlmesh/core/janitor.py +181 -0
  37. sqlmesh/core/lineage.py +1 -0
  38. sqlmesh/core/linter/definition.py +13 -13
  39. sqlmesh/core/linter/rules/builtin.py +29 -0
  40. sqlmesh/core/macros.py +35 -13
  41. sqlmesh/core/model/common.py +2 -0
  42. sqlmesh/core/model/definition.py +82 -28
  43. sqlmesh/core/model/kind.py +66 -2
  44. sqlmesh/core/model/meta.py +108 -4
  45. sqlmesh/core/node.py +101 -1
  46. sqlmesh/core/plan/builder.py +18 -10
  47. sqlmesh/core/plan/common.py +199 -2
  48. sqlmesh/core/plan/definition.py +25 -6
  49. sqlmesh/core/plan/evaluator.py +75 -113
  50. sqlmesh/core/plan/explainer.py +90 -8
  51. sqlmesh/core/plan/stages.py +42 -21
  52. sqlmesh/core/renderer.py +78 -32
  53. sqlmesh/core/scheduler.py +102 -22
  54. sqlmesh/core/selector.py +137 -9
  55. sqlmesh/core/signal.py +64 -1
  56. sqlmesh/core/snapshot/__init__.py +2 -0
  57. sqlmesh/core/snapshot/definition.py +146 -34
  58. sqlmesh/core/snapshot/evaluator.py +689 -124
  59. sqlmesh/core/state_sync/__init__.py +0 -1
  60. sqlmesh/core/state_sync/base.py +55 -33
  61. sqlmesh/core/state_sync/cache.py +12 -7
  62. sqlmesh/core/state_sync/common.py +216 -111
  63. sqlmesh/core/state_sync/db/environment.py +6 -4
  64. sqlmesh/core/state_sync/db/facade.py +42 -24
  65. sqlmesh/core/state_sync/db/interval.py +27 -7
  66. sqlmesh/core/state_sync/db/migrator.py +34 -16
  67. sqlmesh/core/state_sync/db/snapshot.py +177 -169
  68. sqlmesh/core/table_diff.py +2 -2
  69. sqlmesh/core/test/context.py +2 -0
  70. sqlmesh/core/test/definition.py +14 -9
  71. sqlmesh/dbt/adapter.py +22 -16
  72. sqlmesh/dbt/basemodel.py +75 -56
  73. sqlmesh/dbt/builtin.py +116 -12
  74. sqlmesh/dbt/column.py +17 -5
  75. sqlmesh/dbt/common.py +19 -5
  76. sqlmesh/dbt/context.py +14 -1
  77. sqlmesh/dbt/loader.py +61 -9
  78. sqlmesh/dbt/manifest.py +174 -16
  79. sqlmesh/dbt/model.py +183 -85
  80. sqlmesh/dbt/package.py +16 -1
  81. sqlmesh/dbt/profile.py +3 -3
  82. sqlmesh/dbt/project.py +12 -7
  83. sqlmesh/dbt/seed.py +6 -1
  84. sqlmesh/dbt/source.py +13 -1
  85. sqlmesh/dbt/target.py +25 -6
  86. sqlmesh/dbt/test.py +36 -5
  87. sqlmesh/migrations/v0000_baseline.py +95 -0
  88. sqlmesh/migrations/v0061_mysql_fix_blob_text_type.py +5 -7
  89. sqlmesh/migrations/v0062_add_model_gateway.py +5 -1
  90. sqlmesh/migrations/v0063_change_signals.py +5 -3
  91. sqlmesh/migrations/v0064_join_when_matched_strings.py +5 -3
  92. sqlmesh/migrations/v0065_add_model_optimize.py +5 -1
  93. sqlmesh/migrations/v0066_add_auto_restatements.py +8 -3
  94. sqlmesh/migrations/v0067_add_tsql_date_full_precision.py +5 -1
  95. sqlmesh/migrations/v0068_include_unrendered_query_in_metadata_hash.py +5 -1
  96. sqlmesh/migrations/v0069_update_dev_table_suffix.py +5 -3
  97. sqlmesh/migrations/v0070_include_grains_in_metadata_hash.py +5 -1
  98. sqlmesh/migrations/v0071_add_dev_version_to_intervals.py +9 -5
  99. sqlmesh/migrations/v0072_add_environment_statements.py +5 -3
  100. sqlmesh/migrations/v0073_remove_symbolic_disable_restatement.py +5 -3
  101. sqlmesh/migrations/v0074_add_partition_by_time_column_property.py +5 -1
  102. sqlmesh/migrations/v0075_remove_validate_query.py +5 -3
  103. sqlmesh/migrations/v0076_add_cron_tz.py +5 -1
  104. sqlmesh/migrations/v0077_fix_column_type_hash_calculation.py +5 -1
  105. sqlmesh/migrations/v0078_warn_if_non_migratable_python_env.py +5 -3
  106. sqlmesh/migrations/v0079_add_gateway_managed_property.py +10 -5
  107. sqlmesh/migrations/v0080_add_batch_size_to_scd_type_2_models.py +5 -1
  108. sqlmesh/migrations/v0081_update_partitioned_by.py +5 -3
  109. sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py +5 -3
  110. sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py +5 -1
  111. sqlmesh/migrations/v0084_normalize_quote_when_matched_and_merge_filter.py +5 -1
  112. sqlmesh/migrations/v0085_deterministic_repr.py +5 -3
  113. sqlmesh/migrations/v0086_check_deterministic_bug.py +5 -3
  114. sqlmesh/migrations/v0087_normalize_blueprint_variables.py +5 -3
  115. sqlmesh/migrations/v0088_warn_about_variable_python_env_diffs.py +5 -3
  116. sqlmesh/migrations/v0089_add_virtual_environment_mode.py +5 -1
  117. sqlmesh/migrations/v0090_add_forward_only_column.py +9 -5
  118. sqlmesh/migrations/v0091_on_additive_change.py +5 -1
  119. sqlmesh/migrations/v0092_warn_about_dbt_data_type_diff.py +5 -3
  120. sqlmesh/migrations/v0093_use_raw_sql_in_fingerprint.py +5 -1
  121. sqlmesh/migrations/v0094_add_dev_version_and_fingerprint_columns.py +123 -0
  122. sqlmesh/migrations/v0095_warn_about_dbt_raw_sql_diff.py +49 -0
  123. sqlmesh/migrations/v0096_remove_plan_dags_table.py +13 -0
  124. sqlmesh/migrations/v0097_add_dbt_name_in_node.py +9 -0
  125. sqlmesh/migrations/{v0060_move_audits_to_model.py → v0098_add_dbt_node_info_in_node.py} +33 -16
  126. sqlmesh/migrations/v0099_add_last_altered_to_intervals.py +25 -0
  127. sqlmesh/migrations/v0100_add_grants_and_grants_target_layer.py +9 -0
  128. sqlmesh/utils/__init__.py +8 -1
  129. sqlmesh/utils/cache.py +5 -1
  130. sqlmesh/utils/connection_pool.py +2 -1
  131. sqlmesh/utils/dag.py +65 -10
  132. sqlmesh/utils/date.py +8 -1
  133. sqlmesh/utils/errors.py +8 -0
  134. sqlmesh/utils/jinja.py +54 -4
  135. sqlmesh/utils/pydantic.py +6 -6
  136. sqlmesh/utils/windows.py +13 -3
  137. {sqlmesh-0.213.1.dev1.dist-info → sqlmesh-0.227.2.dev4.dist-info}/METADATA +7 -10
  138. sqlmesh-0.227.2.dev4.dist-info/RECORD +370 -0
  139. sqlmesh_dbt/cli.py +70 -7
  140. sqlmesh_dbt/console.py +14 -6
  141. sqlmesh_dbt/operations.py +103 -24
  142. sqlmesh_dbt/selectors.py +39 -1
  143. web/client/dist/assets/{Audits-Ucsx1GzF.js → Audits-CBiYyyx-.js} +1 -1
  144. web/client/dist/assets/{Banner-BWDzvavM.js → Banner-DSRbUlO5.js} +1 -1
  145. web/client/dist/assets/{ChevronDownIcon-D2VL13Ah.js → ChevronDownIcon-MK_nrjD_.js} +1 -1
  146. web/client/dist/assets/{ChevronRightIcon-DWGYbf1l.js → ChevronRightIcon-CLWtT22Q.js} +1 -1
  147. web/client/dist/assets/{Content-DdHDZM3I.js → Content-BNuGZN5l.js} +1 -1
  148. web/client/dist/assets/{Content-Bikfy8fh.js → Content-CSHJyW0n.js} +1 -1
  149. web/client/dist/assets/{Data-CzAJH7rW.js → Data-C1oRDbLx.js} +1 -1
  150. web/client/dist/assets/{DataCatalog-BJF11g8f.js → DataCatalog-HXyX2-_j.js} +1 -1
  151. web/client/dist/assets/{Editor-s0SBpV2y.js → Editor-BDyfpUuw.js} +1 -1
  152. web/client/dist/assets/{Editor-DgLhgKnm.js → Editor-D0jNItwC.js} +1 -1
  153. web/client/dist/assets/{Errors-D0m0O1d3.js → Errors-BfuFLcPi.js} +1 -1
  154. web/client/dist/assets/{FileExplorer-CEv0vXkt.js → FileExplorer-BR9IE3he.js} +1 -1
  155. web/client/dist/assets/{Footer-BwzXn8Ew.js → Footer-CgBEtiAh.js} +1 -1
  156. web/client/dist/assets/{Header-6heDkEqG.js → Header-DSqR6nSO.js} +1 -1
  157. web/client/dist/assets/{Input-obuJsD6k.js → Input-B-oZ6fGO.js} +1 -1
  158. web/client/dist/assets/Lineage-DYQVwDbD.js +1 -0
  159. web/client/dist/assets/{ListboxShow-HM9_qyrt.js → ListboxShow-BE5-xevs.js} +1 -1
  160. web/client/dist/assets/{ModelLineage-zWdKo0U2.js → ModelLineage-DkIFAYo4.js} +1 -1
  161. web/client/dist/assets/{Models-Bcu66SRz.js → Models-D5dWr8RB.js} +1 -1
  162. web/client/dist/assets/{Page-BWEEQfIt.js → Page-C-XfU5BR.js} +1 -1
  163. web/client/dist/assets/{Plan-C4gXCqlf.js → Plan-ZEuTINBq.js} +1 -1
  164. web/client/dist/assets/{PlusCircleIcon-CVDO651q.js → PlusCircleIcon-DVXAHG8_.js} +1 -1
  165. web/client/dist/assets/{ReportErrors-BT6xFwAr.js → ReportErrors-B7FEPzMB.js} +1 -1
  166. web/client/dist/assets/{Root-ryJoBK4h.js → Root-8aZyhPxF.js} +1 -1
  167. web/client/dist/assets/{SearchList-DB04sPb9.js → SearchList-W_iT2G82.js} +1 -1
  168. web/client/dist/assets/{SelectEnvironment-CUYcXUu6.js → SelectEnvironment-C65jALmO.js} +1 -1
  169. web/client/dist/assets/{SourceList-Doo_9ZGp.js → SourceList-DSLO6nVJ.js} +1 -1
  170. web/client/dist/assets/{SourceListItem-D5Mj7Dly.js → SourceListItem-BHt8d9-I.js} +1 -1
  171. web/client/dist/assets/{SplitPane-qHmkD1qy.js → SplitPane-CViaZmw6.js} +1 -1
  172. web/client/dist/assets/{Tests-DH1Z74ML.js → Tests-DhaVt5t1.js} +1 -1
  173. web/client/dist/assets/{Welcome-DqUJUNMF.js → Welcome-DvpjH-_4.js} +1 -1
  174. web/client/dist/assets/context-BctCsyGb.js +71 -0
  175. web/client/dist/assets/{context-Dr54UHLi.js → context-DFNeGsFF.js} +1 -1
  176. web/client/dist/assets/{editor-DYIP1yQ4.js → editor-CcO28cqd.js} +1 -1
  177. web/client/dist/assets/{file-DarlIDVi.js → file-CvJN3aZO.js} +1 -1
  178. web/client/dist/assets/{floating-ui.react-dom-BH3TFvkM.js → floating-ui.react-dom-CjE-JNW1.js} +1 -1
  179. web/client/dist/assets/{help-Bl8wqaQc.js → help-DuPhjipa.js} +1 -1
  180. web/client/dist/assets/{index-D1sR7wpN.js → index-C-dJH7yZ.js} +1 -1
  181. web/client/dist/assets/{index-O3mjYpnE.js → index-Dj0i1-CA.js} +2 -2
  182. web/client/dist/assets/{plan-CehRrJUG.js → plan-BTRSbjKn.js} +1 -1
  183. web/client/dist/assets/{popover-CqgMRE0G.js → popover-_Sf0yvOI.js} +1 -1
  184. web/client/dist/assets/{project-6gxepOhm.js → project-BvSOI8MY.js} +1 -1
  185. web/client/dist/index.html +1 -1
  186. sqlmesh/integrations/llm.py +0 -56
  187. sqlmesh/migrations/v0001_init.py +0 -60
  188. sqlmesh/migrations/v0002_remove_identify.py +0 -5
  189. sqlmesh/migrations/v0003_move_batch_size.py +0 -34
  190. sqlmesh/migrations/v0004_environmnent_add_finalized_at.py +0 -23
  191. sqlmesh/migrations/v0005_create_seed_table.py +0 -24
  192. sqlmesh/migrations/v0006_change_seed_hash.py +0 -5
  193. sqlmesh/migrations/v0007_env_table_info_to_kind.py +0 -99
  194. sqlmesh/migrations/v0008_create_intervals_table.py +0 -38
  195. sqlmesh/migrations/v0009_remove_pre_post_hooks.py +0 -62
  196. sqlmesh/migrations/v0010_seed_hash_batch_size.py +0 -5
  197. sqlmesh/migrations/v0011_add_model_kind_name.py +0 -63
  198. sqlmesh/migrations/v0012_update_jinja_expressions.py +0 -86
  199. sqlmesh/migrations/v0013_serde_using_model_dialects.py +0 -87
  200. sqlmesh/migrations/v0014_fix_dev_intervals.py +0 -14
  201. sqlmesh/migrations/v0015_environment_add_promoted_snapshot_ids.py +0 -26
  202. sqlmesh/migrations/v0016_fix_windows_path.py +0 -59
  203. sqlmesh/migrations/v0017_fix_windows_seed_path.py +0 -55
  204. sqlmesh/migrations/v0018_rename_snapshot_model_to_node.py +0 -53
  205. sqlmesh/migrations/v0019_add_env_suffix_target.py +0 -28
  206. sqlmesh/migrations/v0020_remove_redundant_attributes_from_dbt_models.py +0 -80
  207. sqlmesh/migrations/v0021_fix_table_properties.py +0 -62
  208. sqlmesh/migrations/v0022_move_project_to_model.py +0 -54
  209. sqlmesh/migrations/v0023_fix_added_models_with_forward_only_parents.py +0 -65
  210. sqlmesh/migrations/v0024_replace_model_kind_name_enum_with_value.py +0 -55
  211. sqlmesh/migrations/v0025_fix_intervals_and_missing_change_category.py +0 -117
  212. sqlmesh/migrations/v0026_remove_dialect_from_seed.py +0 -55
  213. sqlmesh/migrations/v0027_minute_interval_to_five.py +0 -57
  214. sqlmesh/migrations/v0028_add_plan_dags_table.py +0 -29
  215. sqlmesh/migrations/v0029_generate_schema_types_using_dialect.py +0 -69
  216. sqlmesh/migrations/v0030_update_unrestorable_snapshots.py +0 -65
  217. sqlmesh/migrations/v0031_remove_dbt_target_fields.py +0 -65
  218. sqlmesh/migrations/v0032_add_sqlmesh_version.py +0 -25
  219. sqlmesh/migrations/v0033_mysql_fix_blob_text_type.py +0 -45
  220. sqlmesh/migrations/v0034_add_default_catalog.py +0 -367
  221. sqlmesh/migrations/v0035_add_catalog_name_override.py +0 -22
  222. sqlmesh/migrations/v0036_delete_plan_dags_bug_fix.py +0 -14
  223. sqlmesh/migrations/v0037_remove_dbt_is_incremental_macro.py +0 -61
  224. sqlmesh/migrations/v0038_add_expiration_ts_to_snapshot.py +0 -73
  225. sqlmesh/migrations/v0039_include_environment_in_plan_dag_spec.py +0 -68
  226. sqlmesh/migrations/v0040_add_previous_finalized_snapshots.py +0 -26
  227. sqlmesh/migrations/v0041_remove_hash_raw_query_attribute.py +0 -59
  228. sqlmesh/migrations/v0042_trim_indirect_versions.py +0 -66
  229. sqlmesh/migrations/v0043_fix_remove_obsolete_attributes_in_plan_dags.py +0 -61
  230. sqlmesh/migrations/v0044_quote_identifiers_in_model_attributes.py +0 -5
  231. sqlmesh/migrations/v0045_move_gateway_variable.py +0 -70
  232. sqlmesh/migrations/v0046_add_batch_concurrency.py +0 -8
  233. sqlmesh/migrations/v0047_change_scd_string_to_column.py +0 -5
  234. sqlmesh/migrations/v0048_drop_indirect_versions.py +0 -59
  235. sqlmesh/migrations/v0049_replace_identifier_with_version_in_seeds_table.py +0 -57
  236. sqlmesh/migrations/v0050_drop_seeds_table.py +0 -11
  237. sqlmesh/migrations/v0051_rename_column_descriptions.py +0 -65
  238. sqlmesh/migrations/v0052_add_normalize_name_in_environment_naming_info.py +0 -28
  239. sqlmesh/migrations/v0053_custom_model_kind_extra_attributes.py +0 -5
  240. sqlmesh/migrations/v0054_fix_trailing_comments.py +0 -5
  241. sqlmesh/migrations/v0055_add_updated_ts_unpaused_ts_ttl_ms_unrestorable_to_snapshot.py +0 -132
  242. sqlmesh/migrations/v0056_restore_table_indexes.py +0 -118
  243. sqlmesh/migrations/v0057_add_table_format.py +0 -5
  244. sqlmesh/migrations/v0058_add_requirements.py +0 -26
  245. sqlmesh/migrations/v0059_add_physical_version.py +0 -5
  246. sqlmesh-0.213.1.dev1.dist-info/RECORD +0 -421
  247. web/client/dist/assets/Lineage-D0Hgdz2v.js +0 -1
  248. web/client/dist/assets/context-DgX0fp2E.js +0 -68
  249. {sqlmesh-0.213.1.dev1.dist-info → sqlmesh-0.227.2.dev4.dist-info}/WHEEL +0 -0
  250. {sqlmesh-0.213.1.dev1.dist-info → sqlmesh-0.227.2.dev4.dist-info}/entry_points.txt +0 -0
  251. {sqlmesh-0.213.1.dev1.dist-info → sqlmesh-0.227.2.dev4.dist-info}/licenses/LICENSE +0 -0
  252. {sqlmesh-0.213.1.dev1.dist-info → sqlmesh-0.227.2.dev4.dist-info}/top_level.txt +0 -0
sqlmesh/utils/jinja.py CHANGED
@@ -7,8 +7,11 @@ import typing as t
7
7
  import zlib
8
8
  from collections import defaultdict
9
9
  from enum import Enum
10
+ from sys import exc_info
11
+ from traceback import walk_tb
10
12
 
11
- from jinja2 import Environment, Template, nodes
13
+ from jinja2 import Environment, Template, nodes, UndefinedError
14
+ from jinja2.runtime import Macro
12
15
  from sqlglot import Dialect, Expression, Parser, TokenType
13
16
 
14
17
  from sqlmesh.core import constants as c
@@ -130,6 +133,12 @@ def find_call_names(node: nodes.Node, vars_in_scope: t.Set[str]) -> t.Iterator[C
130
133
  vars_in_scope = vars_in_scope.copy()
131
134
  for child_node in node.iter_child_nodes():
132
135
  if "target" in child_node.fields:
136
+ # For nodes with assignment targets (Assign, AssignBlock, For, Import),
137
+ # the target name could shadow a reference in the right hand side.
138
+ # So we need to process the RHS before adding the target to scope.
139
+ # For example: {% set model = model.path %} should track model.path.
140
+ yield from find_call_names(child_node, vars_in_scope)
141
+
133
142
  target = getattr(child_node, "target")
134
143
  if isinstance(target, nodes.Name):
135
144
  vars_in_scope.add(target.name)
@@ -146,7 +155,9 @@ def find_call_names(node: nodes.Node, vars_in_scope: t.Set[str]) -> t.Iterator[C
146
155
  name = call_name(child_node)
147
156
  if name[0][0] != "'" and name[0] not in vars_in_scope:
148
157
  yield (name, child_node)
149
- yield from find_call_names(child_node, vars_in_scope)
158
+
159
+ if "target" not in child_node.fields:
160
+ yield from find_call_names(child_node, vars_in_scope)
150
161
 
151
162
 
152
163
  def extract_call_names(
@@ -203,6 +214,20 @@ def extract_macro_references_and_variables(
203
214
  return macro_references, variables
204
215
 
205
216
 
217
+ def sort_dict_recursive(
218
+ item: t.Dict[str, t.Any],
219
+ ) -> t.Dict[str, t.Any]:
220
+ sorted_dict: t.Dict[str, t.Any] = {}
221
+ for k, v in sorted(item.items()):
222
+ if isinstance(v, list):
223
+ sorted_dict[k] = sorted(v)
224
+ elif isinstance(v, dict):
225
+ sorted_dict[k] = sort_dict_recursive(v)
226
+ else:
227
+ sorted_dict[k] = v
228
+ return sorted_dict
229
+
230
+
206
231
  JinjaGlobalAttribute = t.Union[str, int, float, bool, AttributeDict]
207
232
 
208
233
 
@@ -330,13 +355,16 @@ class JinjaMacroRegistry(PydanticModel):
330
355
  if macro.is_top_level and macro_name not in root_macros:
331
356
  root_macros[macro_name] = macro_wrapper
332
357
 
358
+ top_level_packages = self.top_level_packages.copy()
359
+
333
360
  if self.root_package_name is not None:
334
361
  package_macros[self.root_package_name].update(root_macros)
362
+ top_level_packages.append(self.root_package_name)
335
363
 
336
364
  env = environment()
337
365
 
338
366
  builtin_globals = self._create_builtin_globals(kwargs)
339
- for top_level_package_name in self.top_level_packages:
367
+ for top_level_package_name in top_level_packages:
340
368
  # Make sure that the top-level package doesn't fully override the same builtin package.
341
369
  package_macros[top_level_package_name] = AttributeDict(
342
370
  {
@@ -349,6 +377,7 @@ class JinjaMacroRegistry(PydanticModel):
349
377
  context.update(builtin_globals)
350
378
  context.update(root_macros)
351
379
  context.update(package_macros)
380
+ context["render"] = lambda input: env.from_string(input).render()
352
381
 
353
382
  env.globals.update(context)
354
383
  env.filters.update(self._environment.filters)
@@ -434,7 +463,7 @@ class JinjaMacroRegistry(PydanticModel):
434
463
  d.PythonCode(
435
464
  expressions=[
436
465
  f"{k} = '{v}'" if isinstance(v, str) else f"{k} = {v}"
437
- for k, v in sorted(filtered_objs.items())
466
+ for k, v in sort_dict_recursive(filtered_objs).items()
438
467
  ]
439
468
  )
440
469
  )
@@ -661,3 +690,24 @@ def make_jinja_registry(
661
690
  jinja_registry = jinja_registry.trim(jinja_references)
662
691
 
663
692
  return jinja_registry
693
+
694
+
695
+ def extract_error_details(ex: Exception) -> str:
696
+ """Extracts a readable message from a Jinja2 error, to include missing name and macro."""
697
+
698
+ error_details = ""
699
+ if isinstance(ex, UndefinedError):
700
+ if match := re.search(r"'(\w+)'", str(ex)):
701
+ error_details += f"\nUndefined macro/variable: '{match.group(1)}'"
702
+ try:
703
+ _, _, exc_traceback = exc_info()
704
+ for frame, _ in walk_tb(exc_traceback):
705
+ if frame.f_code.co_name == "_invoke":
706
+ macro = frame.f_locals.get("self")
707
+ if isinstance(macro, Macro):
708
+ error_details += f" in macro: '{macro.name}'\n"
709
+ break
710
+ except:
711
+ # to fall back to the generic error message if frame analysis fails
712
+ pass
713
+ return error_details or str(ex)
sqlmesh/utils/pydantic.py CHANGED
@@ -289,13 +289,13 @@ def column_validator(v: t.Any, values: t.Any) -> exp.Column:
289
289
  return expression
290
290
 
291
291
 
292
- def list_of_columns_or_star_validator(
292
+ def list_of_fields_or_star_validator(
293
293
  v: t.Any, values: t.Any
294
- ) -> t.Union[exp.Star, t.List[exp.Column]]:
294
+ ) -> t.Union[exp.Star, t.List[exp.Expression]]:
295
295
  expressions = _get_fields(v, values)
296
296
  if len(expressions) == 1 and isinstance(expressions[0], exp.Star):
297
297
  return t.cast(exp.Star, expressions[0])
298
- return t.cast(t.List[exp.Column], expressions)
298
+ return t.cast(t.List[exp.Expression], expressions)
299
299
 
300
300
 
301
301
  def cron_validator(v: t.Any) -> str:
@@ -339,7 +339,7 @@ if t.TYPE_CHECKING:
339
339
  SQLGlotPositiveInt = int
340
340
  SQLGlotColumn = exp.Column
341
341
  SQLGlotListOfFields = t.List[exp.Expression]
342
- SQLGlotListOfColumnsOrStar = t.Union[t.List[exp.Column], exp.Star]
342
+ SQLGlotListOfFieldsOrStar = t.Union[SQLGlotListOfFields, exp.Star]
343
343
  SQLGlotCron = str
344
344
  else:
345
345
  from pydantic.functional_validators import BeforeValidator
@@ -352,7 +352,7 @@ else:
352
352
  SQLGlotListOfFields = t.Annotated[
353
353
  t.List[exp.Expression], BeforeValidator(list_of_fields_validator)
354
354
  ]
355
- SQLGlotListOfColumnsOrStar = t.Annotated[
356
- t.Union[t.List[exp.Column], exp.Star], BeforeValidator(list_of_columns_or_star_validator)
355
+ SQLGlotListOfFieldsOrStar = t.Annotated[
356
+ t.Union[SQLGlotListOfFields, exp.Star], BeforeValidator(list_of_fields_or_star_validator)
357
357
  ]
358
358
  SQLGlotCron = t.Annotated[str, BeforeValidator(cron_validator)]
sqlmesh/utils/windows.py CHANGED
@@ -3,12 +3,22 @@ from pathlib import Path
3
3
 
4
4
  IS_WINDOWS = platform.system() == "Windows"
5
5
 
6
+ WINDOWS_LONGPATH_PREFIX = "\\\\?\\"
7
+
6
8
 
7
9
  def fix_windows_path(path: Path) -> Path:
8
10
  """
9
11
  Windows paths are limited to 260 characters: https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation
10
12
  Users can change this by updating a registry entry but we cant rely on that.
11
- We can quite commonly generate a cache file path that exceeds 260 characters which causes a FileNotFound error.
12
- If we prefix the path with "\\?\" then we can have paths up to 32,767 characters
13
+
14
+ SQLMesh quite commonly generates cache file paths that exceed 260 characters and thus cause a FileNotFound error.
15
+ If we prefix paths with "\\?\" then we can have paths up to 32,767 characters.
16
+
17
+ Note that this prefix also means that relative paths no longer work. From the above docs:
18
+ > Because you cannot use the "\\?\" prefix with a relative path, relative paths are always limited to a total of MAX_PATH characters.
19
+
20
+ So we also call path.resolve() to resolve the relative sections so that operations like `path.read_text()` continue to work
13
21
  """
14
- return Path("\\\\?\\" + str(path.absolute()))
22
+ if path.parts and not path.parts[0].startswith(WINDOWS_LONGPATH_PREFIX):
23
+ path = Path(WINDOWS_LONGPATH_PREFIX + str(path.absolute()))
24
+ return path.resolve()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.213.1.dev1
3
+ Version: 0.227.2.dev4
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -235,7 +235,7 @@ Requires-Dist: python-dotenv
235
235
  Requires-Dist: requests
236
236
  Requires-Dist: rich[jupyter]
237
237
  Requires-Dist: ruamel.yaml
238
- Requires-Dist: sqlglot[rs]~=27.9.0
238
+ Requires-Dist: sqlglot[rs]~=27.28.0
239
239
  Requires-Dist: tenacity
240
240
  Requires-Dist: time-machine
241
241
  Requires-Dist: json-stream
@@ -258,12 +258,12 @@ Provides-Extra: dev
258
258
  Requires-Dist: agate; extra == "dev"
259
259
  Requires-Dist: beautifulsoup4; extra == "dev"
260
260
  Requires-Dist: clickhouse-connect; extra == "dev"
261
- Requires-Dist: cryptography; extra == "dev"
261
+ Requires-Dist: cryptography<46.0.0; extra == "dev"
262
262
  Requires-Dist: databricks-sql-connector; extra == "dev"
263
263
  Requires-Dist: dbt-bigquery; extra == "dev"
264
264
  Requires-Dist: dbt-core; extra == "dev"
265
265
  Requires-Dist: dbt-duckdb>=1.7.1; extra == "dev"
266
- Requires-Dist: dbt-snowflake; extra == "dev"
266
+ Requires-Dist: dbt-snowflake!=1.10.1; extra == "dev"
267
267
  Requires-Dist: dbt-athena-community; extra == "dev"
268
268
  Requires-Dist: dbt-clickhouse; extra == "dev"
269
269
  Requires-Dist: dbt-databricks; extra == "dev"
@@ -275,6 +275,7 @@ Requires-Dist: google-cloud-bigquery; extra == "dev"
275
275
  Requires-Dist: google-cloud-bigquery-storage; extra == "dev"
276
276
  Requires-Dist: httpx; extra == "dev"
277
277
  Requires-Dist: mypy~=1.13.0; extra == "dev"
278
+ Requires-Dist: numpy; extra == "dev"
278
279
  Requires-Dist: pandas-stubs; extra == "dev"
279
280
  Requires-Dist: pre-commit; extra == "dev"
280
281
  Requires-Dist: psycopg2-binary; extra == "dev"
@@ -287,7 +288,7 @@ Requires-Dist: pyspark~=3.5.0; extra == "dev"
287
288
  Requires-Dist: pytest; extra == "dev"
288
289
  Requires-Dist: pytest-asyncio; extra == "dev"
289
290
  Requires-Dist: pytest-mock; extra == "dev"
290
- Requires-Dist: pytest-retry; extra == "dev"
291
+ Requires-Dist: pytest-rerunfailures; extra == "dev"
291
292
  Requires-Dist: pytest-xdist; extra == "dev"
292
293
  Requires-Dist: pytz; extra == "dev"
293
294
  Requires-Dist: redshift_connector; extra == "dev"
@@ -313,9 +314,6 @@ Provides-Extra: gcppostgres
313
314
  Requires-Dist: cloud-sql-python-connector[pg8000]>=1.8.0; extra == "gcppostgres"
314
315
  Provides-Extra: github
315
316
  Requires-Dist: PyGithub>=2.6.0; extra == "github"
316
- Provides-Extra: llm
317
- Requires-Dist: langchain; extra == "llm"
318
- Requires-Dist: openai; extra == "llm"
319
317
  Provides-Extra: motherduck
320
318
  Requires-Dist: duckdb>=1.2.0; extra == "motherduck"
321
319
  Provides-Extra: mssql
@@ -333,7 +331,7 @@ Requires-Dist: redshift_connector; extra == "redshift"
333
331
  Provides-Extra: slack
334
332
  Requires-Dist: slack_sdk; extra == "slack"
335
333
  Provides-Extra: snowflake
336
- Requires-Dist: cryptography; extra == "snowflake"
334
+ Requires-Dist: cryptography<46.0.0; extra == "snowflake"
337
335
  Requires-Dist: snowflake-connector-python[pandas,secure-local-storage]; extra == "snowflake"
338
336
  Requires-Dist: snowflake-snowpark-python; extra == "snowflake"
339
337
  Provides-Extra: trino
@@ -347,7 +345,6 @@ Requires-Dist: pyarrow; extra == "web"
347
345
  Provides-Extra: lsp
348
346
  Requires-Dist: fastapi==0.115.5; extra == "lsp"
349
347
  Requires-Dist: watchfiles>=0.19.0; extra == "lsp"
350
- Requires-Dist: uvicorn[standard]==0.22.0; extra == "lsp"
351
348
  Requires-Dist: sse-starlette>=0.2.2; extra == "lsp"
352
349
  Requires-Dist: pyarrow; extra == "lsp"
353
350
  Requires-Dist: pygls<2.0.0,>=1.2.0; extra == "lsp"
@@ -0,0 +1,370 @@
1
+ sqlmesh/__init__.py,sha256=v_spqQEhcnGaahp1yPvMqUIa6mhH3cs3Bc1CznxvCEA,7965
2
+ sqlmesh/_version.py,sha256=61fEV84cLQA9JcmuRrr_Ssh8_Yd6f93KziTzA5w9Ue4,721
3
+ sqlmesh/magics.py,sha256=xLh3u4eqpVrKRVN5KF3X84RPRqjygAB9AJP1TXwH8hg,42086
4
+ sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ sqlmesh/cicd/bot.py,sha256=2zlbn-DXkqQzr3lA0__IGU4XaIfXBXBKLWXNI2DRJX8,759
7
+ sqlmesh/cicd/config.py,sha256=mpgkisSBBovlNrNZir2unT8Wes6b38RW2UsU_o4e8vY,109
8
+ sqlmesh/cli/__init__.py,sha256=MAXAyO7isbyM-PaSdFjkJNcjn32WjOl0XzxT5gvp_vo,1690
9
+ sqlmesh/cli/main.py,sha256=m0yOCVP_SAWO-6-O0Pwi2jq1l9-LHhYaLc87tVo_DNg,34845
10
+ sqlmesh/cli/options.py,sha256=8qEGWivk4urGikpEmaU9T8WsyaZtjCpmW4Ed25iQ73I,2543
11
+ sqlmesh/cli/project_init.py,sha256=OsIj2wuze3hG0XxSyJfYJZsBDE6hKa6Hc2T2p4gXD1Y,18026
12
+ sqlmesh/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ sqlmesh/core/_typing.py,sha256=PzXxMYnORq18JhblAOUttms3zPJZzZpIbfFA_jgKYPA,498
14
+ sqlmesh/core/console.py,sha256=MYpVlciUY6rUuoqXyKfXTxD6a4-Bw4-ooATUTj_VHGg,172830
15
+ sqlmesh/core/constants.py,sha256=BuQk43vluUm7LfP9nKp5o9qRhqIenWF_LiLXO_t_53c,2699
16
+ sqlmesh/core/context.py,sha256=UxK9h9qvjwmnRTL7JLUEJFZvinWbJ_dDkXIKHq0s5ZU,131264
17
+ sqlmesh/core/context_diff.py,sha256=mxkJu0IthFMOlaQ_kcq5C09mlgkq2RQb-pG2rd-x_nA,21648
18
+ sqlmesh/core/dialect.py,sha256=CnKcPj6BnREfu9Zn1OyS7hZ3ktnaX03ygOg91nADlTU,53029
19
+ sqlmesh/core/environment.py,sha256=Kgs_gUEUI072mh0JJFWNRynrCxp1TzRHZhX_NWJRfXc,13142
20
+ sqlmesh/core/janitor.py,sha256=zJRN48ENjKexeiqa1Kmwyj_HsEEEIAa8hsFD8gTCmfg,7194
21
+ sqlmesh/core/lineage.py,sha256=LtiOztX1xIbFfWz-eb5dPZW4B0o2sI942_IM4YDbsso,3163
22
+ sqlmesh/core/loader.py,sha256=2u91WKnXWHbAmyo9mluXHhSNwhe4r35QHv031S4OXjU,37291
23
+ sqlmesh/core/macros.py,sha256=rkklwVnUEmEro4wpdel289mKhaS3x5_SPZrkYZt3Q9E,63173
24
+ sqlmesh/core/node.py,sha256=2ejDwH1whl_ic1CRzX16Be-FQrosAf8pdyWb7oPzU6M,19895
25
+ sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
26
+ sqlmesh/core/reference.py,sha256=k7OSkLqTjPR8WJjNeFj0xAJ297nZUMgb_iTVwKRRKjc,4875
27
+ sqlmesh/core/renderer.py,sha256=z1WbRaNnBUZAWqc5gYurIgd4LocKQOexdjKQ0hhbLfE,28854
28
+ sqlmesh/core/scheduler.py,sha256=seYDDtowupyyK_xgjqDLZ5CACyktKCojmAjj97Tg0ts,50629
29
+ sqlmesh/core/schema_diff.py,sha256=qM4uxOBtrAqx8_5JU0ERicMT-byLD4xUUv4FrQw92js,33934
30
+ sqlmesh/core/schema_loader.py,sha256=_Pq2RSw91uthqv1vNi_eHmLlzhtGz_APMJ0wAJZYuvk,3677
31
+ sqlmesh/core/selector.py,sha256=gb8NpDXO-yxzxAB4Rl5yRkirWZyouV9V9d9AC1Lfzjg,18030
32
+ sqlmesh/core/signal.py,sha256=RPyQNSCLyr2sybRK3wj6iWwukpwF-R0w9divnPwjJlM,3692
33
+ sqlmesh/core/table_diff.py,sha256=oKLVaBs5HhpWFQUHimcNB4jDPvFJCCM360N3yQqle5g,28872
34
+ sqlmesh/core/user.py,sha256=EJ6R4R1iK67n80vBoCCsidF56IR7xEYqiCEO-nrVMso,1660
35
+ sqlmesh/core/analytics/__init__.py,sha256=ou3ZXAJfQOXEifj-PzaXwMDSvJzsVaqaMkUopiI00kM,3247
36
+ sqlmesh/core/analytics/collector.py,sha256=sggJvER16Jrg5triTC27E2KwaQvfkVDv4D6R1lVPH5I,13058
37
+ sqlmesh/core/analytics/dispatcher.py,sha256=SQw5tHIETb7ei_oCj7ktHEJyeJNbKyIYiOPxQXyQuIg,6259
38
+ sqlmesh/core/audit/__init__.py,sha256=3jogKe-G4X0rOxwH5QVuRRioyesQffSWxKU4PVwMPvA,216
39
+ sqlmesh/core/audit/builtin.py,sha256=adA-cFCphB66jVY4n66cbwbRTFF1FTEIMrLhRDpbBo0,17783
40
+ sqlmesh/core/audit/definition.py,sha256=y54UAKz0ToYbVry_vY4sMgliQwCahrWrbF3biT81gbU,19272
41
+ sqlmesh/core/config/__init__.py,sha256=tnEakbd8FAgSLYmjzuYAAgHIpJ00lwMKAhD_Cfs2OlE,2148
42
+ sqlmesh/core/config/base.py,sha256=t8NQmsgQoZSc-k0dlDiCb8t1jj0AMYdGZ-6se9q_Pks,4898
43
+ sqlmesh/core/config/categorizer.py,sha256=6vzUoNLjR6GOEb_2mYVz2TwmMv2BfldgHX2u-Le5HZs,1975
44
+ sqlmesh/core/config/common.py,sha256=9V6PltBAjYeWLOU5dAbqL55BSFfpg8z8t2Op1x_PLhU,6418
45
+ sqlmesh/core/config/connection.py,sha256=My5gcfT4PoNE1HGELG2TLfAgS7K2QanPnJE9TaNTa7Y,90999
46
+ sqlmesh/core/config/dbt.py,sha256=xSQ4NEVWhZj_aRYpyy4MWcRJ8Qa0o28w2ZBLI4bs3_I,468
47
+ sqlmesh/core/config/format.py,sha256=6CXFbvnor56xbldKE-Vrm9k_ABRoY4v6vgIb3mCihiQ,1355
48
+ sqlmesh/core/config/gateway.py,sha256=tYngyqwd_4Qr9lhcv2hlvLvb_2pgYYtKu6hdGsTr-4I,1931
49
+ sqlmesh/core/config/janitor.py,sha256=jxZWSNZMhNjJR9lWI00rDe2nr_5AOxkKE52Fo5nbq_U,901
50
+ sqlmesh/core/config/linter.py,sha256=4Fh6UgY5FrRD9tk_R41Y-M_r91Wh7EQW3Pc1IdRN9Cg,1287
51
+ sqlmesh/core/config/loader.py,sha256=p26Ux_-ekgXtOHuqSMObDGfnAfb8Ou3Rug95mZ_uiOg,10167
52
+ sqlmesh/core/config/migration.py,sha256=3lZIlmIcQH3_hIEm3Y3jFtvpw0YXzRzAnk4OdiklO6M,408
53
+ sqlmesh/core/config/model.py,sha256=NgqyIq7J5DCGhIo9I_htiWjTycydVRlchG5McZuHSd0,4627
54
+ sqlmesh/core/config/naming.py,sha256=KVGaxUgswoQajXR_cHFJvgkmEFcU1V182GkOH1SJxuE,326
55
+ sqlmesh/core/config/plan.py,sha256=wJEDfocMcKSMN0-5gVojjIcmJZ0376LJU3tkGMTm-Zc,1558
56
+ sqlmesh/core/config/root.py,sha256=z4EFaUWL5S8RJWEfGedMuBXAL-zKYTS_H4qq-yDKGOs,17001
57
+ sqlmesh/core/config/run.py,sha256=rIK0QnN_vArrwps2TXGVEbvao2AnGZgzXo7EliJa42E,852
58
+ sqlmesh/core/config/scheduler.py,sha256=LVEHIln7dqv8ygo4uniji4j9-gfuJlk-WpQU9FAqILs,7031
59
+ sqlmesh/core/config/ui.py,sha256=jsO-S6_d9NkLZGG5pT4mgKgxMF34KzkDociZAMvCX3U,278
60
+ sqlmesh/core/engine_adapter/__init__.py,sha256=y9jZAFdMBkkkRrf0ymfsJJn6s_7Ya6OpDgR4Bf1OG_U,2383
61
+ sqlmesh/core/engine_adapter/_typing.py,sha256=PCXQVpNbUTI3rJQyH_VTx57mDR5emh8b8cAfme6hTW4,1104
62
+ sqlmesh/core/engine_adapter/athena.py,sha256=5BhMaQcpiBkGt_tdT4Dw67t5pCOh-UN9-bQtayFRL3Q,26867
63
+ sqlmesh/core/engine_adapter/base.py,sha256=t6c8HlWLmN_2GaWA3EV85Sq29al3fZpesE7Nr7iSDIw,129989
64
+ sqlmesh/core/engine_adapter/base_postgres.py,sha256=WTU0QingaTNM7n-mTVxS-sg4f6jFZGOSryK5IYacveY,7734
65
+ sqlmesh/core/engine_adapter/bigquery.py,sha256=edBWbAbeXA4bOtVG-YNTQbt9qqwL9QFffZti8Ozv-Cw,60923
66
+ sqlmesh/core/engine_adapter/clickhouse.py,sha256=GWGpwdxZd4RqLSAMlOHjtO8nPpSIo3zFeRWnj9eSOrM,36072
67
+ sqlmesh/core/engine_adapter/databricks.py,sha256=452Og5LriNtvXk0DElUGmoR_pUFQvBgNZchpprTIJxA,15846
68
+ sqlmesh/core/engine_adapter/duckdb.py,sha256=9AXeRhaYXBcYSmIavyFY9LUzfgh94qkTO98v0-suQ8I,7993
69
+ sqlmesh/core/engine_adapter/fabric.py,sha256=wky02p3UVu0FvEZwqqb5XBW--XCc1JLMLrvY6TVqCdM,14172
70
+ sqlmesh/core/engine_adapter/mixins.py,sha256=3rB7B2PZSB920BODO7k_kKqu6z0N-zj1etiRCYzpUcQ,27096
71
+ sqlmesh/core/engine_adapter/mssql.py,sha256=pqh6D_7eAeVCH6K4-81HPcNTLEPhTM_-Mou0QWBTOfA,18898
72
+ sqlmesh/core/engine_adapter/mysql.py,sha256=anKxdklYY2kiuxaHsC7FPN-LKzo7BP0Hy6hinA_c5Hg,6953
73
+ sqlmesh/core/engine_adapter/postgres.py,sha256=W3GXlA1qjTp6t9Az9w1bGJL28ahwes82gjhliYfo0tw,5417
74
+ sqlmesh/core/engine_adapter/redshift.py,sha256=DrBQbBpDwLKf4ARygBO3ldicAJs2n_BBWkGIHH8-CBM,17778
75
+ sqlmesh/core/engine_adapter/risingwave.py,sha256=d_1MxpXNONyyLnuELa7bILkJlLquf4j7DEbMsT3BHu8,2387
76
+ sqlmesh/core/engine_adapter/shared.py,sha256=bM4GJSAR0dU3wCqsTl2SIcy2j_8BGusQvnme99l6wnE,13701
77
+ sqlmesh/core/engine_adapter/snowflake.py,sha256=6rMuhuhp2K-UH8dVnmiieucfOevxmK8vR3N5-dj4MDA,33453
78
+ sqlmesh/core/engine_adapter/spark.py,sha256=ZDEg4rx_cvPcLG83PSWu5nkXzChaCbmb7ka2J2ngEEU,23068
79
+ sqlmesh/core/engine_adapter/trino.py,sha256=VMO9zW0kT0XEK7M2ocWBW5Ep7pAUzne70YqhT2_-d4I,18144
80
+ sqlmesh/core/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
+ sqlmesh/core/linter/definition.py,sha256=1EOhKdF16jmeqISfcrR-8fzMdgXuxpB7wb3QaepBPeU,5564
82
+ sqlmesh/core/linter/helpers.py,sha256=cwKXP4sL6azRtNVGbMfJ5_6Hqq5Xx2M2rRLCgH3Y3ag,10743
83
+ sqlmesh/core/linter/rule.py,sha256=nB3o1rHyN44ZOg5ImICP16SeUHimf-12ObdXJjkTGyM,3964
84
+ sqlmesh/core/linter/rules/__init__.py,sha256=gevzfb67vFqckTCoVAe_TBGf6hQ-YtE1_YuGuXyh1L0,77
85
+ sqlmesh/core/linter/rules/builtin.py,sha256=C6_cAeZEmZphl9SjGUFMsHGrDKNjxQ5Y6g66eO8HCZg,11177
86
+ sqlmesh/core/metric/__init__.py,sha256=H1HmoD5IwN4YWe9iJXyueLYNmTQFZwok5nSWNJcZIBQ,237
87
+ sqlmesh/core/metric/definition.py,sha256=Yd5aVgsZCDPJ43aGP7WqtzZOuuSUtB8uJGVA6Jw9x9M,7201
88
+ sqlmesh/core/metric/rewriter.py,sha256=GiSTHfn2kinqCfNPYgZPRk93JFLzVaaejHtHDQ0yXZI,7326
89
+ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu4,1644
90
+ sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
91
+ sqlmesh/core/model/common.py,sha256=UqOmtbsrl4MYDUOigde2CwME-qdPgRf91QExX4yhAA0,27741
92
+ sqlmesh/core/model/decorator.py,sha256=bL-JuNrdBAikZSjVxnXqeB9i0e9qC7jm7yLjwiZ38aU,9470
93
+ sqlmesh/core/model/definition.py,sha256=1IQ74uUuqfOd6sUVIo_73SGf-MAptWzqLqJdm4eR1wA,117430
94
+ sqlmesh/core/model/kind.py,sha256=qJdiin09Q0neRFudNnLsDNCvbqD3EHAoK-WCvX-eUJs,40071
95
+ sqlmesh/core/model/meta.py,sha256=ELjprp6rl7dW9a7rs9eyQXScbDImInq35SyasiAriIk,24128
96
+ sqlmesh/core/model/schema.py,sha256=_HMYfzK9wWXh7_CQDIIGnuQUD4aiX3o5D2cRp2sERzc,3387
97
+ sqlmesh/core/model/seed.py,sha256=a0M-1zY1gOkN5ph2GQyataEdBSCtq50YjeFk2LyvInI,5058
98
+ sqlmesh/core/plan/__init__.py,sha256=NKSvM7ZBVjw9ho3J65M1wFvG3KURB8PJ0FHHLmtSF44,443
99
+ sqlmesh/core/plan/builder.py,sha256=naiEWF_x3vUpcVjzaif1HMsKPtJLvabdnB4WsCskdf8,44245
100
+ sqlmesh/core/plan/common.py,sha256=GEu7eXIfX7MM7d8-1znYlVnF1UbRZkBSDXLoMbjsieY,10716
101
+ sqlmesh/core/plan/definition.py,sha256=tfddMilgk4CZN2SljFotFlttsT9nBQ50kwiNDRonxXw,15282
102
+ sqlmesh/core/plan/evaluator.py,sha256=twO9cHznTNAtPNC4IZcw9uhCxGl2yIywfePfmJKkymE,21114
103
+ sqlmesh/core/plan/explainer.py,sha256=UITln7f4vxf6-nx7mV_IBbtIZ4f8ob4TyooqZMB9Pqg,15442
104
+ sqlmesh/core/plan/stages.py,sha256=-Ju9yRQlEFmQoDIsDH_RO0EHdOlRZUVtVT9ag1gzLns,27491
105
+ sqlmesh/core/snapshot/__init__.py,sha256=NUhvP-glftOWwxONK79Bud93yNQJv8ApBUjkV35RhMY,1465
106
+ sqlmesh/core/snapshot/cache.py,sha256=bgqCR2hyf6r2A_8QP1EnXFK25gDX37-Zg0YeMuETWxg,3934
107
+ sqlmesh/core/snapshot/categorizer.py,sha256=iNBEqK2KIyTAYURlB9KLfyKCpXN7vjxSqA7QjFa7e5c,2418
108
+ sqlmesh/core/snapshot/definition.py,sha256=ZjjeiFLglG6zOusjzgaKOWSr_X_77JlMmvHK0C8d6Ms,96692
109
+ sqlmesh/core/snapshot/evaluator.py,sha256=ALO9bfzU9TxtNr1AdMCpnM1iJ_TJmpZKOJyO4UghRKc,133153
110
+ sqlmesh/core/snapshot/execution_tracker.py,sha256=Ss1oYgH28Fy1mQ4HriX-luE9MG0eLdecrE1SssUveQI,3651
111
+ sqlmesh/core/state_sync/__init__.py,sha256=vcm3p_e0scP_ZxOs3XPKPG3uPsaxrK_4pnNj0QueDwQ,779
112
+ sqlmesh/core/state_sync/base.py,sha256=nK5tq5cIT5x5NrTaTurCRX18bSHnhSjEWG20tVqlkZc,19340
113
+ sqlmesh/core/state_sync/cache.py,sha256=YINkQrqxkJ46G0151s1y9O6yhq2v4AJUHLY_kQUR57s,5427
114
+ sqlmesh/core/state_sync/common.py,sha256=u2uWZAMRT2ZBu3rHaKWAQgM0qmT1NIHfnUAm3pIez6M,11142
115
+ sqlmesh/core/state_sync/export_import.py,sha256=WJ7sFX2b_RPAFE4yspJRi_4JQnaO23xpJgRxwXD0agA,8709
116
+ sqlmesh/core/state_sync/db/__init__.py,sha256=jGCqKYB7npq4eh6H2LyfBAJWdOP-IFu0DC4CMiQgYvw,107
117
+ sqlmesh/core/state_sync/db/environment.py,sha256=Q1oOCJniZ75WpOG67fbehDVmzR4stJhW8FDW7C5hg8I,13821
118
+ sqlmesh/core/state_sync/db/facade.py,sha256=O_Y1hcxhysBcFHfM8tJz1Pm0DZh3mXFz26tAEQX28g8,25720
119
+ sqlmesh/core/state_sync/db/interval.py,sha256=YuzGB7QAgKUcc9A5d4APmj8CtFXx9x0WYXgVwSKaRnc,18925
120
+ sqlmesh/core/state_sync/db/migrator.py,sha256=oPnj5f07c1ykuxzQX3YTSThjdyFDj1nUZ5ktwz_ksKE,18958
121
+ sqlmesh/core/state_sync/db/snapshot.py,sha256=NeFPCRF3pAgna5XVrUmNH1R_J5B36gDhjXjUMSlZKK0,29183
122
+ sqlmesh/core/state_sync/db/utils.py,sha256=8KjRmOjP5CLuSRkYBUE2k34V-UYB0iSyuO0rWBQ_5pY,4218
123
+ sqlmesh/core/state_sync/db/version.py,sha256=q5VDIIvY-585vTbvqPalU0N4qjG6RKs4gr8a51R-_UE,2257
124
+ sqlmesh/core/test/__init__.py,sha256=e83TJPwPRR_rAG29Y0OVbZb-5oWVBzz-_wrcd22Qk10,418
125
+ sqlmesh/core/test/context.py,sha256=-TjUrhM3WLtVPBgOMTkvRrnuZq7mT7BeIIyuCbrPePU,2332
126
+ sqlmesh/core/test/definition.py,sha256=Lfflu-qgkqkI7T977F4h4X7c5Co7i3uBt5Efsi4XaZE,42219
127
+ sqlmesh/core/test/discovery.py,sha256=WXIwPidLoacAGHoT_3TVFFEKamG89nHNtaMsZ01uGjs,1188
128
+ sqlmesh/core/test/result.py,sha256=6gOKEsERciHhcrw9TedtNr7g1ynTO7UwA5-PPrzvYuM,4564
129
+ sqlmesh/core/test/runner.py,sha256=8I-cL7Q9CggLvET_GPkrXB2YjlyCIHrvbFbbRDnSHRE,6169
130
+ sqlmesh/dbt/__init__.py,sha256=KUv-lW5sG9D2ceXAIzA4MLcjyhzq3E-7qJP4P_PH2EU,144
131
+ sqlmesh/dbt/adapter.py,sha256=z-tFIj3rpVvdBr3y8l40FU531-TQ5H2ctLmjwzMBxwk,21321
132
+ sqlmesh/dbt/basemodel.py,sha256=oUr_Em-TjQbpYZS5gtvMA65JRTdnZM46NO9MWvLBLzQ,14860
133
+ sqlmesh/dbt/builtin.py,sha256=hJwLdVs3Qe_AFUIa0ZMnktblpdkGGaq20nFUJEf3B_I,19752
134
+ sqlmesh/dbt/column.py,sha256=T5xEWNf0n1sZ3REWnc5D9RsXt5VrrZ1YlMWZUUuAUxo,2449
135
+ sqlmesh/dbt/common.py,sha256=RmabUrj2A25G1vy7iV-15NJ481L5qHAQnq-JVNYEQr0,8653
136
+ sqlmesh/dbt/context.py,sha256=JDfSkVBBV2Xi4nDOwWipVHJRll3ioEmvh7gBglPVvqM,11074
137
+ sqlmesh/dbt/loader.py,sha256=ZTpPFnXuf4hQ8Z7Z6oMzxqN2wMMxsQqhm2x-8a5R1AA,19269
138
+ sqlmesh/dbt/manifest.py,sha256=uwXiXnhjoXVZeRa7eTp1eqUYrw_6VQNOqquozJy_FOo,34633
139
+ sqlmesh/dbt/model.py,sha256=RcQw3Dz2o4zC8vBYPCkMB8MKkn3MEUS6Ns3uQmACkeQ,35435
140
+ sqlmesh/dbt/package.py,sha256=8MOq_kHP2qjj24bpoC3GPnHlOVLYO4V9oVb9krk1Mdk,4759
141
+ sqlmesh/dbt/profile.py,sha256=ilDiSqBqw6lsJLUu4MfJSrIkvtC3fbxlvawKn44lHjc,4009
142
+ sqlmesh/dbt/project.py,sha256=Dxf9JakvvQofhcRa2bSi5tFCU4eHMlyRt_Dd7vwOWQM,4712
143
+ sqlmesh/dbt/relation.py,sha256=8QhnW_mQ6bjhKNZwTI1p9SLdMBCcAxvHfo0Qs97Mw6w,228
144
+ sqlmesh/dbt/seed.py,sha256=4X2SDKNaJv4r91S2kpwgJKhOL6GoEpb8d0gRchrCKo0,4494
145
+ sqlmesh/dbt/source.py,sha256=TyXPH7YwuWhj6AXrPPqs1oWJ84C9BundoLzm3qxwAKY,4508
146
+ sqlmesh/dbt/target.py,sha256=0qtAExh1foZwvBJ7SmThR1uuazVW1RSpSwq8dw0fHYo,42284
147
+ sqlmesh/dbt/test.py,sha256=NzhoafbUaLS9hs6DqIYJKBl0YaUGJ2qNY2jGulz53t0,9446
148
+ sqlmesh/dbt/util.py,sha256=M-f5fJcdRMCkYnPR-UqnD-KciLe4uSw0U5OxzU8Lg28,906
149
+ sqlmesh/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
+ sqlmesh/engines/spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
+ sqlmesh/engines/spark/db_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ sqlmesh/engines/spark/db_api/errors.py,sha256=LSXuHHhkzHvKlcdwmhCM9qm51KyKoP8gQH-p_W3Oow4,148
153
+ sqlmesh/engines/spark/db_api/spark_session.py,sha256=uQP0VFFYtp3N9mK7zKw6SoiGVhJDDYPylqx46yDwGEc,4667
154
+ sqlmesh/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
+ sqlmesh/integrations/dlt.py,sha256=mA9ym16gAN2O8RYOzSPeTX5xsXPuXVRPdiX7dkGGZlo,7744
156
+ sqlmesh/integrations/slack.py,sha256=nxLxu5WztGbZH3JdqnzyPqmJUMfRdJ_49LQ7zR-u39Q,6801
157
+ sqlmesh/integrations/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
+ sqlmesh/integrations/github/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ sqlmesh/integrations/github/cicd/command.py,sha256=w3oWhvR4utEurB5UABXj4iVBIojkCnZ0wTazIFmVmnc,12246
160
+ sqlmesh/integrations/github/cicd/config.py,sha256=n4KyNv65y1gpys82iLAQZUb6g2pnzywyV_7cOrQXsnI,3669
161
+ sqlmesh/integrations/github/cicd/controller.py,sha256=0I5mHPz3HBJR5lkR-2J9Bj06Yn-Q5_a8Z1tg2pcqOWc,54927
162
+ sqlmesh/lsp/api.py,sha256=Z_8Op6CWqdbmEeidCQgMcVmRooQujqaynn-0EOw4478,2505
163
+ sqlmesh/lsp/commands.py,sha256=7tZPePSH-IwBYmXJPIlqGM7pi4rOCLEtc3fKJglAxZs,72
164
+ sqlmesh/lsp/completions.py,sha256=7Lhboh6xyoMJ3kkHG3aZz1xVbDwKiXeQKdIRj5xlUOA,6674
165
+ sqlmesh/lsp/context.py,sha256=VIL_Xl3II6I79ILZ67UTY9u6OzgkLHDTEpTK91DJxAA,20892
166
+ sqlmesh/lsp/custom.py,sha256=npzNznpUJ3ELY_WU4n_4I73lAjuTapI0_HKCFsoMcOk,5132
167
+ sqlmesh/lsp/errors.py,sha256=3NMim_5J00Eypz7t8b7XbkBfy8gIsRkeq-VcjD4COtc,1489
168
+ sqlmesh/lsp/helpers.py,sha256=EFc1u3-b7kSv5-tNwmKUDxId72RCLDBnN2lLTgRSzzQ,1020
169
+ sqlmesh/lsp/hints.py,sha256=j-blccBUil94yRoDjWfkSM0HqMmsKD6hP2TaWdWWVk4,3734
170
+ sqlmesh/lsp/main.py,sha256=RMT2HTCismeHfAvYeOAIUlD-YlUSORBImt5mLsBDlto,52353
171
+ sqlmesh/lsp/reference.py,sha256=-TTT5NIIGDQoEDCzH8RNgEINt0p9DYclzEn4rBjreRI,18475
172
+ sqlmesh/lsp/rename.py,sha256=AFj-zJGWiBgHSj1jx1rOx4yJmmw1QpEcob648epM8gk,4668
173
+ sqlmesh/lsp/tests_ranges.py,sha256=YO5w534J5_y2NWxj9t637wHLbFDJdXBvM7i5F4C-P0I,2308
174
+ sqlmesh/lsp/uri.py,sha256=mvSLbZGmMTHPpliThOtVWiFcHnfJzp1w39q9l-xD2SI,802
175
+ sqlmesh/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
+ sqlmesh/migrations/v0000_baseline.py,sha256=-RE0vLtUHVPlMLr3fmO78KAMtnH0eFwwMl1Hu-1yYcI,3915
177
+ sqlmesh/migrations/v0061_mysql_fix_blob_text_type.py,sha256=Pt_o1dvKnAMEckc_1RNN-IzKihv0a3_yIIvkxOxaIaI,1389
178
+ sqlmesh/migrations/v0062_add_model_gateway.py,sha256=iRgrV3nqUS25ymvIDOMOhpcJ-yoww5z-1lCHccN1cuo,200
179
+ sqlmesh/migrations/v0063_change_signals.py,sha256=muZzZr5YQSU0CV7yj98u7hXiVQ0pC81DBUSInEVdRmE,2981
180
+ sqlmesh/migrations/v0064_join_when_matched_strings.py,sha256=V5HPe3r49_ECQ5yvyLYcociWfnWZdgIAvGgl1PiF7gc,2615
181
+ sqlmesh/migrations/v0065_add_model_optimize.py,sha256=N4UCbUepd_lkWNWvVSdEjImGH54-BeMbvLjVEnhrW_c,207
182
+ sqlmesh/migrations/v0066_add_auto_restatements.py,sha256=jkJzAXHA9Wj8wGrxAlYS1VMZo0VnY6UqTODObmTNtGY,1477
183
+ sqlmesh/migrations/v0067_add_tsql_date_full_precision.py,sha256=NZRJP5YsbvqhRfVqwhwfpCqyFh59IDkOdwjGpJPqrV0,219
184
+ sqlmesh/migrations/v0068_include_unrendered_query_in_metadata_hash.py,sha256=XcDD-MQb_EuDwrdqWc7Q6FPs_5oNlDYp73GvGQ9rrxc,218
185
+ sqlmesh/migrations/v0069_update_dev_table_suffix.py,sha256=Dh-CBX19uC6q1BE6JIhQx0QApbKI5smR2PwF5sJev58,5736
186
+ sqlmesh/migrations/v0070_include_grains_in_metadata_hash.py,sha256=5f4kK-HmzFZe-avfogTcSnmt-1HXzBcUjXnU_YYMEM4,204
187
+ sqlmesh/migrations/v0071_add_dev_version_to_intervals.py,sha256=hCuE8fn08CyiIASWrUbI02fwt6gpeWQ2YR_X7cKiR_c,8367
188
+ sqlmesh/migrations/v0072_add_environment_statements.py,sha256=-XxPwMzGeUzFoIyaGYBeV1LOxOI-7XCJtjHbrs2Vj_k,894
189
+ sqlmesh/migrations/v0073_remove_symbolic_disable_restatement.py,sha256=LA5G3ZSFrZ0W0mtc5Z0nAhbGFGN4tEmjveYteApTbhY,2335
190
+ sqlmesh/migrations/v0074_add_partition_by_time_column_property.py,sha256=A7V6vmHq1DoS6EOrDojj2lEDFU-TgN2elNFl0om396s,295
191
+ sqlmesh/migrations/v0075_remove_validate_query.py,sha256=4TFy2sLH3OSpak1EWJSVWfbrzZ1GBzaBtfSk4tYvB2I,2484
192
+ sqlmesh/migrations/v0076_add_cron_tz.py,sha256=C4hOz204fSt9L3xxZLHn1m7w9Qbg0cXIQJoit-8_AIU,210
193
+ sqlmesh/migrations/v0077_fix_column_type_hash_calculation.py,sha256=9K2ruUs0ZgX_SPxU0U7B3a4DOxY6Jt27hw9dCW02mhY,239
194
+ sqlmesh/migrations/v0078_warn_if_non_migratable_python_env.py,sha256=G9OHD7m2Gn2O6S8gKTRl06BNmVQqSCfkP4dxHUtFVQk,5219
195
+ sqlmesh/migrations/v0079_add_gateway_managed_property.py,sha256=V6vD3s1Bqe8ArfZ6r9Q7lWRQCOkPeVoA6e3Wksb2BW8,1007
196
+ sqlmesh/migrations/v0080_add_batch_size_to_scd_type_2_models.py,sha256=iIf68GEBjmX8EPY3wOZw47dTC_ijoPHF1LWwANI6DWw,269
197
+ sqlmesh/migrations/v0081_update_partitioned_by.py,sha256=NhkyuVpzJ4XqtS7VU-ZMqPEDqSU7PlIMVtSKPGyEajI,2924
198
+ sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py,sha256=AtDNziLsA8LMr8S9IcCGwaKkSU8NTde6jGk-khvr4Hk,2510
199
+ sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py,sha256=lYtJka1aS6pu-sN74ienEzID4_RWE2bu2VRtry1xyg4,247
200
+ sqlmesh/migrations/v0084_normalize_quote_when_matched_and_merge_filter.py,sha256=kMBcOA0In5Q7RInBUdGCilsdqeRQTd-sulgwaccSBpo,428
201
+ sqlmesh/migrations/v0085_deterministic_repr.py,sha256=5146a37NBimiteNyR_3TNGymLSVogcyj2vn4Vdz1zqQ,4293
202
+ sqlmesh/migrations/v0086_check_deterministic_bug.py,sha256=w_-hz7KKO4WX-v5f2pGMAMDdcJ6guIs1luI8NVMZ0IQ,2974
203
+ sqlmesh/migrations/v0087_normalize_blueprint_variables.py,sha256=2CKpNqMdhUbZKxjuGEwq9uNSVOMHYDpdP6UHog3q4K8,4449
204
+ sqlmesh/migrations/v0088_warn_about_variable_python_env_diffs.py,sha256=ipW3zmdJuN0hjc3Wy96fEdW4qJFjxbqihGipj68DNXI,3275
205
+ sqlmesh/migrations/v0089_add_virtual_environment_mode.py,sha256=IwM_wSqzcZfJ2jua6h-4Sx2PcALhE0czs2pXzDnujYg,221
206
+ sqlmesh/migrations/v0090_add_forward_only_column.py,sha256=hM04jage95hXamjC8ZEeTCR_tivvI8FCGpCzHjyJ5iU,3137
207
+ sqlmesh/migrations/v0091_on_additive_change.py,sha256=QpkWpntj3mb-jX4liH_UAKlk1kNf6s23YTd8S2pkVHI,226
208
+ sqlmesh/migrations/v0092_warn_about_dbt_data_type_diff.py,sha256=6JFfsdc6IPLrGunhS1c1ThS8AuyVI6UYrcAFvK9RbsE,1895
209
+ sqlmesh/migrations/v0093_use_raw_sql_in_fingerprint.py,sha256=mPaXBleWuZXXf0Lq-lmPGq3jONNr0MWkuSu1XkWFYfk,221
210
+ sqlmesh/migrations/v0094_add_dev_version_and_fingerprint_columns.py,sha256=CYMkGHXnkGUBKelI5jXWdamArHGNohCr4-8WNR7iq1A,3761
211
+ sqlmesh/migrations/v0095_warn_about_dbt_raw_sql_diff.py,sha256=hiDKWEt3rrSwhTr3j_kkkMvVfe9Yowsr2l9gYXsoN08,2021
212
+ sqlmesh/migrations/v0096_remove_plan_dags_table.py,sha256=zICq9pOnScjjhl1t1MEO6NNP19NZPg89mzMy_iL-Ewo,350
213
+ sqlmesh/migrations/v0097_add_dbt_name_in_node.py,sha256=z4fC7idQ4745O0JSXxID39ZO9K0uPoODQR4Bg3gACQY,211
214
+ sqlmesh/migrations/v0098_add_dbt_node_info_in_node.py,sha256=ohLgf5m8AHs5BA77uA4dbzTfs0JA2FJgM0o9maaEyNE,3323
215
+ sqlmesh/migrations/v0099_add_last_altered_to_intervals.py,sha256=pt80e-KzCsJgUryOsr2z9oD8nRyowpbg5NXUinajK1g,687
216
+ sqlmesh/migrations/v0100_add_grants_and_grants_target_layer.py,sha256=Bx7UPPIL-p2HzFyYYrMf5ESciMw1evz4ZeFsDcMAIcA,238
217
+ sqlmesh/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
+ sqlmesh/utils/__init__.py,sha256=W7ehA7NQ-hEJ3MaO34AtKMYLkj4gCd1Z954yPG80-W8,12186
219
+ sqlmesh/utils/aws.py,sha256=krxyhrKtsMJDEjT567UbGZogjJ9JRHkvAV-Cg3FVndM,1062
220
+ sqlmesh/utils/cache.py,sha256=4H6ioD3cKRbpvskPX0ctGcmy0XxyG-4rKk8aoQfksP4,4948
221
+ sqlmesh/utils/concurrency.py,sha256=EMgEecfPFN9_2Wjz4TUksJngECGse7fnKVcLswkmhAk,9274
222
+ sqlmesh/utils/config.py,sha256=-SjIn7Z0HHnMtjPavQIvFcSaeg86XLsGd3sGIwOKrTE,1941
223
+ sqlmesh/utils/connection_pool.py,sha256=pKiO3MLPM-EDAkKNDirLsVOTdmST9BnP15CTLVKAiQ0,12236
224
+ sqlmesh/utils/conversions.py,sha256=U1i9QRzcTc_rswt7N4KeAfeRM0MHEzDezNUD_A7BFJc,758
225
+ sqlmesh/utils/cron.py,sha256=eGwn4iUeiRoQzwcd9eS2TZkut8nR4yWud77N7xQ9CQ0,1829
226
+ sqlmesh/utils/dag.py,sha256=5Sec50yY-UBEpLU82_nzaL7Wlalwf7K8EvLL8sBs2Z8,9049
227
+ sqlmesh/utils/date.py,sha256=m0NHAqSQYqZnvuNHVk9RNEktiE_LbyqcO_O0SVxcGrw,16460
228
+ sqlmesh/utils/errors.py,sha256=rktXVSd4R3tii7_k_pnex05ZXS7QnlFx1np1u-pjSSU,8000
229
+ sqlmesh/utils/git.py,sha256=v1MD4Zwn52UBn_tTfoKn8SAPJVGC6SEFrJ4WEJFbgF0,1868
230
+ sqlmesh/utils/hashing.py,sha256=nZRKvLNQ83tLG4IoXshVJZf-MbDrXC1HOeNw8Ji-tMM,578
231
+ sqlmesh/utils/jinja.py,sha256=474yuVZmS1pppBoEZqCJeugW9CQWniWBeuV4x6RGbEA,26380
232
+ sqlmesh/utils/lineage.py,sha256=zz9BPc6MShRy9LEXmAp02x6oKt4ubVNUPdapFVFKkac,16019
233
+ sqlmesh/utils/metaprogramming.py,sha256=6NQKi9PpYhgJEu0Wr_TztRZZ2Kog4Dic9syNqbvztMw,23727
234
+ sqlmesh/utils/migration.py,sha256=R7Ck6FX-LfcujGy7sgS0kDWlK-xAEBODr3gqIQ8gC08,835
235
+ sqlmesh/utils/pandas.py,sha256=FytTSLcRNtO0-YMvpoDBkkut3yoQJR9mBSKpif8lxug,2497
236
+ sqlmesh/utils/process.py,sha256=vpXcpJ1eIbivs7gZdwTKSJI7OS6kKBebnaBzz75ykvs,2428
237
+ sqlmesh/utils/pydantic.py,sha256=-yppkVlw6iSBaSiKjbe7OChxL-u3urOS4-KCjJEgsRU,12095
238
+ sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
239
+ sqlmesh/utils/windows.py,sha256=0F9RdpuuCoG5NiEDXvWlAGCiJ-59OjSAmgFF5wW05aY,1133
240
+ sqlmesh/utils/yaml.py,sha256=KFBd7hsKNRTtRudGR7d410qUYffQv0EWRcDM8hVNNZg,3025
241
+ sqlmesh-0.227.2.dev4.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
242
+ sqlmesh_dbt/__init__.py,sha256=awYS5y5mz-1NUmx6i5h5NSTJ7tidRl9NC0FAnFWSF6U,350
243
+ sqlmesh_dbt/cli.py,sha256=p9foHjAW9ni7BTOJ2loynk47M0Sf43QIJZRggOzF5tc,6351
244
+ sqlmesh_dbt/console.py,sha256=RwWLYnEZHzn9Xp-e2gbZvkdKbWbBLN146geI84mJitg,1132
245
+ sqlmesh_dbt/error.py,sha256=1sPNU6Dik30DR9WTCvGp3ED-pzNmAA3LhP95BXb3ndI,1146
246
+ sqlmesh_dbt/operations.py,sha256=-9yM-czQpaA-U42kad5a5OJXIAh63FiIBtuP_672AF0,14331
247
+ sqlmesh_dbt/options.py,sha256=noB_qK4uGGi7Erqk1XkkMaFz5aUc6lp44wwn1Nv_LI4,737
248
+ sqlmesh_dbt/selectors.py,sha256=nmVrFsC7CR2A24FdGTp5Wz7MuWreI-xLQTpOTy0H9K4,6543
249
+ web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
+ web/client/dist/index.html,sha256=uvlsBsDd2ZJXvZ-s3nQMN9lRlXyVxxr0Ti7NyS59Bmg,5472
251
+ web/client/dist/assets/Audits-CBiYyyx-.js,sha256=WG2GKAAqGBViY8VGuaH5A5Q4_RM7L-dNiwaUvinb6ws,1041
252
+ web/client/dist/assets/Banner-DSRbUlO5.js,sha256=b5f3TW7_6uc2MthO9xD_e-CDqoWGK6LTPnu66rRrREs,1549
253
+ web/client/dist/assets/ChevronDownIcon-MK_nrjD_.js,sha256=oYQSrHgqozKBUIUt3GrGxn4fr0JKNI-als0Rw7tSOaE,553
254
+ web/client/dist/assets/ChevronRightIcon-CLWtT22Q.js,sha256=7DKdQ3OYlBPxKVRpbLLyc4nZQaXJJlFSYyq-M8Hf9zE,553
255
+ web/client/dist/assets/Content-BNuGZN5l.js,sha256=kORec_l3FiQC-O-ymDF-Z87g7B2OQhM8fl9gtC9N630,803
256
+ web/client/dist/assets/Content-CSHJyW0n.js,sha256=_mtY-uMeiB9ihnhk__TxjOUrB_6MjiK9_6NMLpYVlkM,37525
257
+ web/client/dist/assets/Data-C1oRDbLx.js,sha256=OJdBPAktwM9BvixwJGCfQdUsSYFcZVKWdMECxvmJT9g,983
258
+ web/client/dist/assets/DataCatalog-HXyX2-_j.js,sha256=j-3WQ_Xf6ojPUTmRkBJs8VJuhiQUosGXc4Ahxn2bPWA,122486
259
+ web/client/dist/assets/Editor-BDyfpUuw.js,sha256=QyHR-2FbGu5HlBu3c2Yagt-YZGMgMqgGm-2mEOWW564,43613
260
+ web/client/dist/assets/Editor-D0jNItwC.js,sha256=_zKxxfLwFkbes-fwbnx-emqm2We-hDZpqVY61Lf7huo,1490
261
+ web/client/dist/assets/Errors-BfuFLcPi.js,sha256=MEGMk7HrhH_iJtBJtYj17XD_T6MoCj6vinl_K-YATO4,1361
262
+ web/client/dist/assets/FileExplorer-BR9IE3he.js,sha256=mkiHlW29RB1xh9Su29eRr27sGQqNvgcJqjqpUX1j3V4,87619
263
+ web/client/dist/assets/Footer-CgBEtiAh.js,sha256=aPfW3dcRATuSeB_qRFBpaJPwWPobTaH8xmINMgQyLig,700
264
+ web/client/dist/assets/Header-DSqR6nSO.js,sha256=SABr8Tb9PqStaicAw3lAhrU3iFWIw2E7pAicTzQN4I0,11424
265
+ web/client/dist/assets/Input-B-oZ6fGO.js,sha256=SSBnBfMgKvW2j4ZkhZ1wsisUKFnAXOghkJNjoZlYI_M,54814
266
+ web/client/dist/assets/Lineage-DYQVwDbD.js,sha256=Ep67VnoZZ1rKLxMZ-YC_LsAcU7jxoWSr1JlKWWVYsx8,1002
267
+ web/client/dist/assets/ListboxShow-BE5-xevs.js,sha256=yL1HP-bv3DLFtxt5TowlQT-FKHj8k_h0JY4CJhZ5CYc,30373
268
+ web/client/dist/assets/ModelLineage-DkIFAYo4.js,sha256=FSlvyWNMQGJmxU6oKzP8pr0V3F9Iz2j25W6byknutkY,15546
269
+ web/client/dist/assets/Models-D5dWr8RB.js,sha256=dbsbUyDRhskkPXdmvxZV1tkcGK6IqvWmI2eWbXLDtUs,2194
270
+ web/client/dist/assets/Page-C-XfU5BR.js,sha256=RluPjUbstnqO7b5qCzieci5xeQLuPTIJ8pAMVr3tWwM,589
271
+ web/client/dist/assets/Plan-ZEuTINBq.js,sha256=9QUn3A8pIMrl3ch6tj89OLkT0YQsQ4u-wK3jOIAcL-M,666
272
+ web/client/dist/assets/PlusCircleIcon-DVXAHG8_.js,sha256=hSgxtI5M9SSF1vQONVJvoqnI2ZxWpZ7cauofK3LdUaE,11698
273
+ web/client/dist/assets/ReportErrors-B7FEPzMB.js,sha256=n_d43_v9zTtbi7v4sACZPju-9jCEgfPyxrtbpWtIt14,5419
274
+ web/client/dist/assets/Root-8aZyhPxF.js,sha256=VcTH_bqBuOTQMZ_e-gkvemoqpmx5KhUC_3ccJmu08l8,42195
275
+ web/client/dist/assets/SearchList-W_iT2G82.js,sha256=c_tJs-x_bPbfyLObguMlfhMkqXsHufsAiuahp2AXlyk,291947
276
+ web/client/dist/assets/SelectEnvironment-C65jALmO.js,sha256=vYo0lwD2CPC7P_QHbbnO-FFt4aIP7d7CkpDK5dkCSAM,37637
277
+ web/client/dist/assets/SourceList-DSLO6nVJ.js,sha256=eX1jz2htwOloCkeXa409P5Ydqr7D6EfNKwT5y7Zjbyo,3205
278
+ web/client/dist/assets/SourceListItem-BHt8d9-I.js,sha256=zbnv979uDoL2oEyiyo9up9f6Bd6eq53qB_fX3SVW0z4,1106
279
+ web/client/dist/assets/SplitPane-CViaZmw6.js,sha256=k_cYeeojOEBhFwy2JdaUtpGrmQsh5NyK8ZP5jv_Pq1Q,10439
280
+ web/client/dist/assets/Tests-DhaVt5t1.js,sha256=D83E4tiN_5OViHAtByJDRWJ9l69dqO5NtgfKNyO8hI4,1014
281
+ web/client/dist/assets/Welcome-DvpjH-_4.js,sha256=azB61YeQZWba-i-A2MBXXtrR-9tdq6P6FjHNqTt6JeU,354
282
+ web/client/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js,sha256=WQq4BXvAMsPhT58adqrv_QHaYJQT-xKIiBnKBDPB-uk,239
283
+ web/client/dist/assets/context-BctCsyGb.js,sha256=_smwSqt3RXQ6nQZh1uLL76alM9EM0zwDaRuE6myDpio,2219697
284
+ web/client/dist/assets/context-DFNeGsFF.js,sha256=CdRcgW6E-NbsQycc2mnwIXkY58-wMAArQJ5bjs_ZkdQ,4517
285
+ web/client/dist/assets/editor-CcO28cqd.js,sha256=G7pxu0Yv0IWpBtyzn8jsM_N2MMKDAqnnGCpKs95ZIr0,7858
286
+ web/client/dist/assets/file-CvJN3aZO.js,sha256=Nuli9PH2TjjjuI6juel4d_CJP_Ja8X8FDtWQPD5RQHg,2349
287
+ web/client/dist/assets/floating-ui.react-dom-CjE-JNW1.js,sha256=ZgmHRZNgoPktuvQmNEfwsjaNBO_8mY9NTgIhhPYPwws,22390
288
+ web/client/dist/assets/help-B59vE3aE.js,sha256=Vy4k2eAY_7je9db4t0OcYbo7g7QHgngXM2Za7baFBgg,447
289
+ web/client/dist/assets/help-DuPhjipa.js,sha256=K7rKRDiClsrU9REfJGDhFwJ_mhfNIvljCDtQP2gSPwQ,57842
290
+ web/client/dist/assets/index-C-dJH7yZ.js,sha256=h0wEkFFntT4gFVUkpzTz4X3KL240h5SG5y-Mcrc9AvQ,13375
291
+ web/client/dist/assets/index-Dj0i1-CA.js,sha256=5MEz1KHh-whwDviBNgegm2OALf4gJBiwtYWlqWXErFo,529471
292
+ web/client/dist/assets/plan-BTRSbjKn.js,sha256=cAloC2mQjmKUq4pAEOwoKwU5JJtZ345o_bkwXAtZ8Y8,13754
293
+ web/client/dist/assets/popover-_Sf0yvOI.js,sha256=qZ-0ULq7pWC-e6MADcq5EnIckJELNQg7XOMmnrHIOG0,68210
294
+ web/client/dist/assets/project-BvSOI8MY.js,sha256=pVhQy5GZwmkmDSGC7BRHaLaP1XQi3KqFp2FfI5QFT7M,3338
295
+ web/client/dist/css/base.css,sha256=JApDmQihY7DRy5Bd30uYMm5NdMKm0QsEOMBsOuK7gyU,9048
296
+ web/client/dist/css/design.css,sha256=9VTHN-aYFVW6I53jUWbV8qaqo87tXyZTYSWFLC_sRQY,17057
297
+ web/client/dist/favicons/favicon.svg,sha256=ZPNT00J77RHUj6Nlh6Z4Puxnp_oq9RSqACjomhDRUXE,1586
298
+ "web/client/dist/fonts/Inter/Inter-VariableFont_slnt,wght.ttf",sha256=uajl4hOXdmW-KlbbZpRaFsaG2j2YYa8eeFEyLPFUleo,803384
299
+ web/client/dist/fonts/Inter/OFL.txt,sha256=kYc6uZ5stgb2KiIpY6iAe2nnQlNVI9tSkYjYnRUkwnI,4469
300
+ web/client/dist/fonts/Inter/README.txt,sha256=0uNYDDCqgV9SsIERyyfl2WBgDZresI5OKdXTpIXsZZ4,2254
301
+ web/client/dist/fonts/Inter/static/Inter-Black.ttf,sha256=OvsrBWVHWXu3kXv3VL1C8-u_SzJWCQLlVrFvG25mt1g,316372
302
+ web/client/dist/fonts/Inter/static/Inter-Bold.ttf,sha256=eQwQi-_oWdrC3b0grz-7aRfGAbPVRMigV2FRnztVCP4,316100
303
+ web/client/dist/fonts/Inter/static/Inter-ExtraBold.ttf,sha256=TiRzuf51wGjj87m6IyXGLanRvnQo2zCP2F3zC1Al4UU,316716
304
+ web/client/dist/fonts/Inter/static/Inter-ExtraLight.ttf,sha256=7bpb4PE5zl9D2KRIanZmiBILrDV2QbhMYdFkAD8xUn0,310808
305
+ web/client/dist/fonts/Inter/static/Inter-Light.ttf,sha256=xE_3pf3kgW-U_B5eIysCGoEqQRM53dCLCkdcpuIduBA,310420
306
+ web/client/dist/fonts/Inter/static/Inter-Medium.ttf,sha256=ENSDMfWzxzYso1ewDBesSGOtNRmbE7Ds6wliyMGtfck,314712
307
+ web/client/dist/fonts/Inter/static/Inter-Regular.ttf,sha256=QasPcHor-rgTPM382rUigvX3nldR9DomSAVFHHu5X7g,309828
308
+ web/client/dist/fonts/Inter/static/Inter-SemiBold.ttf,sha256=6MvCuIvEJoI3_14lF3bTxU7csU4BWp5m5Ig73ktV8T8,315756
309
+ web/client/dist/fonts/Inter/static/Inter-Thin.ttf,sha256=t3ilK4Tzm6HTsIVTokZkNXOzNFO1SBtNCcYEvMztkw0,310516
310
+ web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf,sha256=0qFWPomqPDgWq_vKA-KVq83KEdnL1omndUzBxfRU0Y8,191988
311
+ web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf,sha256=tkkOGpAuVvyEBQvumq2RUJ5vRaoA-W-ILatTyauvg-s,187860
312
+ web/client/dist/fonts/JetBrains_Mono/OFL.txt,sha256=FmF9WCW65YmLH3jkR70S_NxGhu_lEEHQanxKEqSxOUQ,4491
313
+ web/client/dist/fonts/JetBrains_Mono/README.txt,sha256=FFHJxfOcWo4OoMADwpEtps7shQ8yxFz3nFaRaJT1x5I,2693
314
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf,sha256=s4nts_yTQ7iju8mg65uygpf5iyTh8oNB6RTnaAEF6cM,114832
315
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf,sha256=9wON5lEk3LSMXXwPvEY2RggV5LI4AcedWROIj-Vg9QQ,117928
316
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf,sha256=zdcfPqhR1d_fpnNqrCO_1lsmE3WoWUWo79CVNaxQo2I,114804
317
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf,sha256=qvQU9qxmxa7rlpYs5cieiGAE8lOMMfjrR3uXT9aLyyY,117960
318
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf,sha256=VOvayPv9GAuikXPC8waVcRZWfru4pW7R3srh9lfnTj4,115076
319
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf,sha256=JWu5dACkrhdn3iyJd7SA3TEeSCh02mGswNPowpsbAM8,118236
320
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf,sha256=V-Hi5HFZRC39pRFpS2sw6rpMzos4i_TRI1Q4kj2BBlI,117948
321
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf,sha256=J3ri2WVI2RrQtq3GcHPP_0m4w1rELmWgf-z4Vil0MqY,115024
322
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf,sha256=X1Bwcb9G-R5sPL_P0EgbO08Xv-5qrBQQRvv1-6i2J5I,118132
323
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf,sha256=g49gwa9Hba8PO77WFDhAx42UfOl_V-gmyg2FDhDG9Gg,114924
324
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf,sha256=9t0NYmX6of0baD3WTst664u32iMhLQCdO5tCflsuiTs,118052
325
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf,sha256=kognlxsMKoiTWBeyrOpbKcETL7dqodFi1PBzRIKHLeA,114908
326
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf,sha256=RzD9318m3e4kxI9zbnEcNLLeMtwk7Mx_v76_ex7g4lk,114904
327
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf,sha256=EUomsX3Ym4nh0p3PMrSAv9HmDHWvqJFRce4wCzNB5go,118040
328
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf,sha256=r10Kl3Hy78_yC_-6_697Lv8H0JjGTU4ob6Eas7gECrk,115000
329
+ web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf,sha256=voTGY7Sqew-eJ1BXQBO4rDVBhVBYJ-7IA2_0WGawjJs,118164
330
+ web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.otf,sha256=5BeJf43ID1ga_iZkeJej9FRSPgF3lRZWtV9aP5hG8bQ,380996
331
+ web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.woff2,sha256=p30_Y0Gmv7bHOjtCqGMTW2tUdafmldEBiQPTbdWLPlM,44660
332
+ web/client/dist/fonts/Sohne/sohne-buch-kursiv.otf,sha256=2iLhMX4fb2uVOUtPDUhtW9vGnX-217t6XQO4VeMG2l0,207016
333
+ web/client/dist/fonts/Sohne/sohne-buch-kursiv.woff2,sha256=KYCEqBgItjLlMwzIwv4YEpfe0txZwseZg0Uh4P0IRsg,34273
334
+ web/client/dist/fonts/Sohne/sohne-buch.otf,sha256=3_rwTxn22zZRdDQOZR1QF0tFn7qPDon3DGIQaXpF5ik,191552
335
+ web/client/dist/fonts/Sohne/sohne-buch.woff2,sha256=rnatJKovncrimgyPTNrKYG0B9mvNPKDXaqBejLEVbhM,33115
336
+ web/client/dist/fonts/Sohne/sohne-kraftig.otf,sha256=9mQB7BqhvVXwJcnDnVAXI5PnPtbfRdC-eqQhSAbWixE,186004
337
+ web/client/dist/fonts/Sohne/sohne-kraftig.woff2,sha256=ilbk_DuzBwKoTx9fkT8UYds6Me2Ny_8_ECd1g_IKN28,31911
338
+ web/client/dist/fonts/Sohne/sohne-mono-buch.otf,sha256=vtmK-btEkjTBZbmEOkrpaFeYjtz9WwshVHVOoNR2hpE,73232
339
+ web/client/dist/fonts/Sohne/sohne-mono-buch.woff2,sha256=6yxff8Gx3Ao29l6g2W-W5k-HFgyEFokNFdde_Q2SR-k,25795
340
+ web/client/dist/fonts/Sohne/sohne-mono-kraftig.otf,sha256=cqHc9TTH04lnJyxN_hgKTgpcZ7rB1XQRB-ylpNa6Xjg,75272
341
+ web/client/dist/fonts/Sohne/sohne-mono-kraftig.woff2,sha256=DGsWMljiFHztzyb0Gg_TpiDq1_mCniAz6k__qSsjU4E,25703
342
+ web/client/src/workers/sqlglot/sqlglot.py,sha256=XAMrvqcRBa7vy8bHVayYbZNyWsf1lNSjVk_odtif-YY,1566
343
+ web/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
344
+ web/server/app.py,sha256=b6qEJ4btjaSm2kWwQUGV--S3VE8QW0Um7f4rBdaoB_M,59
345
+ web/server/console.py,sha256=s9caTcfLd-0Zhj6cQgkJBYxsl9w_ZDNv3gN6MaBNj0o,14806
346
+ web/server/exceptions.py,sha256=I2PPpChwhDWawQENr5kHg6DjyRGeiJ6OWZsCzEZhVzs,1533
347
+ web/server/main.py,sha256=9PaDa8sigo1z0AxtI3sQ3fHmDqs6uXwP-_IvoMwkznw,3199
348
+ web/server/models.py,sha256=SfuknVLSRzAAiTzUQgGyQbF5aZBt8yZg-sBnQ_8lWJQ,16552
349
+ web/server/openapi.py,sha256=NOg__YQg7arVdajQv5CvOA5KLTQCfGZFvwnjARuM6iE,586
350
+ web/server/settings.py,sha256=_W50-Holci5Zv8goK7qATLRD1_Fcx-75gcNTVjdGDOc,3770
351
+ web/server/utils.py,sha256=bb6AOM3Nga-zihPjZvJeDL6sHqTPNC_SYjklsy8tAQA,4013
352
+ web/server/watcher.py,sha256=2c08EfXkgAfqpAEoFidkYjGH48DkLDyMueVp4afICHM,5334
353
+ web/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
+ web/server/api/endpoints/__init__.py,sha256=FcXl56-kPqbKgCZKOx0kjE50hn37q1m-nwOCxI9tRcc,932
355
+ web/server/api/endpoints/commands.py,sha256=Fj7FUxOuageasij_7-dVvOlJMsBnRmFBWYk_-t91UQI,8242
356
+ web/server/api/endpoints/directories.py,sha256=Aa8U4pTs3Saj5DnJ9TDnX9mZois-EXgpcBm5GpNNM_s,1822
357
+ web/server/api/endpoints/environments.py,sha256=g3YC6j4LLlG_wjJqn-Hrz78BWmgS7vhUhzaycsiez00,2124
358
+ web/server/api/endpoints/events.py,sha256=tjhOhGe9jt7L1mOLLapl5qTvicDRnP5lPZHSq9OnSVI,932
359
+ web/server/api/endpoints/files.py,sha256=Rr0YS9Nz9vLH9KvGAfxbMlxN8j1XxU9CViFvlKoP2YQ,6747
360
+ web/server/api/endpoints/lineage.py,sha256=XU99RI-6Q9SidItGM5WLQMje8NhM5nZWHbtWxDwWeFE,6050
361
+ web/server/api/endpoints/meta.py,sha256=QKWWrHewGh5JS8mCSWXTKCIQwXw-TQfaT9tWt_SsNY4,1032
362
+ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWfzI0kI,4742
363
+ web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
364
+ web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
365
+ web/server/api/endpoints/table_diff.py,sha256=8XTwgOh6QBbNy_hTM1JuHgRjbnie-pGPrphiW-FNLjQ,6058
366
+ sqlmesh-0.227.2.dev4.dist-info/METADATA,sha256=Sq4pjA48cpW-ztO2jlUxLW2k13OXIRfqdnsMUJRnSl8,26685
367
+ sqlmesh-0.227.2.dev4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
368
+ sqlmesh-0.227.2.dev4.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
369
+ sqlmesh-0.227.2.dev4.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
370
+ sqlmesh-0.227.2.dev4.dist-info/RECORD,,