sqlmesh 0.212.1.dev3__tar.gz → 0.212.1.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1348) hide show
  1. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/PKG-INFO +1 -1
  2. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/_version.py +3 -3
  3. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/audit/definition.py +32 -16
  4. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/context_diff.py +3 -6
  5. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/common.py +63 -6
  6. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/definition.py +139 -75
  7. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/node.py +34 -10
  8. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/categorizer.py +6 -5
  9. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/definition.py +15 -0
  10. sqlmesh-0.212.1.dev4/sqlmesh/migrations/v0093_use_raw_sql_in_fingerprint.py +5 -0
  11. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/PKG-INFO +1 -1
  12. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/SOURCES.txt +1 -0
  13. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/state_sync/test_export_import.py +2 -2
  14. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_audit.py +4 -0
  15. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_context.py +5 -1
  16. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_integration.py +87 -22
  17. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_model.py +56 -13
  18. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_selector.py +9 -2
  19. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_snapshot.py +13 -11
  20. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_snapshot_evaluator.py +3 -0
  21. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_table_diff.py +9 -2
  22. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_test.py +9 -2
  23. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/test_integration.py +39 -18
  24. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/config.yml +0 -0
  25. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/continue_config.yml +0 -0
  26. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/install-prerequisites.sh +0 -0
  27. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/manage-test-db.sh +0 -0
  28. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/test_migration.sh +0 -0
  29. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/update-pypirc.sh +0 -0
  30. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.circleci/wait-for-db.sh +0 -0
  31. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.claude/agents/code-reviewer.md +0 -0
  32. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.claude/agents/developer.md +0 -0
  33. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.claude/agents/qa-reviewer.md +0 -0
  34. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.claude/agents/technical-writer.md +0 -0
  35. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/dependabot.yml +0 -0
  36. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/scripts/get_scm_version.py +0 -0
  37. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/workflows/pr.yaml +0 -0
  38. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/workflows/private-repo-test.yaml +0 -0
  39. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/workflows/release_extension.yaml +0 -0
  40. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.github/workflows/release_shared_js.yaml +0 -0
  41. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.gitignore +0 -0
  42. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.nvmrc +0 -0
  43. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.pre-commit-config.yaml +0 -0
  44. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.prettierignore +0 -0
  45. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.prettierrc.cjs +0 -0
  46. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/.readthedocs.yaml +0 -0
  47. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/CLAUDE.md +0 -0
  48. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/LICENSE +0 -0
  49. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/MANIFEST.in +0 -0
  50. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/Makefile +0 -0
  51. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/README.md +0 -0
  52. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/benchmarks/lsp_render_model_bench.py +0 -0
  53. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/__init__.py +0 -0
  54. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/custom_materializations/custom_materializations/__init__.py +0 -0
  55. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/custom_materializations/custom_materializations/custom_kind.py +0 -0
  56. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/custom_materializations/custom_materializations/full.py +0 -0
  57. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/custom_materializations/pyproject.toml +0 -0
  58. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/audits/.gitkeep +0 -0
  59. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/audits/assert_positive_order_ids.sql +0 -0
  60. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/config.yaml +0 -0
  61. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/constants.py +0 -0
  62. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/data/.keep +0 -0
  63. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/macros/.gitkeep +0 -0
  64. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/macros/__init__.py +0 -0
  65. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/.gitkeep +0 -0
  66. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/full_model.sql +0 -0
  67. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/ibis_full_model_python.py +0 -0
  68. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/ibis_full_model_sql.py +0 -0
  69. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/incremental_model.sql +0 -0
  70. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/models/seed_model.sql +0 -0
  71. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/seeds/.gitkeep +0 -0
  72. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/seeds/seed_data.csv +0 -0
  73. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/ibis/tests/.gitkeep +0 -0
  74. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/.vscode/settings.json +0 -0
  75. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/audits/.gitkeep +0 -0
  76. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/config.yaml +0 -0
  77. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/linter/__init__.py +0 -0
  78. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/linter/user.py +0 -0
  79. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/macros/.gitkeep +0 -0
  80. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/macros/__init__.py +0 -0
  81. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/models/.gitkeep +0 -0
  82. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/models/a.sql +0 -0
  83. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/models/b.sql +0 -0
  84. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_1/tests/.gitkeep +0 -0
  85. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/audits/.gitkeep +0 -0
  86. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/config.yaml +0 -0
  87. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/macros/.gitkeep +0 -0
  88. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/macros/__init__.py +0 -0
  89. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/models/.gitkeep +0 -0
  90. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/models/c.sql +0 -0
  91. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/models/d.sql +0 -0
  92. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/models/e.sql +0 -0
  93. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi/repo_2/tests/.gitkeep +0 -0
  94. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/bronze/config.py +0 -0
  95. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/bronze/dbt_project.yml +0 -0
  96. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/bronze/models/a.sql +0 -0
  97. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/bronze/models/b.sql +0 -0
  98. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/bronze/profiles.yml +0 -0
  99. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/config.py +0 -0
  100. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/dbt_project.yml +0 -0
  101. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/macros/store_schemas.sql +0 -0
  102. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/models/c.sql +0 -0
  103. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/models/d.sql +0 -0
  104. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/models/schema.yml +0 -0
  105. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_dbt/silver/profiles.yml +0 -0
  106. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/config.py +0 -0
  107. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/dbt_project.yml +0 -0
  108. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/macros/round_dollars.sql +0 -0
  109. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/models/c.sql +0 -0
  110. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/models/d.sql +0 -0
  111. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/models/e.sql +0 -0
  112. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/models/schema.yml +0 -0
  113. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/dbt_repo/profiles.yml +0 -0
  114. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/sqlmesh_repo/config.yaml +0 -0
  115. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/sqlmesh_repo/models/a.sql +0 -0
  116. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/multi_hybrid/sqlmesh_repo/models/b.sql +0 -0
  117. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/__init__.py +0 -0
  118. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/audits/assert_item_price_above_zero.sql +0 -0
  119. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/audits/items.sql +0 -0
  120. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/audits/order_items.sql +0 -0
  121. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/audits/raw_demographics.sql +0 -0
  122. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/config.py +0 -0
  123. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/data/.keep +0 -0
  124. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/external_models/model1/model1.yaml +0 -0
  125. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/external_models/model2/model2.yaml +0 -0
  126. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/external_models/prod.yaml +0 -0
  127. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/external_models.yaml +0 -0
  128. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/helper.py +0 -0
  129. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/linter/__init__.py +0 -0
  130. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/linter/user.py +0 -0
  131. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/macros/__init__.py +0 -0
  132. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/macros/macros.py +0 -0
  133. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/macros/macros.sql +0 -0
  134. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/macros/utils.py +0 -0
  135. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/metrics/metrics.sql +0 -0
  136. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/active_customers.sql +0 -0
  137. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/blueprint.sql +0 -0
  138. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/customer_revenue_by_day.sql +0 -0
  139. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/customer_revenue_lifetime.sql +0 -0
  140. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/customers.sql +0 -0
  141. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/disabled.py +0 -0
  142. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/disabled.sql +0 -0
  143. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/items.py +0 -0
  144. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/latest_order.sql +0 -0
  145. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/marketing.sql +0 -0
  146. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/order_items.py +0 -0
  147. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/orders.py +0 -0
  148. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/raw_marketing.py +0 -0
  149. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/top_waiters.sql +0 -0
  150. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/waiter_as_customer_by_day.sql +0 -0
  151. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/waiter_names.sql +0 -0
  152. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/waiter_revenue_by_day.sql +0 -0
  153. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/models/waiters.py +0 -0
  154. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/seeds/waiter_names.csv +0 -0
  155. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/signals/__init__.py +0 -0
  156. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/sqlmesh-requirements.lock +0 -0
  157. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/tests/test_customer_revenue_by_day.yaml +0 -0
  158. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/tests/test_customer_revenue_lifetime.yaml +0 -0
  159. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi/tests/test_order_items.yaml +0 -0
  160. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/.gitignore +0 -0
  161. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/.user.yml +0 -0
  162. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/__init__.py +0 -0
  163. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/analyses/.gitkeep +0 -0
  164. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/config.py +0 -0
  165. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/dbt_project.yml +0 -0
  166. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/macros/incremental.sql +0 -0
  167. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/macros/log_value.sql +0 -0
  168. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/customer_revenue_by_day.sql +0 -0
  169. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/customers.sql +0 -0
  170. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/schema.yml +0 -0
  171. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/top_waiters.sql +0 -0
  172. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/waiter_as_customer_by_day.sql +0 -0
  173. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/waiter_revenue_by_day.sql +0 -0
  174. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/waiter_revenue_by_day_v1.sql +0 -0
  175. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/models/waiters.sql +0 -0
  176. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/analyses/.gitkeep +0 -0
  177. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/dbt_project.yml +0 -0
  178. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/macros/current_engine.sql +0 -0
  179. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/macros/distinct.sql +0 -0
  180. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/models/schema.yml +0 -0
  181. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/seeds/.gitkeep +0 -0
  182. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/snapshots/.gitkeep +0 -0
  183. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/packages/customers/tests/.gitkeep +0 -0
  184. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/profiles.yml +0 -0
  185. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/seeds/items.csv +0 -0
  186. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/seeds/order_items.csv +0 -0
  187. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/seeds/orders.csv +0 -0
  188. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/seeds/properties.yml +0 -0
  189. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/seeds/waiter_names.csv +0 -0
  190. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/snapshots/.gitkeep +0 -0
  191. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/tests/.gitkeep +0 -0
  192. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/tests/assert_item_price_above_zero.sql +0 -0
  193. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/tests/generic/greater_than_amount.sql +0 -0
  194. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dbt/tests/generic/less_than_amount.sql +0 -0
  195. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/sushi_dlt/sushi_pipeline.py +0 -0
  196. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/__init__.py +0 -0
  197. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/audits/db/order_f.sql +0 -0
  198. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/config.yaml +0 -0
  199. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/macros/__init__.py +0 -0
  200. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/macros/macros.py +0 -0
  201. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/__init__.py +0 -0
  202. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/db/customer_d.sql +0 -0
  203. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/db/item_d.sql +0 -0
  204. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/db/order_f.py +0 -0
  205. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/db/order_item_f.sql +0 -0
  206. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/src/__init__.py +0 -0
  207. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/src/customer_details.py +0 -0
  208. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/src/menu_item_details.sql +0 -0
  209. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/src/order_item_details.py +0 -0
  210. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/models/src/shared.py +0 -0
  211. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/seeds/src/menu_item_details.csv +0 -0
  212. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/tests/test_customer_d.yaml +0 -0
  213. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/examples/wursthall/tests/test_order_item_f.yaml +0 -0
  214. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/mkdocs.yml +0 -0
  215. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/package.json +0 -0
  216. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/pdoc/cli.py +0 -0
  217. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/pdoc/templates/module.html.jinja2 +0 -0
  218. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/pnpm-lock.yaml +0 -0
  219. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/pnpm-workspace.yaml +0 -0
  220. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/pyproject.toml +0 -0
  221. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/setup.cfg +0 -0
  222. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/.airflowignore +0 -0
  223. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/__init__.py +0 -0
  224. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cicd/__init__.py +0 -0
  225. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cicd/bot.py +0 -0
  226. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cicd/config.py +0 -0
  227. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cli/__init__.py +0 -0
  228. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cli/main.py +0 -0
  229. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cli/options.py +0 -0
  230. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/cli/project_init.py +0 -0
  231. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/__init__.py +0 -0
  232. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/_typing.py +0 -0
  233. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/analytics/__init__.py +0 -0
  234. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/analytics/collector.py +0 -0
  235. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/analytics/dispatcher.py +0 -0
  236. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/audit/__init__.py +0 -0
  237. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/audit/builtin.py +0 -0
  238. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/__init__.py +0 -0
  239. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/base.py +0 -0
  240. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/categorizer.py +0 -0
  241. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/common.py +0 -0
  242. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/connection.py +0 -0
  243. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/format.py +0 -0
  244. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/gateway.py +0 -0
  245. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/janitor.py +0 -0
  246. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/linter.py +0 -0
  247. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/loader.py +0 -0
  248. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/migration.py +0 -0
  249. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/model.py +0 -0
  250. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/naming.py +0 -0
  251. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/plan.py +0 -0
  252. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/root.py +0 -0
  253. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/run.py +0 -0
  254. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/scheduler.py +0 -0
  255. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/config/ui.py +0 -0
  256. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/console.py +0 -0
  257. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/constants.py +0 -0
  258. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/context.py +0 -0
  259. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/dialect.py +0 -0
  260. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/__init__.py +0 -0
  261. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/_typing.py +0 -0
  262. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/athena.py +0 -0
  263. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/base.py +0 -0
  264. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/base_postgres.py +0 -0
  265. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/bigquery.py +0 -0
  266. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/clickhouse.py +0 -0
  267. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/databricks.py +0 -0
  268. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/duckdb.py +0 -0
  269. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/fabric.py +0 -0
  270. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/mixins.py +0 -0
  271. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/mssql.py +0 -0
  272. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/mysql.py +0 -0
  273. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/postgres.py +0 -0
  274. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/redshift.py +0 -0
  275. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/risingwave.py +0 -0
  276. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/shared.py +0 -0
  277. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/snowflake.py +0 -0
  278. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/spark.py +0 -0
  279. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/engine_adapter/trino.py +0 -0
  280. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/environment.py +0 -0
  281. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/lineage.py +0 -0
  282. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/__init__.py +0 -0
  283. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/definition.py +0 -0
  284. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/helpers.py +0 -0
  285. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/rule.py +0 -0
  286. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/rules/__init__.py +0 -0
  287. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/linter/rules/builtin.py +0 -0
  288. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/loader.py +0 -0
  289. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/macros.py +0 -0
  290. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/metric/__init__.py +0 -0
  291. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/metric/definition.py +0 -0
  292. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/metric/rewriter.py +0 -0
  293. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/__init__.py +0 -0
  294. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/cache.py +0 -0
  295. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/decorator.py +0 -0
  296. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/kind.py +0 -0
  297. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/meta.py +0 -0
  298. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/schema.py +0 -0
  299. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/model/seed.py +0 -0
  300. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/notification_target.py +0 -0
  301. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/__init__.py +0 -0
  302. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/builder.py +0 -0
  303. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/common.py +0 -0
  304. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/definition.py +0 -0
  305. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/evaluator.py +0 -0
  306. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/explainer.py +0 -0
  307. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/plan/stages.py +0 -0
  308. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/reference.py +0 -0
  309. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/renderer.py +0 -0
  310. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/scheduler.py +0 -0
  311. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/schema_diff.py +0 -0
  312. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/schema_loader.py +0 -0
  313. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/selector.py +0 -0
  314. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/signal.py +0 -0
  315. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/__init__.py +0 -0
  316. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/cache.py +0 -0
  317. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/evaluator.py +0 -0
  318. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/snapshot/execution_tracker.py +0 -0
  319. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/__init__.py +0 -0
  320. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/base.py +0 -0
  321. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/cache.py +0 -0
  322. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/common.py +0 -0
  323. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/__init__.py +0 -0
  324. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/environment.py +0 -0
  325. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/facade.py +0 -0
  326. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/interval.py +0 -0
  327. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/migrator.py +0 -0
  328. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/snapshot.py +0 -0
  329. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/utils.py +0 -0
  330. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/db/version.py +0 -0
  331. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/state_sync/export_import.py +0 -0
  332. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/table_diff.py +0 -0
  333. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/__init__.py +0 -0
  334. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/context.py +0 -0
  335. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/definition.py +0 -0
  336. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/discovery.py +0 -0
  337. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/result.py +0 -0
  338. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/test/runner.py +0 -0
  339. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/core/user.py +0 -0
  340. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/__init__.py +0 -0
  341. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/adapter.py +0 -0
  342. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/basemodel.py +0 -0
  343. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/builtin.py +0 -0
  344. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/column.py +0 -0
  345. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/common.py +0 -0
  346. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/context.py +0 -0
  347. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/loader.py +0 -0
  348. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/manifest.py +0 -0
  349. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/model.py +0 -0
  350. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/package.py +0 -0
  351. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/profile.py +0 -0
  352. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/project.py +0 -0
  353. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/relation.py +0 -0
  354. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/seed.py +0 -0
  355. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/source.py +0 -0
  356. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/target.py +0 -0
  357. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/test.py +0 -0
  358. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/dbt/util.py +0 -0
  359. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/engines/__init__.py +0 -0
  360. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/engines/spark/__init__.py +0 -0
  361. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/engines/spark/db_api/__init__.py +0 -0
  362. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/engines/spark/db_api/errors.py +0 -0
  363. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/engines/spark/db_api/spark_session.py +0 -0
  364. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/__init__.py +0 -0
  365. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/dlt.py +0 -0
  366. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/github/__init__.py +0 -0
  367. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/github/cicd/__init__.py +0 -0
  368. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/github/cicd/command.py +0 -0
  369. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/github/cicd/config.py +0 -0
  370. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/github/cicd/controller.py +0 -0
  371. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/llm.py +0 -0
  372. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/integrations/slack.py +0 -0
  373. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/api.py +0 -0
  374. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/commands.py +0 -0
  375. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/completions.py +0 -0
  376. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/context.py +0 -0
  377. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/custom.py +0 -0
  378. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/errors.py +0 -0
  379. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/helpers.py +0 -0
  380. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/hints.py +0 -0
  381. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/main.py +0 -0
  382. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/reference.py +0 -0
  383. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/rename.py +0 -0
  384. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/tests_ranges.py +0 -0
  385. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/lsp/uri.py +0 -0
  386. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/magics.py +0 -0
  387. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/__init__.py +0 -0
  388. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0001_init.py +0 -0
  389. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0002_remove_identify.py +0 -0
  390. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0003_move_batch_size.py +0 -0
  391. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0004_environmnent_add_finalized_at.py +0 -0
  392. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0005_create_seed_table.py +0 -0
  393. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0006_change_seed_hash.py +0 -0
  394. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0007_env_table_info_to_kind.py +0 -0
  395. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0008_create_intervals_table.py +0 -0
  396. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0009_remove_pre_post_hooks.py +0 -0
  397. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0010_seed_hash_batch_size.py +0 -0
  398. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0011_add_model_kind_name.py +0 -0
  399. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0012_update_jinja_expressions.py +0 -0
  400. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0013_serde_using_model_dialects.py +0 -0
  401. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0014_fix_dev_intervals.py +0 -0
  402. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0015_environment_add_promoted_snapshot_ids.py +0 -0
  403. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0016_fix_windows_path.py +0 -0
  404. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0017_fix_windows_seed_path.py +0 -0
  405. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0018_rename_snapshot_model_to_node.py +0 -0
  406. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0019_add_env_suffix_target.py +0 -0
  407. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0020_remove_redundant_attributes_from_dbt_models.py +0 -0
  408. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0021_fix_table_properties.py +0 -0
  409. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0022_move_project_to_model.py +0 -0
  410. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0023_fix_added_models_with_forward_only_parents.py +0 -0
  411. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0024_replace_model_kind_name_enum_with_value.py +0 -0
  412. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0025_fix_intervals_and_missing_change_category.py +0 -0
  413. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0026_remove_dialect_from_seed.py +0 -0
  414. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0027_minute_interval_to_five.py +0 -0
  415. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0028_add_plan_dags_table.py +0 -0
  416. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0029_generate_schema_types_using_dialect.py +0 -0
  417. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0030_update_unrestorable_snapshots.py +0 -0
  418. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0031_remove_dbt_target_fields.py +0 -0
  419. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0032_add_sqlmesh_version.py +0 -0
  420. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0033_mysql_fix_blob_text_type.py +0 -0
  421. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0034_add_default_catalog.py +0 -0
  422. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0035_add_catalog_name_override.py +0 -0
  423. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0036_delete_plan_dags_bug_fix.py +0 -0
  424. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0037_remove_dbt_is_incremental_macro.py +0 -0
  425. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0038_add_expiration_ts_to_snapshot.py +0 -0
  426. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0039_include_environment_in_plan_dag_spec.py +0 -0
  427. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0040_add_previous_finalized_snapshots.py +0 -0
  428. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0041_remove_hash_raw_query_attribute.py +0 -0
  429. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0042_trim_indirect_versions.py +0 -0
  430. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0043_fix_remove_obsolete_attributes_in_plan_dags.py +0 -0
  431. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0044_quote_identifiers_in_model_attributes.py +0 -0
  432. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0045_move_gateway_variable.py +0 -0
  433. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0046_add_batch_concurrency.py +0 -0
  434. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0047_change_scd_string_to_column.py +0 -0
  435. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0048_drop_indirect_versions.py +0 -0
  436. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0049_replace_identifier_with_version_in_seeds_table.py +0 -0
  437. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0050_drop_seeds_table.py +0 -0
  438. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0051_rename_column_descriptions.py +0 -0
  439. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0052_add_normalize_name_in_environment_naming_info.py +0 -0
  440. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0053_custom_model_kind_extra_attributes.py +0 -0
  441. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0054_fix_trailing_comments.py +0 -0
  442. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0055_add_updated_ts_unpaused_ts_ttl_ms_unrestorable_to_snapshot.py +0 -0
  443. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0056_restore_table_indexes.py +0 -0
  444. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0057_add_table_format.py +0 -0
  445. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0058_add_requirements.py +0 -0
  446. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0059_add_physical_version.py +0 -0
  447. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0060_move_audits_to_model.py +0 -0
  448. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0061_mysql_fix_blob_text_type.py +0 -0
  449. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0062_add_model_gateway.py +0 -0
  450. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0063_change_signals.py +0 -0
  451. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0064_join_when_matched_strings.py +0 -0
  452. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0065_add_model_optimize.py +0 -0
  453. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0066_add_auto_restatements.py +0 -0
  454. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0067_add_tsql_date_full_precision.py +0 -0
  455. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0068_include_unrendered_query_in_metadata_hash.py +0 -0
  456. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0069_update_dev_table_suffix.py +0 -0
  457. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0070_include_grains_in_metadata_hash.py +0 -0
  458. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0071_add_dev_version_to_intervals.py +0 -0
  459. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0072_add_environment_statements.py +0 -0
  460. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0073_remove_symbolic_disable_restatement.py +0 -0
  461. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0074_add_partition_by_time_column_property.py +0 -0
  462. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0075_remove_validate_query.py +0 -0
  463. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0076_add_cron_tz.py +0 -0
  464. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0077_fix_column_type_hash_calculation.py +0 -0
  465. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0078_warn_if_non_migratable_python_env.py +0 -0
  466. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0079_add_gateway_managed_property.py +0 -0
  467. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0080_add_batch_size_to_scd_type_2_models.py +0 -0
  468. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0081_update_partitioned_by.py +0 -0
  469. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py +0 -0
  470. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py +0 -0
  471. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0084_normalize_quote_when_matched_and_merge_filter.py +0 -0
  472. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0085_deterministic_repr.py +0 -0
  473. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0086_check_deterministic_bug.py +0 -0
  474. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0087_normalize_blueprint_variables.py +0 -0
  475. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0088_warn_about_variable_python_env_diffs.py +0 -0
  476. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0089_add_virtual_environment_mode.py +0 -0
  477. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0090_add_forward_only_column.py +0 -0
  478. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0091_on_additive_change.py +0 -0
  479. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/migrations/v0092_warn_about_dbt_data_type_diff.py +0 -0
  480. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/py.typed +0 -0
  481. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/schedulers/__init__.py +0 -0
  482. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/__init__.py +0 -0
  483. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/aws.py +0 -0
  484. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/cache.py +0 -0
  485. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/concurrency.py +0 -0
  486. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/config.py +0 -0
  487. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/connection_pool.py +0 -0
  488. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/conversions.py +0 -0
  489. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/cron.py +0 -0
  490. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/dag.py +0 -0
  491. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/date.py +0 -0
  492. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/errors.py +0 -0
  493. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/git.py +0 -0
  494. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/hashing.py +0 -0
  495. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/jinja.py +0 -0
  496. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/lineage.py +0 -0
  497. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/metaprogramming.py +0 -0
  498. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/migration.py +0 -0
  499. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/pandas.py +0 -0
  500. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/process.py +0 -0
  501. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/pydantic.py +0 -0
  502. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/rich.py +0 -0
  503. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/windows.py +0 -0
  504. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh/utils/yaml.py +0 -0
  505. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/dependency_links.txt +0 -0
  506. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/entry_points.txt +0 -0
  507. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/requires.txt +0 -0
  508. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh.egg-info/top_level.txt +0 -0
  509. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/__init__.py +0 -0
  510. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/cli.py +0 -0
  511. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/console.py +0 -0
  512. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/error.py +0 -0
  513. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/operations.py +0 -0
  514. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/options.py +0 -0
  515. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/sqlmesh_dbt/selectors.py +0 -0
  516. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/.gitignore +0 -0
  517. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/__init__.py +0 -0
  518. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/cli/__init__.py +0 -0
  519. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/cli/test_cli.py +0 -0
  520. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/cli/test_integration_cli.py +0 -0
  521. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/cli/test_project_init.py +0 -0
  522. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/conftest.py +0 -0
  523. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/__init__.py +0 -0
  524. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/analytics/__init__.py +0 -0
  525. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/analytics/test_collector.py +0 -0
  526. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/analytics/test_dispatcher.py +0 -0
  527. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/__init__.py +0 -0
  528. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/__init__.py +0 -0
  529. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/config.yaml +0 -0
  530. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/conftest.py +0 -0
  531. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/_common-hive.yaml +0 -0
  532. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/clickhouse/config.xml +0 -0
  533. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/clickhouse/keeper.xml +0 -0
  534. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.clickhouse.yaml +0 -0
  535. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.mssql.yaml +0 -0
  536. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.mysql.yaml +0 -0
  537. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.postgres.yaml +0 -0
  538. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.risingwave.yaml +0 -0
  539. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.spark.yaml +0 -0
  540. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/compose.trino.yaml +0 -0
  541. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/init-metastore-db.sql +0 -0
  542. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/spark/Dockerfile +0 -0
  543. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/spark/conf/hive-site.xml +0 -0
  544. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/spark/conf/spark-defaults.conf +0 -0
  545. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake.properties +0 -0
  546. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_delta.properties +0 -0
  547. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_iceberg.properties +0 -0
  548. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_nessie.properties +0 -0
  549. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/docker/trino/catalog/testing.properties +0 -0
  550. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration.py +0 -0
  551. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_athena.py +0 -0
  552. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_bigquery.py +0 -0
  553. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_clickhouse.py +0 -0
  554. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_duckdb.py +0 -0
  555. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_fabric.py +0 -0
  556. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_postgres.py +0 -0
  557. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_redshift.py +0 -0
  558. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_risingwave.py +0 -0
  559. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_snowflake.py +0 -0
  560. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/integration/test_integration_trino.py +0 -0
  561. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_athena.py +0 -0
  562. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_base.py +0 -0
  563. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_base_postgres.py +0 -0
  564. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_bigquery.py +0 -0
  565. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_clickhouse.py +0 -0
  566. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_databricks.py +0 -0
  567. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_duckdb.py +0 -0
  568. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_fabric.py +0 -0
  569. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_mixins.py +0 -0
  570. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_mssql.py +0 -0
  571. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_mysql.py +0 -0
  572. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_postgres.py +0 -0
  573. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_redshift.py +0 -0
  574. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_risingwave.py +0 -0
  575. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_snowflake.py +0 -0
  576. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_spark.py +0 -0
  577. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/engine_adapter/test_trino.py +0 -0
  578. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/linter/test_builtin.py +0 -0
  579. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/linter/test_helpers.py +0 -0
  580. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/metric/__init__.py +0 -0
  581. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/metric/test_metric.py +0 -0
  582. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/metric/test_rewriter.py +0 -0
  583. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/state_sync/test_state_sync.py +0 -0
  584. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_config.py +0 -0
  585. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_connection_config.py +0 -0
  586. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_console.py +0 -0
  587. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_dialect.py +0 -0
  588. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_environment.py +0 -0
  589. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_execution_tracker.py +0 -0
  590. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_format.py +0 -0
  591. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_lineage.py +0 -0
  592. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_loader.py +0 -0
  593. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_macros.py +0 -0
  594. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_notification_target.py +0 -0
  595. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_plan.py +0 -0
  596. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_plan_evaluator.py +0 -0
  597. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_plan_stages.py +0 -0
  598. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_reference.py +0 -0
  599. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_rule.py +0 -0
  600. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_scheduler.py +0 -0
  601. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_schema_diff.py +0 -0
  602. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_schema_loader.py +0 -0
  603. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/core/test_seed.py +0 -0
  604. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/__init__.py +0 -0
  605. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/conftest.py +0 -0
  606. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/dbt_project.yml +0 -0
  607. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/customers.sql +0 -0
  608. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/docs.md +0 -0
  609. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/orders.sql +0 -0
  610. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/overview.md +0 -0
  611. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/schema.yml +0 -0
  612. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/staging/schema.yml +0 -0
  613. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/staging/stg_customers.sql +0 -0
  614. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/staging/stg_orders.sql +0 -0
  615. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/models/staging/stg_payments.sql +0 -0
  616. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/profiles.yml +0 -0
  617. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/seeds/.gitkeep +0 -0
  618. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/seeds/raw_customers.csv +0 -0
  619. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/seeds/raw_orders.csv +0 -0
  620. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/fixtures/jaffle_shop_duckdb/seeds/raw_payments.csv +0 -0
  621. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_global_flags.py +0 -0
  622. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_list.py +0 -0
  623. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_operations.py +0 -0
  624. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_options.py +0 -0
  625. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_run.py +0 -0
  626. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/cli/test_selectors.py +0 -0
  627. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/conftest.py +0 -0
  628. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_adapter.py +0 -0
  629. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_config.py +0 -0
  630. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_docs.py +0 -0
  631. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_integration.py +0 -0
  632. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_manifest.py +0 -0
  633. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_model.py +0 -0
  634. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_test.py +0 -0
  635. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_transformation.py +0 -0
  636. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/dbt/test_util.py +0 -0
  637. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/engines/__init__.py +0 -0
  638. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/engines/spark/__init__.py +0 -0
  639. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/engines/spark/conftest.py +0 -0
  640. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/engines/spark/test_db_api.py +0 -0
  641. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/__init__.py +0 -0
  642. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/analyses/.gitkeep +0 -0
  643. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/analyses/waiter_performance_analysis.sql +0 -0
  644. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/config.py +0 -0
  645. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/dbt_project.yml +0 -0
  646. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/logs/dbt.log.legacy +0 -0
  647. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/create_tables.sql +0 -0
  648. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/graph_usage.sql +0 -0
  649. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/incremental.sql +0 -0
  650. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/log_value.sql +0 -0
  651. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/test_dependencies.sql +0 -0
  652. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/macros/top_waiters_limit.sql +0 -0
  653. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/disabled_model.sql +0 -0
  654. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/empty_model.sql +0 -0
  655. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/schema.yml +0 -0
  656. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/simple_model_a.sql +0 -0
  657. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/simple_model_b.sql +0 -0
  658. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/top_waiters.sql +0 -0
  659. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/waiter_as_customer_by_day.sql +0 -0
  660. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day.sql +0 -0
  661. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day_v1.sql +0 -0
  662. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/waiters.sql +0 -0
  663. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/models/waiters_doc_block.md +0 -0
  664. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/analyses/.gitkeep +0 -0
  665. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/dbt_project.yml +0 -0
  666. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/current_engine.sql +0 -0
  667. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/distinct.sql +0 -0
  668. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/packaged_tables.sql +0 -0
  669. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/models/customer_revenue_by_day.sql +0 -0
  670. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/models/customers.sql +0 -0
  671. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/models/schema.yml +0 -0
  672. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/seeds/.gitkeep +0 -0
  673. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/snapshots/.gitkeep +0 -0
  674. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages/customers/tests/.gitkeep +0 -0
  675. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/packages.yml +0 -0
  676. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/profiles.yml +0 -0
  677. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/schema.yaml +0 -0
  678. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/seed_sources.py +0 -0
  679. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/seeds/properties.yml +0 -0
  680. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/seeds/waiter_names.csv +0 -0
  681. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/snapshots/.gitkeep +0 -0
  682. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/snapshots/items_check_snapshot.sql +0 -0
  683. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/snapshots/items_no_hard_delete_snapshot.sql +0 -0
  684. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/snapshots/items_snapshot.sql +0 -0
  685. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/source_data/items.csv +0 -0
  686. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/source_data/order_items.csv +0 -0
  687. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/source_data/orders.csv +0 -0
  688. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/dbt/sushi_test/tests/.gitkeep +0 -0
  689. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_closed.json +0 -0
  690. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_command_deploy.json +0 -0
  691. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_comment.json +0 -0
  692. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_review_submit.json +0 -0
  693. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_synchronized.json +0 -0
  694. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/github/pull_request_synchronized_enterprise.json +0 -0
  695. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/migrations/environments.json +0 -0
  696. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/migrations/snapshots.json +0 -0
  697. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/audits/.gitkeep +0 -0
  698. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/macros/.gitkeep +0 -0
  699. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/macros/__init__.py +0 -0
  700. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/models/.gitkeep +0 -0
  701. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/models/first_schema/model_one.sql +0 -0
  702. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/models/first_schema/model_two.sql +0 -0
  703. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/models/second_schema/model_one.sql +0 -0
  704. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/models/second_schema/model_two.sql +0 -0
  705. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/multi_virtual_layer/tests/.gitkeep +0 -0
  706. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/snowflake/rsa_key_no_pass.p8 +0 -0
  707. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/fixtures/snowflake/rsa_key_pass.p8 +0 -0
  708. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/__init__.py +0 -0
  709. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/__init__.py +0 -0
  710. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/__init__.py +0 -0
  711. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/conftest.py +0 -0
  712. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/test_config.py +0 -0
  713. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/test_github_commands.py +0 -0
  714. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/test_github_controller.py +0 -0
  715. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/github/cicd/test_github_event.py +0 -0
  716. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/jupyter/__init__.py +0 -0
  717. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/jupyter/example_outputs.ipynb +0 -0
  718. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/integrations/jupyter/test_magics.py +0 -0
  719. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/conftest.py +0 -0
  720. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_code_actions.py +0 -0
  721. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_completions.py +0 -0
  722. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_context.py +0 -0
  723. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_diagnostics.py +0 -0
  724. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_document_highlight.py +0 -0
  725. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_hints.py +0 -0
  726. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference.py +0 -0
  727. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_cte.py +0 -0
  728. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_cte_find_all.py +0 -0
  729. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_external_model.py +0 -0
  730. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_macro.py +0 -0
  731. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_macro_find_all.py +0 -0
  732. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_macro_multi.py +0 -0
  733. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_model_column_prefix.py +0 -0
  734. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_reference_model_find_all.py +0 -0
  735. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/lsp/test_rename_cte.py +0 -0
  736. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/pyproject.toml +0 -0
  737. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/schedulers/__init__.py +0 -0
  738. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/setup.py +0 -0
  739. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/test_forking.py +0 -0
  740. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/__init__.py +0 -0
  741. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/pandas.py +0 -0
  742. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_aws.py +0 -0
  743. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_cache.py +0 -0
  744. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_concurrency.py +0 -0
  745. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_connection_pool.py +0 -0
  746. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_dag.py +0 -0
  747. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_date.py +0 -0
  748. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_filesystem.py +0 -0
  749. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_filters.py +0 -0
  750. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_helpers.py +0 -0
  751. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_jinja.py +0 -0
  752. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_lineage_description.py +0 -0
  753. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_metaprogramming.py +0 -0
  754. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_pydantic.py +0 -0
  755. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/utils/test_yaml.py +0 -0
  756. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/web/__init__.py +0 -0
  757. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/web/conftest.py +0 -0
  758. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/web/test_lineage.py +0 -0
  759. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tests/web/test_main.py +0 -0
  760. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/README.md +0 -0
  761. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/validating_migration_numbers.sh +0 -0
  762. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/vscode/extensions.json +0 -0
  763. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/vscode/launch.json +0 -0
  764. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/vscode/settings.json +0 -0
  765. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/tooling/vscode/tasks.json +0 -0
  766. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/.gitignore +0 -0
  767. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/package.json +0 -0
  768. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/src/brand.ts +0 -0
  769. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/src/callbacks.ts +0 -0
  770. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/src/result.ts +0 -0
  771. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/bus/tsconfig.json +0 -0
  772. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/.gitignore +0 -0
  773. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/.vscodeignore +0 -0
  774. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/CHANGELOG.md +0 -0
  775. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/README.md +0 -0
  776. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/assets/images/diff.svg +0 -0
  777. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/assets/logo.png +0 -0
  778. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/assets/logo.svg +0 -0
  779. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/esbuild.js +0 -0
  780. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/eslint.config.mjs +0 -0
  781. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/package.json +0 -0
  782. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/playwright.config.ts +0 -0
  783. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/auth/auth.ts +0 -0
  784. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/commands.test.ts +0 -0
  785. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/format.ts +0 -0
  786. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/printEnvironment.ts +0 -0
  787. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/renderModel.ts +0 -0
  788. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/signin.ts +0 -0
  789. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/signinSpecifyFlow.ts +0 -0
  790. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/signout.ts +0 -0
  791. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/stop.ts +0 -0
  792. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/commands/tableDiff.ts +0 -0
  793. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/completion/completion.ts +0 -0
  794. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/extension.ts +0 -0
  795. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/lsp/custom.ts +0 -0
  796. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/lsp/lsp.ts +0 -0
  797. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/providers/renderedModelProvider.ts +0 -0
  798. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/tests/tests.ts +0 -0
  799. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/constants.ts +0 -0
  800. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/log.ts +0 -0
  801. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/python.ts +0 -0
  802. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/settings.ts +0 -0
  803. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/utilities.ts +0 -0
  804. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/common/vscodeapi.ts +0 -0
  805. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/config.ts +0 -0
  806. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/errors.ts +0 -0
  807. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/exec.ts +0 -0
  808. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/isCodespaces.ts +0 -0
  809. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/isWindows.ts +0 -0
  810. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/python.ts +0 -0
  811. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/semver.test.ts +0 -0
  812. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/semver.ts +0 -0
  813. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/sleep.ts +0 -0
  814. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/utilities/sqlmesh/sqlmesh.ts +0 -0
  815. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/src/webviews/lineagePanel.ts +0 -0
  816. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/bad_setup.spec.ts +0 -0
  817. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/broken_project.spec.ts +0 -0
  818. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/commands.spec.ts +0 -0
  819. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/completions.spec.ts +0 -0
  820. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/configuration.spec.ts +0 -0
  821. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/diagnostics.spec.ts +0 -0
  822. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/extension.setup.ts +0 -0
  823. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/extension.teardown.ts +0 -0
  824. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/external_models.spec.ts +0 -0
  825. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/find_references.spec.ts +0 -0
  826. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/fixtures.ts +0 -0
  827. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/format.spec.ts +0 -0
  828. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/go_to_definition.spec.ts +0 -0
  829. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/hints.spec.ts +0 -0
  830. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/lineage.spec.ts +0 -0
  831. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/lineage_settings.spec.ts +0 -0
  832. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/multi_project.spec.ts +0 -0
  833. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/python_env.spec.ts +0 -0
  834. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/quickfix.spec.ts +0 -0
  835. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/rename_cte.spec.ts +0 -0
  836. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/render.spec.ts +0 -0
  837. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/stop.spec.ts +0 -0
  838. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud/README.md +0 -0
  839. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud/mock_tcloud/__init__.py +0 -0
  840. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud/mock_tcloud/cli.py +0 -0
  841. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud/pyproject.toml +0 -0
  842. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud.spec.ts +0 -0
  843. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tcloud_utils.ts +0 -0
  844. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/tests.spec.ts +0 -0
  845. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/utils.ts +0 -0
  846. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/utils_code_server.ts +0 -0
  847. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tests/venv_naming.spec.ts +0 -0
  848. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tsconfig.build.json +0 -0
  849. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tsconfig.json +0 -0
  850. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/tsconfig.test.json +0 -0
  851. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/extension/vitest.config.ts +0 -0
  852. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/openapi.json +0 -0
  853. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.cta.json +0 -0
  854. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.gitignore +0 -0
  855. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.storybook/main.ts +0 -0
  856. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.storybook/preview.ts +0 -0
  857. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.storybook/storybook.css +0 -0
  858. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/.storybook/vitest.setup.ts +0 -0
  859. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/index.html +0 -0
  860. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/orval.config.ts +0 -0
  861. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/package.json +0 -0
  862. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/App.css +0 -0
  863. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/api/client.ts +0 -0
  864. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/api/index.ts +0 -0
  865. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/api/instance.ts +0 -0
  866. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/button/Button.tsx +0 -0
  867. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/CogIcon.tsx +0 -0
  868. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/Graph.css +0 -0
  869. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/ModelColumns.tsx +0 -0
  870. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/ModelLineage.tsx +0 -0
  871. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/ModelNode.tsx +0 -0
  872. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/ModelNodeHeaderHandles.tsx +0 -0
  873. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/SettingsControl.tsx +0 -0
  874. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/constants.ts +0 -0
  875. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/context.tsx +0 -0
  876. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/help.ts +0 -0
  877. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/types.ts +0 -0
  878. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/workers/index.ts +0 -0
  879. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/graph/workers/lineage.ts +0 -0
  880. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/input/Input.tsx +0 -0
  881. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/input/InputToggle.tsx +0 -0
  882. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/input/Selector.tsx +0 -0
  883. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/input/Textfield.tsx +0 -0
  884. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/loading/Loading.tsx +0 -0
  885. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/loading/LoadingSegment.tsx +0 -0
  886. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/loading/LoadingStatus.tsx +0 -0
  887. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/logo/Spinner.tsx +0 -0
  888. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/sourceList/SourceList.tsx +0 -0
  889. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/sourceList/SourceListItem.tsx +0 -0
  890. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/Card.tsx +0 -0
  891. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/ColumnStatsSection.tsx +0 -0
  892. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/ContentSections.tsx +0 -0
  893. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/HeaderCard.tsx +0 -0
  894. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/Legend.tsx +0 -0
  895. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/RerunController.tsx +0 -0
  896. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/RowStatsSection.tsx +0 -0
  897. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/SampleDataSection.tsx +0 -0
  898. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/SchemaDiffSection.tsx +0 -0
  899. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/SectionCard.tsx +0 -0
  900. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/SectionToggle.tsx +0 -0
  901. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/TableDiff.tsx +0 -0
  902. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/TableDiffResults.tsx +0 -0
  903. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/hooks.ts +0 -0
  904. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/index.ts +0 -0
  905. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/tailwind-utils.ts +0 -0
  906. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/tablediff/types.ts +0 -0
  907. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/components/title/Title.tsx +0 -0
  908. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/domain/column.ts +0 -0
  909. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/domain/initial.ts +0 -0
  910. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/domain/lineage.ts +0 -0
  911. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/domain/models.ts +0 -0
  912. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/domain/sqlmesh-model.ts +0 -0
  913. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/hooks/eventBus.tsx +0 -0
  914. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/hooks/vscode.ts +0 -0
  915. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/main.tsx +0 -0
  916. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/pages/lineage.tsx +0 -0
  917. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/pages/tablediff.tsx +0 -0
  918. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/reportWebVitals.ts +0 -0
  919. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/routeTree.gen.ts +0 -0
  920. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/routes/__root.tsx +0 -0
  921. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/routes/index.tsx +0 -0
  922. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/routes/lineage.tsx +0 -0
  923. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/routes/tablediff.tsx +0 -0
  924. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/style/variants.ts +0 -0
  925. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/styles.css +0 -0
  926. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/utils/index.spec.ts +0 -0
  927. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/utils/index.ts +0 -0
  928. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/utils/receiveEvents.ts +0 -0
  929. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/utils/rpc.ts +0 -0
  930. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/src/utils/vscodeapi.ts +0 -0
  931. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/tailwind.config.cjs +0 -0
  932. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/tsconfig.json +0 -0
  933. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/vite.config.js +0 -0
  934. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/vscode/react/vitest.shims.d.ts +0 -0
  935. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/.dockerignore +0 -0
  936. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/Dockerfile.api +0 -0
  937. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/Dockerfile.app +0 -0
  938. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/__init__.py +0 -0
  939. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/.gitignore +0 -0
  940. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Audits-Ucsx1GzF.js +0 -0
  941. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Banner-BWDzvavM.js +0 -0
  942. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/ChevronDownIcon-D2VL13Ah.js +0 -0
  943. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/ChevronRightIcon-DWGYbf1l.js +0 -0
  944. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Content-Bikfy8fh.js +0 -0
  945. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Content-DdHDZM3I.js +0 -0
  946. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Data-CzAJH7rW.js +0 -0
  947. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/DataCatalog-BJF11g8f.js +0 -0
  948. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Editor-DgLhgKnm.js +0 -0
  949. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Editor-s0SBpV2y.js +0 -0
  950. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Errors-D0m0O1d3.js +0 -0
  951. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/FileExplorer-CEv0vXkt.js +0 -0
  952. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Footer-BwzXn8Ew.js +0 -0
  953. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Header-6heDkEqG.js +0 -0
  954. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Input-obuJsD6k.js +0 -0
  955. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Lineage-D0Hgdz2v.js +0 -0
  956. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/ListboxShow-HM9_qyrt.js +0 -0
  957. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/ModelLineage-zWdKo0U2.js +0 -0
  958. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Models-Bcu66SRz.js +0 -0
  959. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Page-BWEEQfIt.js +0 -0
  960. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Plan-C4gXCqlf.js +0 -0
  961. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/PlusCircleIcon-CVDO651q.js +0 -0
  962. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/ReportErrors-BT6xFwAr.js +0 -0
  963. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Root-ryJoBK4h.js +0 -0
  964. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/SearchList-DB04sPb9.js +0 -0
  965. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/SelectEnvironment-CUYcXUu6.js +0 -0
  966. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/SourceList-Doo_9ZGp.js +0 -0
  967. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/SourceListItem-D5Mj7Dly.js +0 -0
  968. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/SplitPane-qHmkD1qy.js +0 -0
  969. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Tests-DH1Z74ML.js +0 -0
  970. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/Welcome-DqUJUNMF.js +0 -0
  971. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
  972. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/context-DgX0fp2E.js +0 -0
  973. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/context-Dr54UHLi.js +0 -0
  974. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/editor-DYIP1yQ4.js +0 -0
  975. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/file-DarlIDVi.js +0 -0
  976. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/floating-ui.react-dom-BH3TFvkM.js +0 -0
  977. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/help-B59vE3aE.js +0 -0
  978. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/help-Bl8wqaQc.js +0 -0
  979. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/index-D1sR7wpN.js +0 -0
  980. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/index-O3mjYpnE.js +0 -0
  981. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/plan-CehRrJUG.js +0 -0
  982. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/popover-CqgMRE0G.js +0 -0
  983. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/assets/project-6gxepOhm.js +0 -0
  984. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/css/base.css +0 -0
  985. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/css/design.css +0 -0
  986. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/favicons/favicon.svg +0 -0
  987. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
  988. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/OFL.txt +0 -0
  989. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/README.txt +0 -0
  990. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Black.ttf +0 -0
  991. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Bold.ttf +0 -0
  992. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
  993. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
  994. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Light.ttf +0 -0
  995. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Medium.ttf +0 -0
  996. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Regular.ttf +0 -0
  997. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
  998. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Inter/static/Inter-Thin.ttf +0 -0
  999. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  1000. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  1001. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/OFL.txt +0 -0
  1002. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/README.txt +0 -0
  1003. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
  1004. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
  1005. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
  1006. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
  1007. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
  1008. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
  1009. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
  1010. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
  1011. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
  1012. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
  1013. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
  1014. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
  1015. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
  1016. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
  1017. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
  1018. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
  1019. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
  1020. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
  1021. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
  1022. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
  1023. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-buch.otf +0 -0
  1024. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-buch.woff2 +0 -0
  1025. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-kraftig.otf +0 -0
  1026. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-kraftig.woff2 +0 -0
  1027. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-mono-buch.otf +0 -0
  1028. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
  1029. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
  1030. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
  1031. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/dist/index.html +0 -0
  1032. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/eslint.config.mjs +0 -0
  1033. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/index.html +0 -0
  1034. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/openapi.json +0 -0
  1035. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/orval.config.ts +0 -0
  1036. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/package.json +0 -0
  1037. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/playwright.config.ts +0 -0
  1038. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/postcss.config.cjs +0 -0
  1039. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/css/base.css +0 -0
  1040. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/css/design.css +0 -0
  1041. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/favicons/favicon.svg +0 -0
  1042. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
  1043. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/OFL.txt +0 -0
  1044. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/README.txt +0 -0
  1045. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Black.ttf +0 -0
  1046. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Bold.ttf +0 -0
  1047. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
  1048. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
  1049. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Light.ttf +0 -0
  1050. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Medium.ttf +0 -0
  1051. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Regular.ttf +0 -0
  1052. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
  1053. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Inter/static/Inter-Thin.ttf +0 -0
  1054. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  1055. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  1056. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/OFL.txt +0 -0
  1057. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/README.txt +0 -0
  1058. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
  1059. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
  1060. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
  1061. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
  1062. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
  1063. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
  1064. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
  1065. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
  1066. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
  1067. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
  1068. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
  1069. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
  1070. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
  1071. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
  1072. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
  1073. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
  1074. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
  1075. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
  1076. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
  1077. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
  1078. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-buch.otf +0 -0
  1079. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-buch.woff2 +0 -0
  1080. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-kraftig.otf +0 -0
  1081. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-kraftig.woff2 +0 -0
  1082. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-mono-buch.otf +0 -0
  1083. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
  1084. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
  1085. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/public/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
  1086. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/App.tsx +0 -0
  1087. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/api/channels.ts +0 -0
  1088. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/api/index.ts +0 -0
  1089. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/api/instance.ts +0 -0
  1090. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/context/context.ts +0 -0
  1091. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/context/editor.ts +0 -0
  1092. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/context/plan.ts +0 -0
  1093. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/context/project.ts +0 -0
  1094. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/context/theme.tsx +0 -0
  1095. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/hooks/useActiveFocus.ts +0 -0
  1096. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/hooks/useLocalStorage.ts +0 -0
  1097. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/banner/Banner.tsx +0 -0
  1098. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/banner/Welcome.tsx +0 -0
  1099. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/button/Button.tsx +0 -0
  1100. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/button/tests/Button.spec.tsx +0 -0
  1101. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/container/Container.tsx +0 -0
  1102. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/divider/Divider.tsx +0 -0
  1103. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/divider/tests/Divider.spec.tsx +0 -0
  1104. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/documentation/Documentation.tsx +0 -0
  1105. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/Editor.css +0 -0
  1106. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/Editor.tsx +0 -0
  1107. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorCode.tsx +0 -0
  1108. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorFooter.tsx +0 -0
  1109. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorIndicator.tsx +0 -0
  1110. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorInspector.tsx +0 -0
  1111. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorPreview.tsx +0 -0
  1112. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorTab.tsx +0 -0
  1113. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/EditorTabs.tsx +0 -0
  1114. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/extensions/SQLMeshDialect.ts +0 -0
  1115. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/extensions/SQLMeshModel.ts +0 -0
  1116. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/extensions/help.ts +0 -0
  1117. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/extensions/index.ts +0 -0
  1118. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/help.ts +0 -0
  1119. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/editor/hooks.ts +0 -0
  1120. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/environmentDetails/AddEnvironment.tsx +0 -0
  1121. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/environmentDetails/EnvironmentChanges.tsx +0 -0
  1122. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/environmentDetails/EnvironmentChangesPreview.tsx +0 -0
  1123. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/environmentDetails/EnvironmentDetails.tsx +0 -0
  1124. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/environmentDetails/SelectEnvironment.tsx +0 -0
  1125. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/fileExplorer/Directory.tsx +0 -0
  1126. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/fileExplorer/DragLayer.tsx +0 -0
  1127. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/fileExplorer/File.tsx +0 -0
  1128. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/fileExplorer/FileExplorer.tsx +0 -0
  1129. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/fileExplorer/context.tsx +0 -0
  1130. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/Graph.css +0 -0
  1131. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelColumns.tsx +0 -0
  1132. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelLineage.tsx +0 -0
  1133. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelLineageDetails.tsx +0 -0
  1134. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelLineageSearch.tsx +0 -0
  1135. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelNode.tsx +0 -0
  1136. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/ModelNodeHeaderHandles.tsx +0 -0
  1137. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/context.tsx +0 -0
  1138. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/graph/help.ts +0 -0
  1139. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/historyNavigation/historyNavigation.tsx +0 -0
  1140. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/input/Input.tsx +0 -0
  1141. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/input/InputToggle.tsx +0 -0
  1142. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/input/Selector.tsx +0 -0
  1143. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/input/Textfield.tsx +0 -0
  1144. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/listbox/ListboxShow.tsx +0 -0
  1145. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/loading/Loading.tsx +0 -0
  1146. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/loading/LoadingSegment.tsx +0 -0
  1147. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/loading/LoadingStatus.tsx +0 -0
  1148. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/logo/Spinner.tsx +0 -0
  1149. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/logo/SqlMesh.tsx +0 -0
  1150. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/logo/Tobiko.tsx +0 -0
  1151. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/modal/Modal.tsx +0 -0
  1152. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/modal/ModalConfirmation.tsx +0 -0
  1153. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/moduleNavigation/ModuleLink.tsx +0 -0
  1154. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/moduleNavigation/ModuleNavigation.tsx +0 -0
  1155. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/Plan.tsx +0 -0
  1156. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanActions.tsx +0 -0
  1157. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanApplyStageTracker.tsx +0 -0
  1158. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanBackfillDates.tsx +0 -0
  1159. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanChangePreview.tsx +0 -0
  1160. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanHeader.tsx +0 -0
  1161. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/PlanOptions.tsx +0 -0
  1162. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/context.tsx +0 -0
  1163. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/help.spec.ts +0 -0
  1164. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/help.ts +0 -0
  1165. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/plan/hooks.ts +0 -0
  1166. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/progress/Progress.tsx +0 -0
  1167. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/report/ReportErrors.tsx +0 -0
  1168. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/report/ReportTestsErrors.tsx +0 -0
  1169. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/search/SearchList.tsx +0 -0
  1170. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/search/help.ts +0 -0
  1171. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/sourceList/SourceList.tsx +0 -0
  1172. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/sourceList/SourceListItem.tsx +0 -0
  1173. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/splitPane/SplitPane.css +0 -0
  1174. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/splitPane/SplitPane.tsx +0 -0
  1175. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/tab/Tab.tsx +0 -0
  1176. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/table/Table.tsx +0 -0
  1177. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/table/help.ts +0 -0
  1178. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/tableDiff/TableDiff.tsx +0 -0
  1179. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/tableDiff/help.ts +0 -0
  1180. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/tasksOverview/TasksOverview.tsx +0 -0
  1181. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/title/Title.tsx +0 -0
  1182. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/components/toggle/Toggle.tsx +0 -0
  1183. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/audits/Audits.tsx +0 -0
  1184. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/data/Data.tsx +0 -0
  1185. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/data-catalog/DataCatalog.tsx +0 -0
  1186. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/editor/Editor.tsx +0 -0
  1187. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/errors/Content.tsx +0 -0
  1188. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/errors/Errors.tsx +0 -0
  1189. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/lineage/Lineage.tsx +0 -0
  1190. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/models/Models.tsx +0 -0
  1191. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/plan/Content.tsx +0 -0
  1192. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/plan/Plan.tsx +0 -0
  1193. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/Footer.tsx +0 -0
  1194. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/Header.tsx +0 -0
  1195. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/Navigation.tsx +0 -0
  1196. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/NotFound.tsx +0 -0
  1197. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/Page.tsx +0 -0
  1198. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/Root.tsx +0 -0
  1199. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/root/context/notificationCenter.tsx +0 -0
  1200. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/library/pages/tests/Tests.tsx +0 -0
  1201. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/main.tsx +0 -0
  1202. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/artifact.posix.spec.ts +0 -0
  1203. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/artifact.spec.ts +0 -0
  1204. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/artifact.ts +0 -0
  1205. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/artifact.win.spec.ts +0 -0
  1206. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/directory.posix.spec.ts +0 -0
  1207. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/directory.ts +0 -0
  1208. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/directory.win.spec.ts +0 -0
  1209. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/environment.ts +0 -0
  1210. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/file.spec.ts +0 -0
  1211. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/file.ts +0 -0
  1212. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/index.ts +0 -0
  1213. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/initial.ts +0 -0
  1214. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/module-controller.ts +0 -0
  1215. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/plan-action.ts +0 -0
  1216. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/sqlmesh-change-display.ts +0 -0
  1217. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/sqlmesh-model.ts +0 -0
  1218. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/tracker-plan-apply.ts +0 -0
  1219. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/tracker-plan-cancel.ts +0 -0
  1220. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/tracker-plan-overview.ts +0 -0
  1221. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/models/tracker-plan.ts +0 -0
  1222. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/routes.tsx +0 -0
  1223. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/styles/index.css +0 -0
  1224. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/tests/setup.ts +0 -0
  1225. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/tests/utils.tsx +0 -0
  1226. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/types/enum.ts +0 -0
  1227. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/types/index.d.ts +0 -0
  1228. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/utils/additional-components.ts +0 -0
  1229. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/utils/index.spec.ts +0 -0
  1230. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/utils/index.ts +0 -0
  1231. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/utils/tbk-components.js +0 -0
  1232. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/workers/index.ts +0 -0
  1233. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/workers/lineage.ts +0 -0
  1234. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/workers/sqlglot/sqlglot.py +0 -0
  1235. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/src/workers/sqlglot/sqlglot.ts +0 -0
  1236. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/tailwind.config.cjs +0 -0
  1237. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/tests/initial.spec.ts +0 -0
  1238. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/tsconfig.json +0 -0
  1239. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/client/vite.config.ts +0 -0
  1240. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/.gitignore +0 -0
  1241. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/.storybook/main.ts +0 -0
  1242. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/.storybook/preview.ts +0 -0
  1243. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/.syncpackrc +0 -0
  1244. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/eslint.config.mjs +0 -0
  1245. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/package-lock.json +0 -0
  1246. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/package.json +0 -0
  1247. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/postcss.config.js +0 -0
  1248. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Badge/Badge.css +0 -0
  1249. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Badge/Badge.stories.tsx +0 -0
  1250. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Badge/Badge.tsx +0 -0
  1251. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Button/Button.css +0 -0
  1252. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Button/Button.stories.tsx +0 -0
  1253. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Button/Button.tsx +0 -0
  1254. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/CopyButton/CopyButton.stories.tsx +0 -0
  1255. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/CopyButton/CopyButton.test.tsx +0 -0
  1256. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/CopyButton/CopyButton.tsx +0 -0
  1257. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/HorizontalContainer/HorizontalContainer.stories.tsx +0 -0
  1258. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/HorizontalContainer/HorizontalContainer.test.tsx +0 -0
  1259. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/HorizontalContainer/HorizontalContainer.tsx +0 -0
  1260. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ModelName/ModelName.css +0 -0
  1261. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ModelName/ModelName.stories.tsx +0 -0
  1262. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ModelName/ModelName.test.tsx +0 -0
  1263. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ModelName/ModelName.tsx +0 -0
  1264. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ScrollContainer/ScrollContainer.css +0 -0
  1265. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ScrollContainer/ScrollContainer.stories.tsx +0 -0
  1266. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ScrollContainer/ScrollContainer.test.tsx +0 -0
  1267. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/ScrollContainer/ScrollContainer.tsx +0 -0
  1268. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Tooltip/Tooltip.css +0 -0
  1269. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Tooltip/Tooltip.stories.tsx +0 -0
  1270. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/Tooltip/Tooltip.tsx +0 -0
  1271. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/VerticalContainer/VerticalContainer.stories.tsx +0 -0
  1272. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/VerticalContainer/VerticalContainer.test.tsx +0 -0
  1273. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/components/VerticalContainer/VerticalContainer.tsx +0 -0
  1274. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/index.ts +0 -0
  1275. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
  1276. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/OFL.txt +0 -0
  1277. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/README.txt +0 -0
  1278. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Black.ttf +0 -0
  1279. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Bold.ttf +0 -0
  1280. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
  1281. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
  1282. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Light.ttf +0 -0
  1283. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Medium.ttf +0 -0
  1284. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Regular.ttf +0 -0
  1285. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
  1286. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/Inter/static/Inter-Thin.ttf +0 -0
  1287. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  1288. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  1289. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/OFL.txt +0 -0
  1290. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/README.txt +0 -0
  1291. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
  1292. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
  1293. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
  1294. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
  1295. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
  1296. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
  1297. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
  1298. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
  1299. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
  1300. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
  1301. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
  1302. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
  1303. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
  1304. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
  1305. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
  1306. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
  1307. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/fonts.css +0 -0
  1308. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/index.css +0 -0
  1309. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/palette.css +0 -0
  1310. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/semantic-colors.css +0 -0
  1311. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/space.css +0 -0
  1312. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/design/typography.css +0 -0
  1313. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/styles/index.css +0 -0
  1314. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/types.ts +0 -0
  1315. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/src/utils.ts +0 -0
  1316. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tailwind.base.config.js +0 -0
  1317. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tailwind.config.js +0 -0
  1318. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tests/setup.ts +0 -0
  1319. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tsconfig.base.json +0 -0
  1320. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tsconfig.build.json +0 -0
  1321. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/tsconfig.json +0 -0
  1322. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/vite.config.js +0 -0
  1323. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/common/vitest.config.ts +0 -0
  1324. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/docker-compose.build.yml +0 -0
  1325. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/docker-compose.yml +0 -0
  1326. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/__init__.py +0 -0
  1327. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/__init__.py +0 -0
  1328. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/__init__.py +0 -0
  1329. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/commands.py +0 -0
  1330. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/directories.py +0 -0
  1331. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/environments.py +0 -0
  1332. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/events.py +0 -0
  1333. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/files.py +0 -0
  1334. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/lineage.py +0 -0
  1335. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/meta.py +0 -0
  1336. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/models.py +0 -0
  1337. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/modules.py +0 -0
  1338. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/plan.py +0 -0
  1339. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/api/endpoints/table_diff.py +0 -0
  1340. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/app.py +0 -0
  1341. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/console.py +0 -0
  1342. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/exceptions.py +0 -0
  1343. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/main.py +0 -0
  1344. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/models.py +0 -0
  1345. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/openapi.py +0 -0
  1346. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/settings.py +0 -0
  1347. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/utils.py +0 -0
  1348. {sqlmesh-0.212.1.dev3 → sqlmesh-0.212.1.dev4}/web/server/watcher.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.212.1.dev3
3
+ Version: 0.212.1.dev4
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.212.1.dev3'
32
- __version_tuple__ = version_tuple = (0, 212, 1, 'dev3')
31
+ __version__ = version = '0.212.1.dev4'
32
+ __version_tuple__ = version_tuple = (0, 212, 1, 'dev4')
33
33
 
34
- __commit_id__ = commit_id = 'g454e942fe'
34
+ __commit_id__ = commit_id = 'g75f825e9f'
@@ -15,11 +15,10 @@ from sqlmesh.core.model.common import (
15
15
  bool_validator,
16
16
  default_catalog_validator,
17
17
  depends_on_validator,
18
- expression_validator,
19
18
  sort_python_env,
20
19
  sorted_python_env_payloads,
21
20
  )
22
- from sqlmesh.core.model.common import make_python_env, single_value_or_tuple
21
+ from sqlmesh.core.model.common import make_python_env, single_value_or_tuple, ParsableSql
23
22
  from sqlmesh.core.node import _Node
24
23
  from sqlmesh.core.renderer import QueryRenderer
25
24
  from sqlmesh.utils.date import TimeLike
@@ -67,15 +66,26 @@ class AuditMixin(AuditCommonMetaMixin):
67
66
  jinja_macros: A registry of jinja macros to use when rendering the audit query.
68
67
  """
69
68
 
70
- query: t.Union[exp.Query, d.JinjaQuery]
69
+ query_: ParsableSql
71
70
  defaults: t.Dict[str, exp.Expression]
72
- expressions_: t.Optional[t.List[exp.Expression]]
71
+ expressions_: t.Optional[t.List[ParsableSql]]
73
72
  jinja_macros: JinjaMacroRegistry
74
73
  formatting: t.Optional[bool]
75
74
 
75
+ @property
76
+ def query(self) -> t.Union[exp.Query, d.JinjaQuery]:
77
+ return t.cast(t.Union[exp.Query, d.JinjaQuery], self.query_.parse(self.dialect))
78
+
76
79
  @property
77
80
  def expressions(self) -> t.List[exp.Expression]:
78
- return self.expressions_ or []
81
+ if not self.expressions_:
82
+ return []
83
+ result = []
84
+ for e in self.expressions_:
85
+ parsed = e.parse(self.dialect)
86
+ if not isinstance(parsed, exp.Semicolon):
87
+ result.append(parsed)
88
+ return result
79
89
 
80
90
  @property
81
91
  def macro_definitions(self) -> t.List[d.MacroDef]:
@@ -122,16 +132,16 @@ class ModelAudit(PydanticModel, AuditMixin, frozen=True):
122
132
  skip: bool = False
123
133
  blocking: bool = True
124
134
  standalone: t.Literal[False] = False
125
- query: t.Union[exp.Query, d.JinjaQuery]
135
+ query_: ParsableSql = Field(alias="query")
126
136
  defaults: t.Dict[str, exp.Expression] = {}
127
- expressions_: t.Optional[t.List[exp.Expression]] = Field(default=None, alias="expressions")
137
+ expressions_: t.Optional[t.List[ParsableSql]] = Field(default=None, alias="expressions")
128
138
  jinja_macros: JinjaMacroRegistry = JinjaMacroRegistry()
129
139
  formatting: t.Optional[bool] = Field(default=None, exclude=True)
130
140
 
131
141
  _path: t.Optional[Path] = None
132
142
 
133
143
  # Validators
134
- _query_validator = expression_validator
144
+ _query_validator = ParsableSql.validator()
135
145
  _bool_validator = bool_validator
136
146
  _string_validator = audit_string_validator
137
147
  _map_validator = audit_map_validator
@@ -153,9 +163,9 @@ class StandaloneAudit(_Node, AuditMixin):
153
163
  skip: bool = False
154
164
  blocking: bool = False
155
165
  standalone: t.Literal[True] = True
156
- query: t.Union[exp.Query, d.JinjaQuery]
166
+ query_: ParsableSql = Field(alias="query")
157
167
  defaults: t.Dict[str, exp.Expression] = {}
158
- expressions_: t.Optional[t.List[exp.Expression]] = Field(default=None, alias="expressions")
168
+ expressions_: t.Optional[t.List[ParsableSql]] = Field(default=None, alias="expressions")
159
169
  jinja_macros: JinjaMacroRegistry = JinjaMacroRegistry()
160
170
  default_catalog: t.Optional[str] = None
161
171
  depends_on_: t.Optional[t.Set[str]] = Field(default=None, alias="depends_on")
@@ -165,7 +175,7 @@ class StandaloneAudit(_Node, AuditMixin):
165
175
  source_type: t.Literal["audit"] = "audit"
166
176
 
167
177
  # Validators
168
- _query_validator = expression_validator
178
+ _query_validator = ParsableSql.validator()
169
179
  _bool_validator = bool_validator
170
180
  _string_validator = audit_string_validator
171
181
  _map_validator = audit_map_validator
@@ -276,8 +286,8 @@ class StandaloneAudit(_Node, AuditMixin):
276
286
  self.cron_tz.key if self.cron_tz else None,
277
287
  ]
278
288
 
279
- query = self.render_audit_query() or self.query
280
- data.append(gen(query))
289
+ data.append(self.query_.sql)
290
+ data.extend([e.sql for e in self.expressions_ or []])
281
291
  self._metadata_hash = hash_data(data)
282
292
  return self._metadata_hash
283
293
 
@@ -461,11 +471,17 @@ def load_audit(
461
471
  if project is not None:
462
472
  extra_kwargs["project"] = project
463
473
 
464
- dialect = meta_fields.pop("dialect", dialect)
474
+ dialect = meta_fields.pop("dialect", dialect) or ""
475
+
476
+ parsable_query = ParsableSql.from_parsed_expression(query, dialect, use_meta_sql=True)
477
+ parsable_statements = [
478
+ ParsableSql.from_parsed_expression(s, dialect, use_meta_sql=True) for s in statements
479
+ ]
480
+
465
481
  try:
466
482
  audit = audit_class(
467
- query=query,
468
- expressions=statements,
483
+ query=parsable_query,
484
+ expressions=parsable_statements,
469
485
  dialect=dialect,
470
486
  **extra_kwargs,
471
487
  **meta_fields,
@@ -435,7 +435,7 @@ class ContextDiff(PydanticModel):
435
435
  return False
436
436
 
437
437
  current, previous = self.modified_snapshots[name]
438
- return current.fingerprint.data_hash != previous.fingerprint.data_hash
438
+ return current.is_directly_modified(previous)
439
439
 
440
440
  def indirectly_modified(self, name: str) -> bool:
441
441
  """Returns whether or not a node was indirectly modified in this context.
@@ -451,10 +451,7 @@ class ContextDiff(PydanticModel):
451
451
  return False
452
452
 
453
453
  current, previous = self.modified_snapshots[name]
454
- return (
455
- current.fingerprint.data_hash == previous.fingerprint.data_hash
456
- and current.fingerprint.parent_data_hash != previous.fingerprint.parent_data_hash
457
- )
454
+ return current.is_indirectly_modified(previous)
458
455
 
459
456
  def metadata_updated(self, name: str) -> bool:
460
457
  """Returns whether or not the given node's metadata has been updated.
@@ -470,7 +467,7 @@ class ContextDiff(PydanticModel):
470
467
  return False
471
468
 
472
469
  current, previous = self.modified_snapshots[name]
473
- return current.fingerprint.metadata_hash != previous.fingerprint.metadata_hash
470
+ return current.is_metadata_updated(previous)
474
471
 
475
472
  def text_diff(self, name: str) -> str:
476
473
  """Finds the difference of a node between the current and remote environment.
@@ -21,7 +21,7 @@ from sqlmesh.utils.metaprogramming import (
21
21
  prepare_env,
22
22
  serialize_env,
23
23
  )
24
- from sqlmesh.utils.pydantic import PydanticModel, ValidationInfo, field_validator
24
+ from sqlmesh.utils.pydantic import PydanticModel, ValidationInfo, field_validator, get_dialect
25
25
 
26
26
  if t.TYPE_CHECKING:
27
27
  from sqlglot.dialects.dialect import DialectType
@@ -616,11 +616,6 @@ def parse_strings_with_macro_refs(value: t.Any, dialect: DialectType) -> t.Any:
616
616
 
617
617
 
618
618
  expression_validator: t.Callable = field_validator(
619
- "query",
620
- "expressions_",
621
- "pre_statements_",
622
- "post_statements_",
623
- "on_virtual_update_",
624
619
  "unique_key",
625
620
  mode="before",
626
621
  check_fields=False,
@@ -663,3 +658,65 @@ depends_on_validator: t.Callable = field_validator(
663
658
  mode="before",
664
659
  check_fields=False,
665
660
  )(depends_on)
661
+
662
+
663
+ class ParsableSql(PydanticModel):
664
+ sql: str
665
+
666
+ _parsed: t.Optional[exp.Expression] = None
667
+ _parsed_dialect: t.Optional[str] = None
668
+
669
+ def parse(self, dialect: str) -> exp.Expression:
670
+ if self._parsed is None or self._parsed_dialect != dialect:
671
+ self._parsed = d.parse_one(self.sql, dialect=dialect)
672
+ self._parsed_dialect = dialect
673
+ return self._parsed
674
+
675
+ @classmethod
676
+ def from_parsed_expression(
677
+ cls, parsed_expression: exp.Expression, dialect: str, use_meta_sql: bool = False
678
+ ) -> ParsableSql:
679
+ sql = (
680
+ parsed_expression.meta.get("sql") or parsed_expression.sql(dialect=dialect)
681
+ if use_meta_sql
682
+ else parsed_expression.sql(dialect=dialect)
683
+ )
684
+ result = cls(sql=sql)
685
+ result._parsed = parsed_expression
686
+ result._parsed_dialect = dialect
687
+ return result
688
+
689
+ @classmethod
690
+ def validator(cls) -> classmethod:
691
+ def _validate_parsable_sql(
692
+ v: t.Any, info: ValidationInfo
693
+ ) -> t.Optional[t.Union[ParsableSql, t.List[ParsableSql]]]:
694
+ if v is None:
695
+ return v
696
+ if isinstance(v, str):
697
+ return ParsableSql(sql=v)
698
+ if isinstance(v, exp.Expression):
699
+ return ParsableSql.from_parsed_expression(
700
+ v, get_dialect(info.data), use_meta_sql=False
701
+ )
702
+ if isinstance(v, list):
703
+ dialect = get_dialect(info.data)
704
+ return [
705
+ ParsableSql(sql=s)
706
+ if isinstance(s, str)
707
+ else ParsableSql.from_parsed_expression(s, dialect, use_meta_sql=False)
708
+ if isinstance(s, exp.Expression)
709
+ else ParsableSql.parse_obj(s)
710
+ for s in v
711
+ ]
712
+ return ParsableSql.parse_obj(v)
713
+
714
+ return field_validator(
715
+ "query_",
716
+ "expressions_",
717
+ "pre_statements_",
718
+ "post_statements_",
719
+ "on_virtual_update_",
720
+ mode="before",
721
+ check_fields=False,
722
+ )(_validate_parsable_sql)
@@ -24,7 +24,7 @@ from sqlmesh.core.audit import Audit, ModelAudit
24
24
  from sqlmesh.core.node import IntervalUnit
25
25
  from sqlmesh.core.macros import MacroRegistry, macro
26
26
  from sqlmesh.core.model.common import (
27
- expression_validator,
27
+ ParsableSql,
28
28
  make_python_env,
29
29
  parse_dependencies,
30
30
  parse_strings_with_macro_refs,
@@ -62,6 +62,7 @@ from sqlmesh.utils.metaprogramming import (
62
62
 
63
63
  if t.TYPE_CHECKING:
64
64
  from sqlglot.dialects.dialect import DialectType
65
+ from sqlmesh.core.node import _Node
65
66
  from sqlmesh.core._typing import Self, TableName, SessionProperties
66
67
  from sqlmesh.core.context import ExecutionContext
67
68
  from sqlmesh.core.engine_adapter import EngineAdapter
@@ -150,21 +151,17 @@ class _Model(ModelMeta, frozen=True):
150
151
  audit_definitions: t.Dict[str, ModelAudit] = {}
151
152
  mapping_schema: t.Dict[str, t.Any] = {}
152
153
  extract_dependencies_from_query: bool = True
154
+ pre_statements_: t.Optional[t.List[ParsableSql]] = Field(default=None, alias="pre_statements")
155
+ post_statements_: t.Optional[t.List[ParsableSql]] = Field(default=None, alias="post_statements")
156
+ on_virtual_update_: t.Optional[t.List[ParsableSql]] = Field(
157
+ default=None, alias="on_virtual_update"
158
+ )
153
159
 
154
160
  _full_depends_on: t.Optional[t.Set[str]] = None
155
161
  _statement_renderer_cache: t.Dict[int, ExpressionRenderer] = {}
162
+ _is_metadata_only_change_cache: t.Dict[int, bool] = {}
156
163
 
157
- pre_statements_: t.Optional[t.List[exp.Expression]] = Field(
158
- default=None, alias="pre_statements"
159
- )
160
- post_statements_: t.Optional[t.List[exp.Expression]] = Field(
161
- default=None, alias="post_statements"
162
- )
163
- on_virtual_update_: t.Optional[t.List[exp.Expression]] = Field(
164
- default=None, alias="on_virtual_update"
165
- )
166
-
167
- _expressions_validator = expression_validator
164
+ _expressions_validator = ParsableSql.validator()
168
165
 
169
166
  def __getstate__(self) -> t.Dict[t.Any, t.Any]:
170
167
  state = super().__getstate__()
@@ -543,15 +540,15 @@ class _Model(ModelMeta, frozen=True):
543
540
 
544
541
  @property
545
542
  def pre_statements(self) -> t.List[exp.Expression]:
546
- return self.pre_statements_ or []
543
+ return self._get_parsed_statements("pre_statements_")
547
544
 
548
545
  @property
549
546
  def post_statements(self) -> t.List[exp.Expression]:
550
- return self.post_statements_ or []
547
+ return self._get_parsed_statements("post_statements_")
551
548
 
552
549
  @property
553
550
  def on_virtual_update(self) -> t.List[exp.Expression]:
554
- return self.on_virtual_update_ or []
551
+ return self._get_parsed_statements("on_virtual_update_")
555
552
 
556
553
  @property
557
554
  def macro_definitions(self) -> t.List[d.MacroDef]:
@@ -562,6 +559,17 @@ class _Model(ModelMeta, frozen=True):
562
559
  if isinstance(s, d.MacroDef)
563
560
  ]
564
561
 
562
+ def _get_parsed_statements(self, attr_name: str) -> t.List[exp.Expression]:
563
+ value = getattr(self, attr_name)
564
+ if not value:
565
+ return []
566
+ result = []
567
+ for v in value:
568
+ parsed = v.parse(self.dialect)
569
+ if not isinstance(parsed, exp.Semicolon):
570
+ result.append(parsed)
571
+ return result
572
+
565
573
  def _render_statements(
566
574
  self,
567
575
  statements: t.Iterable[exp.Expression],
@@ -1025,6 +1033,45 @@ class _Model(ModelMeta, frozen=True):
1025
1033
  """
1026
1034
  raise NotImplementedError
1027
1035
 
1036
+ def is_metadata_only_change(self, other: _Node) -> bool:
1037
+ if self._is_metadata_only_change_cache.get(id(other), None) is not None:
1038
+ return self._is_metadata_only_change_cache[id(other)]
1039
+
1040
+ is_metadata_change = True
1041
+ if (
1042
+ not isinstance(other, _Model)
1043
+ or self.metadata_hash == other.metadata_hash
1044
+ or self._data_hash_values_no_sql != other._data_hash_values_no_sql
1045
+ ):
1046
+ is_metadata_change = False
1047
+ else:
1048
+ this_statements = [
1049
+ s
1050
+ for s in [*self.pre_statements, *self.post_statements]
1051
+ if not self._is_metadata_statement(s)
1052
+ ]
1053
+ other_statements = [
1054
+ s
1055
+ for s in [*other.pre_statements, *other.post_statements]
1056
+ if not other._is_metadata_statement(s)
1057
+ ]
1058
+ if len(this_statements) != len(other_statements):
1059
+ is_metadata_change = False
1060
+ else:
1061
+ for this_statement, other_statement in zip(this_statements, other_statements):
1062
+ this_rendered = (
1063
+ self._statement_renderer(this_statement).render() or this_statement
1064
+ )
1065
+ other_rendered = (
1066
+ other._statement_renderer(other_statement).render() or other_statement
1067
+ )
1068
+ if this_rendered != other_rendered:
1069
+ is_metadata_change = False
1070
+ break
1071
+
1072
+ self._is_metadata_only_change_cache[id(other)] = is_metadata_change
1073
+ return is_metadata_change
1074
+
1028
1075
  @property
1029
1076
  def data_hash(self) -> str:
1030
1077
  """
@@ -1039,6 +1086,20 @@ class _Model(ModelMeta, frozen=True):
1039
1086
 
1040
1087
  @property
1041
1088
  def _data_hash_values(self) -> t.List[str]:
1089
+ return self._data_hash_values_no_sql + self._data_hash_values_sql
1090
+
1091
+ @property
1092
+ def _data_hash_values_sql(self) -> t.List[str]:
1093
+ data = []
1094
+
1095
+ for statements in [self.pre_statements_, self.post_statements_]:
1096
+ for statement in statements or []:
1097
+ data.append(statement.sql)
1098
+
1099
+ return data
1100
+
1101
+ @property
1102
+ def _data_hash_values_no_sql(self) -> t.List[str]:
1042
1103
  data = [
1043
1104
  str( # Exclude metadata only macro funcs
1044
1105
  [(k, v) for k, v in self.sorted_python_env if not v.is_metadata]
@@ -1066,18 +1127,6 @@ class _Model(ModelMeta, frozen=True):
1066
1127
  data.append(key)
1067
1128
  data.append(gen(value))
1068
1129
 
1069
- for statement in (*self.pre_statements, *self.post_statements):
1070
- statement_exprs: t.List[exp.Expression] = []
1071
- if not isinstance(statement, d.MacroDef):
1072
- rendered = self._statement_renderer(statement).render()
1073
- if self._is_metadata_statement(statement):
1074
- continue
1075
- if rendered:
1076
- statement_exprs = rendered
1077
- else:
1078
- statement_exprs = [statement]
1079
- data.extend(gen(e) for e in statement_exprs)
1080
-
1081
1130
  return data # type: ignore
1082
1131
 
1083
1132
  def _audit_metadata_hash_values(self) -> t.List[str]:
@@ -1093,13 +1142,9 @@ class _Model(ModelMeta, frozen=True):
1093
1142
  metadata.append(gen(arg_value))
1094
1143
  else:
1095
1144
  audit = self.audit_definitions[audit_name]
1096
- query = (
1097
- self.render_audit_query(audit, **t.cast(t.Dict[str, t.Any], audit_args))
1098
- or audit.query
1099
- )
1100
1145
  metadata.extend(
1101
1146
  [
1102
- gen(query),
1147
+ audit.query_.sql,
1103
1148
  audit.dialect,
1104
1149
  str(audit.skip),
1105
1150
  str(audit.blocking),
@@ -1170,12 +1215,9 @@ class _Model(ModelMeta, frozen=True):
1170
1215
  if metadata_only_macros:
1171
1216
  additional_metadata.append(str(metadata_only_macros))
1172
1217
 
1173
- for statement in (*self.pre_statements, *self.post_statements):
1174
- if self._is_metadata_statement(statement):
1175
- additional_metadata.append(gen(statement))
1176
-
1177
- for statement in self.on_virtual_update:
1178
- additional_metadata.append(gen(statement))
1218
+ for statements in [self.pre_statements_, self.post_statements_, self.on_virtual_update_]:
1219
+ for statement in statements or []:
1220
+ additional_metadata.append(statement.sql)
1179
1221
 
1180
1222
  return additional_metadata
1181
1223
 
@@ -1274,7 +1316,7 @@ class SqlModel(_Model):
1274
1316
  on_virtual_update: The list of SQL statements to be executed after the virtual update.
1275
1317
  """
1276
1318
 
1277
- query: t.Union[exp.Query, d.JinjaQuery, d.MacroFunc]
1319
+ query_: ParsableSql = Field(alias="query")
1278
1320
  source_type: t.Literal["sql"] = "sql"
1279
1321
 
1280
1322
  _columns_to_types: t.Optional[t.Dict[str, exp.DataType]] = None
@@ -1298,6 +1340,11 @@ class SqlModel(_Model):
1298
1340
  model._full_depends_on = None
1299
1341
  return model
1300
1342
 
1343
+ @property
1344
+ def query(self) -> t.Union[exp.Query, d.JinjaQuery, d.MacroFunc]:
1345
+ parsed_query = self.query_.parse(self.dialect)
1346
+ return t.cast(t.Union[exp.Query, d.JinjaQuery, d.MacroFunc], parsed_query)
1347
+
1301
1348
  def render_query(
1302
1349
  self,
1303
1350
  *,
@@ -1500,6 +1547,24 @@ class SqlModel(_Model):
1500
1547
 
1501
1548
  return False
1502
1549
 
1550
+ def is_metadata_only_change(self, previous: _Node) -> bool:
1551
+ if self._is_metadata_only_change_cache.get(id(previous), None) is not None:
1552
+ return self._is_metadata_only_change_cache[id(previous)]
1553
+
1554
+ if not super().is_metadata_only_change(previous):
1555
+ return False
1556
+
1557
+ if not isinstance(previous, SqlModel):
1558
+ self._is_metadata_only_change_cache[id(previous)] = False
1559
+ return False
1560
+
1561
+ this_rendered_query = self.render_query() or self.query
1562
+ previous_rendered_query = previous.render_query() or previous.query
1563
+ is_metadata_change = this_rendered_query == previous_rendered_query
1564
+
1565
+ self._is_metadata_only_change_cache[id(previous)] = is_metadata_change
1566
+ return is_metadata_change
1567
+
1503
1568
  @cached_property
1504
1569
  def _query_renderer(self) -> QueryRenderer:
1505
1570
  no_quote_identifiers = self.kind.is_view and self.dialect in ("trino", "spark")
@@ -1519,17 +1584,22 @@ class SqlModel(_Model):
1519
1584
  )
1520
1585
 
1521
1586
  @property
1522
- def _data_hash_values(self) -> t.List[str]:
1523
- data = super()._data_hash_values
1587
+ def _data_hash_values_no_sql(self) -> t.List[str]:
1588
+ return [
1589
+ *super()._data_hash_values_no_sql,
1590
+ *self.jinja_macros.data_hash_values,
1591
+ ]
1524
1592
 
1525
- query = self.render_query() or self.query
1526
- data.append(gen(query))
1527
- data.extend(self.jinja_macros.data_hash_values)
1528
- return data
1593
+ @property
1594
+ def _data_hash_values_sql(self) -> t.List[str]:
1595
+ return [
1596
+ *super()._data_hash_values_sql,
1597
+ self.query_.sql,
1598
+ ]
1529
1599
 
1530
1600
  @property
1531
1601
  def _additional_metadata(self) -> t.List[str]:
1532
- return [*super()._additional_metadata, gen(self.query)]
1602
+ return [*super()._additional_metadata, self.query_.sql]
1533
1603
 
1534
1604
  @property
1535
1605
  def violated_rules_for_query(self) -> t.Dict[type[Rule], t.Any]:
@@ -1753,8 +1823,8 @@ class SeedModel(_Model):
1753
1823
  return self.seed.reader(dialect=self.dialect, settings=self.kind.csv_settings)
1754
1824
 
1755
1825
  @property
1756
- def _data_hash_values(self) -> t.List[str]:
1757
- data = super()._data_hash_values
1826
+ def _data_hash_values_no_sql(self) -> t.List[str]:
1827
+ data = super()._data_hash_values_no_sql
1758
1828
  for column_name, column_hash in self.column_hashes.items():
1759
1829
  data.append(column_name)
1760
1830
  data.append(column_hash)
@@ -1847,8 +1917,8 @@ class PythonModel(_Model):
1847
1917
  return None
1848
1918
 
1849
1919
  @property
1850
- def _data_hash_values(self) -> t.List[str]:
1851
- data = super()._data_hash_values
1920
+ def _data_hash_values_no_sql(self) -> t.List[str]:
1921
+ data = super()._data_hash_values_no_sql
1852
1922
  data.append(self.entrypoint)
1853
1923
  return data
1854
1924
 
@@ -2227,6 +2297,7 @@ Learn more at https://sqlmesh.readthedocs.io/en/stable/concepts/models/overview
2227
2297
  variables=variables,
2228
2298
  inline_audits=inline_audits,
2229
2299
  blueprint_variables=blueprint_variables,
2300
+ use_original_sql=True,
2230
2301
  **meta_fields,
2231
2302
  )
2232
2303
 
@@ -2449,6 +2520,7 @@ def _create_model(
2449
2520
  signal_definitions: t.Optional[SignalRegistry] = None,
2450
2521
  variables: t.Optional[t.Dict[str, t.Any]] = None,
2451
2522
  blueprint_variables: t.Optional[t.Dict[str, t.Any]] = None,
2523
+ use_original_sql: bool = False,
2452
2524
  **kwargs: t.Any,
2453
2525
  ) -> Model:
2454
2526
  validate_extra_and_required_fields(
@@ -2482,34 +2554,26 @@ def _create_model(
2482
2554
 
2483
2555
  statements: t.List[t.Union[exp.Expression, t.Tuple[exp.Expression, bool]]] = []
2484
2556
 
2485
- # Merge default pre_statements with model-specific pre_statements
2486
- if "pre_statements" in defaults:
2487
- kwargs["pre_statements"] = [
2488
- exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["pre_statements"]
2489
- ] + kwargs.get("pre_statements", [])
2490
-
2491
- # Merge default post_statements with model-specific post_statements
2492
- if "post_statements" in defaults:
2493
- kwargs["post_statements"] = [
2494
- exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["post_statements"]
2495
- ] + kwargs.get("post_statements", [])
2496
-
2497
- # Merge default on_virtual_update with model-specific on_virtual_update
2498
- if "on_virtual_update" in defaults:
2499
- kwargs["on_virtual_update"] = [
2500
- exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults["on_virtual_update"]
2501
- ] + kwargs.get("on_virtual_update", [])
2502
-
2503
- if "pre_statements" in kwargs:
2504
- statements.extend(kwargs["pre_statements"])
2505
2557
  if "query" in kwargs:
2506
2558
  statements.append(kwargs["query"])
2507
- if "post_statements" in kwargs:
2508
- statements.extend(kwargs["post_statements"])
2559
+ kwargs["query"] = ParsableSql.from_parsed_expression(
2560
+ kwargs["query"], dialect, use_meta_sql=use_original_sql
2561
+ )
2509
2562
 
2510
- # Macros extracted from these statements need to be treated as metadata only
2511
- if "on_virtual_update" in kwargs:
2512
- statements.extend((stmt, True) for stmt in kwargs["on_virtual_update"])
2563
+ # Merge default statements with model-specific statements
2564
+ for statement_field in ["pre_statements", "post_statements", "on_virtual_update"]:
2565
+ if statement_field in defaults:
2566
+ kwargs[statement_field] = [
2567
+ exp.maybe_parse(stmt, dialect=dialect) for stmt in defaults[statement_field]
2568
+ ] + kwargs.get(statement_field, [])
2569
+ if statement_field in kwargs:
2570
+ # Macros extracted from these statements need to be treated as metadata only
2571
+ is_metadata = statement_field == "on_virtual_update"
2572
+ statements.extend((stmt, is_metadata) for stmt in kwargs[statement_field])
2573
+ kwargs[statement_field] = [
2574
+ ParsableSql.from_parsed_expression(stmt, dialect, use_meta_sql=use_original_sql)
2575
+ for stmt in kwargs[statement_field]
2576
+ ]
2513
2577
 
2514
2578
  # This is done to allow variables like @gateway to be used in these properties
2515
2579
  # since rendering shifted from load time to run time.
@@ -307,16 +307,6 @@ class _Node(PydanticModel):
307
307
  """The maximal number of batches that can run concurrently for a backfill."""
308
308
  return None
309
309
 
310
- @property
311
- def data_hash(self) -> str:
312
- """
313
- Computes the data hash for the node.
314
-
315
- Returns:
316
- The data hash for the node.
317
- """
318
- raise NotImplementedError
319
-
320
310
  @property
321
311
  def interval_unit(self) -> IntervalUnit:
322
312
  """Returns the interval unit using which data intervals are computed for this node."""
@@ -332,6 +322,16 @@ class _Node(PydanticModel):
332
322
  def fqn(self) -> str:
333
323
  return self.name
334
324
 
325
+ @property
326
+ def data_hash(self) -> str:
327
+ """
328
+ Computes the data hash for the node.
329
+
330
+ Returns:
331
+ The data hash for the node.
332
+ """
333
+ raise NotImplementedError
334
+
335
335
  @property
336
336
  def metadata_hash(self) -> str:
337
337
  """
@@ -342,6 +342,30 @@ class _Node(PydanticModel):
342
342
  """
343
343
  raise NotImplementedError
344
344
 
345
+ def is_metadata_only_change(self, previous: _Node) -> bool:
346
+ """Determines if this node is a metadata only change in relation to the `previous` node.
347
+
348
+ Args:
349
+ previous: The previous node to compare against.
350
+
351
+ Returns:
352
+ True if this node is a metadata only change, False otherwise.
353
+ """
354
+ return self.data_hash == previous.data_hash and self.metadata_hash != previous.metadata_hash
355
+
356
+ def is_data_change(self, previous: _Node) -> bool:
357
+ """Determines if this node is a data change in relation to the `previous` node.
358
+
359
+ Args:
360
+ previous: The previous node to compare against.
361
+
362
+ Returns:
363
+ True if this node is a data change, False otherwise.
364
+ """
365
+ return (
366
+ self.data_hash != previous.data_hash or self.metadata_hash != previous.metadata_hash
367
+ ) and not self.is_metadata_only_change(previous)
368
+
345
369
  def croniter(self, value: TimeLike) -> CroniterCache:
346
370
  if self._croniter is None:
347
371
  self._croniter = CroniterCache(self.cron, value, tz=self.cron_tz)