sqlmesh 0.196.3.dev4__tar.gz → 0.196.4__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 (1197) hide show
  1. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/config.yml +4 -4
  2. sqlmesh-0.196.4/.github/workflows/release_extension.yaml +44 -0
  3. sqlmesh-0.196.4/.nvmrc +1 -0
  4. sqlmesh-0.196.4/CLAUDE.md +351 -0
  5. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/PKG-INFO +2 -2
  6. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/package.json +4 -0
  7. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/pyproject.toml +1 -1
  8. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/_version.py +2 -2
  9. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cli/main.py +15 -6
  10. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/mssql.py +85 -2
  11. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/definition.py +5 -2
  12. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/rule.py +27 -2
  13. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/rules/builtin.py +25 -2
  14. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/definition.py +1 -0
  15. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/environment.py +18 -14
  16. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/facade.py +0 -4
  17. sqlmesh-0.196.4/sqlmesh/lsp/context.py +346 -0
  18. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/main.py +95 -120
  19. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/PKG-INFO +2 -2
  20. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/SOURCES.txt +48 -42
  21. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/requires.txt +1 -1
  22. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_mssql.py +2 -2
  23. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_model.py +1 -1
  24. sqlmesh-0.196.4/tests/lsp/test_code_actions.py +111 -0
  25. sqlmesh-0.196.4/vscode/bus/src/brand.ts +19 -0
  26. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/ModelColumns.tsx +2 -1
  27. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/ModelLineage.tsx +4 -1
  28. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/help.ts +7 -6
  29. sqlmesh-0.196.4/vscode/react/src/domain/lineage.ts +7 -0
  30. sqlmesh-0.196.4/vscode/react/src/domain/models.ts +43 -0
  31. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/domain/sqlmesh-model.ts +29 -11
  32. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/pages/lineage.tsx +15 -1
  33. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/workers/lineage.ts +3 -2
  34. sqlmesh-0.196.3.dev4/web/client/dist/assets/Audits-DrNQaTQA.js → sqlmesh-0.196.4/web/client/dist/assets/Audits-DKgXravk.js +1 -1
  35. sqlmesh-0.196.3.dev4/web/client/dist/assets/Banner-DsG8aGIL.js → sqlmesh-0.196.4/web/client/dist/assets/Banner-BlNaPns_.js +1 -1
  36. sqlmesh-0.196.3.dev4/web/client/dist/assets/ChevronDownIcon-CpQjfO01.js → sqlmesh-0.196.4/web/client/dist/assets/ChevronDownIcon-MZBJpOO8.js +1 -1
  37. sqlmesh-0.196.3.dev4/web/client/dist/assets/ChevronRightIcon-B-9lnqGr.js → sqlmesh-0.196.4/web/client/dist/assets/ChevronRightIcon-Bdxx50QS.js +1 -1
  38. sqlmesh-0.196.3.dev4/web/client/dist/assets/Content-CSMzf1cU.js → sqlmesh-0.196.4/web/client/dist/assets/Content-ClpOw61F.js +1 -1
  39. sqlmesh-0.196.3.dev4/web/client/dist/assets/Content-vfltDlhj.js → sqlmesh-0.196.4/web/client/dist/assets/Content-DRsp6uQI.js +1 -1
  40. sqlmesh-0.196.3.dev4/web/client/dist/assets/Data-k1Dz6qdS.js → sqlmesh-0.196.4/web/client/dist/assets/Data-91WCokZa.js +1 -1
  41. sqlmesh-0.196.3.dev4/web/client/dist/assets/DataCatalog-DlbWZyBp.js → sqlmesh-0.196.4/web/client/dist/assets/DataCatalog-C63qcucX.js +2 -2
  42. sqlmesh-0.196.3.dev4/web/client/dist/assets/Editor--iBTA9xH.js → sqlmesh-0.196.4/web/client/dist/assets/Editor-DRDwxpI2.js +1 -1
  43. sqlmesh-0.196.3.dev4/web/client/dist/assets/Editor-C2pcRDlN.js → sqlmesh-0.196.4/web/client/dist/assets/Editor-PtL9tfk8.js +1 -1
  44. sqlmesh-0.196.3.dev4/web/client/dist/assets/Errors-CQW3lhsM.js → sqlmesh-0.196.4/web/client/dist/assets/Errors-C-Webrjw.js +1 -1
  45. sqlmesh-0.196.3.dev4/web/client/dist/assets/FileExplorer-IAIPoTxM.js → sqlmesh-0.196.4/web/client/dist/assets/FileExplorer-ylHWQwsm.js +1 -1
  46. sqlmesh-0.196.3.dev4/web/client/dist/assets/Footer-D77vCxKH.js → sqlmesh-0.196.4/web/client/dist/assets/Footer-CasDkGte.js +1 -1
  47. sqlmesh-0.196.3.dev4/web/client/dist/assets/Header-Ccb81kaP.js → sqlmesh-0.196.4/web/client/dist/assets/Header-DyL7LEVP.js +1 -1
  48. sqlmesh-0.196.3.dev4/web/client/dist/assets/Input-D_Fp4W_B.js → sqlmesh-0.196.4/web/client/dist/assets/Input-DZamwNGa.js +1 -1
  49. sqlmesh-0.196.4/web/client/dist/assets/Lineage-BPGCodgf.js +1 -0
  50. sqlmesh-0.196.3.dev4/web/client/dist/assets/ListboxShow-BIPQ-cqE.js → sqlmesh-0.196.4/web/client/dist/assets/ListboxShow-DSFZEE-M.js +1 -1
  51. sqlmesh-0.196.3.dev4/web/client/dist/assets/ModelLineage-BrTZ2lm3.js → sqlmesh-0.196.4/web/client/dist/assets/ModelLineage-BQmZD--B.js +1 -1
  52. sqlmesh-0.196.3.dev4/web/client/dist/assets/Models-B6cHeIlA.js → sqlmesh-0.196.4/web/client/dist/assets/Models-C2AYU-74.js +1 -1
  53. sqlmesh-0.196.3.dev4/web/client/dist/assets/Page-S1ykkm5T.js → sqlmesh-0.196.4/web/client/dist/assets/Page-BlOb3Ql3.js +1 -1
  54. sqlmesh-0.196.3.dev4/web/client/dist/assets/Plan-DCD4m0nD.js → sqlmesh-0.196.4/web/client/dist/assets/Plan-DWeacCNs.js +1 -1
  55. sqlmesh-0.196.3.dev4/web/client/dist/assets/PlusCircleIcon-C40sAC-m.js → sqlmesh-0.196.4/web/client/dist/assets/PlusCircleIcon-DD7nOhwQ.js +1 -1
  56. sqlmesh-0.196.3.dev4/web/client/dist/assets/ReportErrors-CxqgDcYY.js → sqlmesh-0.196.4/web/client/dist/assets/ReportErrors-CH5Vf5lv.js +1 -1
  57. sqlmesh-0.196.3.dev4/web/client/dist/assets/Root-DtUrFfE_.js → sqlmesh-0.196.4/web/client/dist/assets/Root-DZ2xKltj.js +1 -1
  58. sqlmesh-0.196.3.dev4/web/client/dist/assets/SearchList-DoRflby9.js → sqlmesh-0.196.4/web/client/dist/assets/SearchList-BpsOOoGh.js +6 -6
  59. sqlmesh-0.196.3.dev4/web/client/dist/assets/SelectEnvironment-equ86mF1.js → sqlmesh-0.196.4/web/client/dist/assets/SelectEnvironment-DLsh1BMi.js +1 -1
  60. sqlmesh-0.196.3.dev4/web/client/dist/assets/SourceList-DT-sBCAQ.js → sqlmesh-0.196.4/web/client/dist/assets/SourceList-Dg2mc7aY.js +1 -1
  61. sqlmesh-0.196.3.dev4/web/client/dist/assets/SourceListItem-MFS9vpg9.js → sqlmesh-0.196.4/web/client/dist/assets/SourceListItem-2mO71O7W.js +1 -1
  62. sqlmesh-0.196.3.dev4/web/client/dist/assets/SplitPane-D2cB3Qkv.js → sqlmesh-0.196.4/web/client/dist/assets/SplitPane-BbVgMyQB.js +1 -1
  63. sqlmesh-0.196.3.dev4/web/client/dist/assets/Tests-Duzk1K8j.js → sqlmesh-0.196.4/web/client/dist/assets/Tests-LDkS-T5R.js +1 -1
  64. sqlmesh-0.196.3.dev4/web/client/dist/assets/Welcome-BgAHQe0m.js → sqlmesh-0.196.4/web/client/dist/assets/Welcome-C0UCzzcU.js +1 -1
  65. sqlmesh-0.196.4/web/client/dist/assets/context-CGAXyfSr.js +71 -0
  66. sqlmesh-0.196.3.dev4/web/client/dist/assets/context-g_ECqgnp.js → sqlmesh-0.196.4/web/client/dist/assets/context-D4y_v88x.js +1 -1
  67. sqlmesh-0.196.3.dev4/web/client/dist/assets/editor-BddPKujl.js → sqlmesh-0.196.4/web/client/dist/assets/editor-BOTuvmku.js +1 -1
  68. sqlmesh-0.196.3.dev4/web/client/dist/assets/file-DUr_Gx7F.js → sqlmesh-0.196.4/web/client/dist/assets/file-CXPqyzKt.js +1 -1
  69. sqlmesh-0.196.3.dev4/web/client/dist/assets/floating-ui.react-dom-DTKAUIBI.js → sqlmesh-0.196.4/web/client/dist/assets/floating-ui.react-dom-X8vTMPq7.js +1 -1
  70. sqlmesh-0.196.3.dev4/web/client/dist/assets/help-LQUMs6nO.js → sqlmesh-0.196.4/web/client/dist/assets/help-65lcCO6u.js +1 -1
  71. sqlmesh-0.196.3.dev4/web/client/dist/assets/index-BsS6H8XQ.js → sqlmesh-0.196.4/web/client/dist/assets/index-C7dOv_Xt.js +8 -8
  72. sqlmesh-0.196.3.dev4/web/client/dist/assets/index-DvxjegO0.js → sqlmesh-0.196.4/web/client/dist/assets/index-Cf0u2ogu.js +1 -1
  73. sqlmesh-0.196.3.dev4/web/client/dist/assets/plan-DS237yuz.js → sqlmesh-0.196.4/web/client/dist/assets/plan-D5w005YE.js +1 -1
  74. sqlmesh-0.196.3.dev4/web/client/dist/assets/popover-CiiY17g7.js → sqlmesh-0.196.4/web/client/dist/assets/popover-CQm70UjD.js +1 -1
  75. sqlmesh-0.196.3.dev4/web/client/dist/assets/project-DUHOhQT2.js → sqlmesh-0.196.4/web/client/dist/assets/project-CUisbOpA.js +1 -1
  76. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/index.html +1 -1
  77. sqlmesh-0.196.3.dev4/sqlmesh/lsp/context.py +0 -188
  78. sqlmesh-0.196.3.dev4/vscode/react/src/domain/lineage.ts +0 -6
  79. sqlmesh-0.196.3.dev4/web/client/dist/assets/Lineage-BHLfUAmC.js +0 -1
  80. sqlmesh-0.196.3.dev4/web/client/dist/assets/context-CXV8eAaM.js +0 -68
  81. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/continue_config.yml +0 -0
  82. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/get_scm_version.py +0 -0
  83. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/install-prerequisites.sh +0 -0
  84. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/manage-test-db.sh +0 -0
  85. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/test_migration.sh +0 -0
  86. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/update-pypirc.sh +0 -0
  87. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.circleci/wait-for-db.sh +0 -0
  88. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.github/dependabot.yml +0 -0
  89. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.github/workflows/pr.yaml +0 -0
  90. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.gitignore +0 -0
  91. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.pre-commit-config.yaml +0 -0
  92. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.prettierignore +0 -0
  93. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.prettierrc.cjs +0 -0
  94. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/.readthedocs.yaml +0 -0
  95. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/LICENSE +0 -0
  96. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/MANIFEST.in +0 -0
  97. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/Makefile +0 -0
  98. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/README.md +0 -0
  99. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/benchmarks/lsp_render_model_bench.py +0 -0
  100. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/__init__.py +0 -0
  101. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/custom_materializations/custom_materializations/__init__.py +0 -0
  102. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/custom_materializations/custom_materializations/custom_kind.py +0 -0
  103. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/custom_materializations/custom_materializations/full.py +0 -0
  104. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/custom_materializations/pyproject.toml +0 -0
  105. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/audits/.gitkeep +0 -0
  106. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/audits/assert_positive_order_ids.sql +0 -0
  107. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/config.yaml +0 -0
  108. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/constants.py +0 -0
  109. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/data/.keep +0 -0
  110. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/macros/.gitkeep +0 -0
  111. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/macros/__init__.py +0 -0
  112. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/.gitkeep +0 -0
  113. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/full_model.sql +0 -0
  114. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/ibis_full_model_python.py +0 -0
  115. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/ibis_full_model_sql.py +0 -0
  116. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/incremental_model.sql +0 -0
  117. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/models/seed_model.sql +0 -0
  118. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/seeds/.gitkeep +0 -0
  119. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/seeds/seed_data.csv +0 -0
  120. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/ibis/tests/.gitkeep +0 -0
  121. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/audits/.gitkeep +0 -0
  122. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/config.yaml +0 -0
  123. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/linter/user.py +0 -0
  124. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/macros/.gitkeep +0 -0
  125. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/macros/__init__.py +0 -0
  126. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/models/.gitkeep +0 -0
  127. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/models/a.sql +0 -0
  128. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/models/b.sql +0 -0
  129. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_1/tests/.gitkeep +0 -0
  130. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/audits/.gitkeep +0 -0
  131. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/config.yaml +0 -0
  132. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/macros/.gitkeep +0 -0
  133. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/macros/__init__.py +0 -0
  134. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/models/.gitkeep +0 -0
  135. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/models/c.sql +0 -0
  136. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/models/d.sql +0 -0
  137. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/models/e.sql +0 -0
  138. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi/repo_2/tests/.gitkeep +0 -0
  139. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/bronze/config.py +0 -0
  140. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/bronze/dbt_project.yml +0 -0
  141. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/bronze/models/a.sql +0 -0
  142. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/bronze/models/b.sql +0 -0
  143. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/bronze/profiles.yml +0 -0
  144. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/config.py +0 -0
  145. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/dbt_project.yml +0 -0
  146. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/macros/store_schemas.sql +0 -0
  147. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/models/c.sql +0 -0
  148. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/models/d.sql +0 -0
  149. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/models/schema.yml +0 -0
  150. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_dbt/silver/profiles.yml +0 -0
  151. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/config.py +0 -0
  152. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/dbt_project.yml +0 -0
  153. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/macros/round_dollars.sql +0 -0
  154. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/models/c.sql +0 -0
  155. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/models/d.sql +0 -0
  156. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/models/e.sql +0 -0
  157. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/models/schema.yml +0 -0
  158. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/dbt_repo/profiles.yml +0 -0
  159. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/sqlmesh_repo/config.yaml +0 -0
  160. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/sqlmesh_repo/models/a.sql +0 -0
  161. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/multi_hybrid/sqlmesh_repo/models/b.sql +0 -0
  162. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/__init__.py +0 -0
  163. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/audits/assert_item_price_above_zero.sql +0 -0
  164. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/audits/items.sql +0 -0
  165. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/audits/order_items.sql +0 -0
  166. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/audits/raw_demographics.sql +0 -0
  167. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/config.py +0 -0
  168. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/data/.keep +0 -0
  169. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/external_models/model1/model1.yaml +0 -0
  170. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/external_models/model2/model2.yaml +0 -0
  171. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/external_models/prod.yaml +0 -0
  172. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/external_models.yaml +0 -0
  173. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/helper.py +0 -0
  174. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/linter/__init__.py +0 -0
  175. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/linter/user.py +0 -0
  176. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/macros/__init__.py +0 -0
  177. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/macros/macros.py +0 -0
  178. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/macros/macros.sql +0 -0
  179. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/macros/utils.py +0 -0
  180. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/metrics/metrics.sql +0 -0
  181. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/active_customers.sql +0 -0
  182. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/blueprint.sql +0 -0
  183. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/customer_revenue_by_day.sql +0 -0
  184. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/customer_revenue_lifetime.sql +0 -0
  185. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/customers.sql +0 -0
  186. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/disabled.py +0 -0
  187. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/disabled.sql +0 -0
  188. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/items.py +0 -0
  189. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/latest_order.sql +0 -0
  190. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/marketing.sql +0 -0
  191. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/order_items.py +0 -0
  192. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/orders.py +0 -0
  193. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/raw_marketing.py +0 -0
  194. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/top_waiters.sql +0 -0
  195. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/waiter_as_customer_by_day.sql +0 -0
  196. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/waiter_names.sql +0 -0
  197. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/waiter_revenue_by_day.sql +0 -0
  198. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/models/waiters.py +0 -0
  199. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/seeds/waiter_names.csv +0 -0
  200. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/signals/__init__.py +0 -0
  201. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/sqlmesh-requirements.lock +0 -0
  202. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/tests/test_customer_revenue_by_day.yaml +0 -0
  203. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/tests/test_customer_revenue_lifetime.yaml +0 -0
  204. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi/tests/test_order_items.yaml +0 -0
  205. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/.gitignore +0 -0
  206. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/.user.yml +0 -0
  207. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/__init__.py +0 -0
  208. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/analyses/.gitkeep +0 -0
  209. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/config.py +0 -0
  210. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/dbt_project.yml +0 -0
  211. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/macros/incremental.sql +0 -0
  212. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/macros/log_value.sql +0 -0
  213. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/customer_revenue_by_day.sql +0 -0
  214. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/customers.sql +0 -0
  215. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/schema.yml +0 -0
  216. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/top_waiters.sql +0 -0
  217. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/waiter_as_customer_by_day.sql +0 -0
  218. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/waiter_revenue_by_day.sql +0 -0
  219. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/waiter_revenue_by_day_v1.sql +0 -0
  220. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/models/waiters.sql +0 -0
  221. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/analyses/.gitkeep +0 -0
  222. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/dbt_project.yml +0 -0
  223. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/macros/current_engine.sql +0 -0
  224. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/macros/distinct.sql +0 -0
  225. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/models/schema.yml +0 -0
  226. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/seeds/.gitkeep +0 -0
  227. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/snapshots/.gitkeep +0 -0
  228. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/packages/customers/tests/.gitkeep +0 -0
  229. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/profiles.yml +0 -0
  230. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/seeds/items.csv +0 -0
  231. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/seeds/order_items.csv +0 -0
  232. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/seeds/orders.csv +0 -0
  233. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/seeds/properties.yml +0 -0
  234. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/seeds/waiter_names.csv +0 -0
  235. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/snapshots/.gitkeep +0 -0
  236. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/tests/.gitkeep +0 -0
  237. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/tests/assert_item_price_above_zero.sql +0 -0
  238. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dbt/tests/generic/less_than_amount.sql +0 -0
  239. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/sushi_dlt/sushi_pipeline.py +0 -0
  240. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/__init__.py +0 -0
  241. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/audits/db/order_f.sql +0 -0
  242. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/config.yaml +0 -0
  243. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/macros/__init__.py +0 -0
  244. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/macros/macros.py +0 -0
  245. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/__init__.py +0 -0
  246. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/db/customer_d.sql +0 -0
  247. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/db/item_d.sql +0 -0
  248. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/db/order_f.py +0 -0
  249. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/db/order_item_f.sql +0 -0
  250. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/src/__init__.py +0 -0
  251. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/src/customer_details.py +0 -0
  252. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/src/menu_item_details.sql +0 -0
  253. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/src/order_item_details.py +0 -0
  254. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/models/src/shared.py +0 -0
  255. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/seeds/src/menu_item_details.csv +0 -0
  256. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/tests/test_customer_d.yaml +0 -0
  257. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/examples/wursthall/tests/test_order_item_f.yaml +0 -0
  258. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/mkdocs.yml +0 -0
  259. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/pdoc/cli.py +0 -0
  260. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/pdoc/templates/module.html.jinja2 +0 -0
  261. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/pnpm-lock.yaml +0 -0
  262. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/pnpm-workspace.yaml +0 -0
  263. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/setup.cfg +0 -0
  264. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/.airflowignore +0 -0
  265. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/__init__.py +0 -0
  266. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cicd/__init__.py +0 -0
  267. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cicd/bot.py +0 -0
  268. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cicd/config.py +0 -0
  269. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cli/__init__.py +0 -0
  270. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cli/options.py +0 -0
  271. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/cli/project_init.py +0 -0
  272. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/__init__.py +0 -0
  273. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/_typing.py +0 -0
  274. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/analytics/__init__.py +0 -0
  275. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/analytics/collector.py +0 -0
  276. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/analytics/dispatcher.py +0 -0
  277. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/audit/__init__.py +0 -0
  278. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/audit/builtin.py +0 -0
  279. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/audit/definition.py +0 -0
  280. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/__init__.py +0 -0
  281. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/base.py +0 -0
  282. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/categorizer.py +0 -0
  283. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/common.py +0 -0
  284. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/connection.py +0 -0
  285. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/feature_flag.py +0 -0
  286. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/format.py +0 -0
  287. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/gateway.py +0 -0
  288. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/janitor.py +0 -0
  289. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/linter.py +0 -0
  290. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/loader.py +0 -0
  291. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/migration.py +0 -0
  292. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/model.py +0 -0
  293. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/naming.py +0 -0
  294. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/plan.py +0 -0
  295. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/root.py +0 -0
  296. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/run.py +0 -0
  297. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/scheduler.py +0 -0
  298. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/config/ui.py +0 -0
  299. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/console.py +0 -0
  300. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/constants.py +0 -0
  301. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/context.py +0 -0
  302. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/context_diff.py +0 -0
  303. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/dialect.py +0 -0
  304. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/__init__.py +0 -0
  305. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/_typing.py +0 -0
  306. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/athena.py +0 -0
  307. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/base.py +0 -0
  308. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/base_postgres.py +0 -0
  309. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/bigquery.py +0 -0
  310. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/clickhouse.py +0 -0
  311. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/databricks.py +0 -0
  312. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/duckdb.py +0 -0
  313. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/mixins.py +0 -0
  314. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/mysql.py +0 -0
  315. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/postgres.py +0 -0
  316. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/redshift.py +0 -0
  317. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/risingwave.py +0 -0
  318. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/shared.py +0 -0
  319. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/snowflake.py +0 -0
  320. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/spark.py +0 -0
  321. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/engine_adapter/trino.py +0 -0
  322. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/environment.py +0 -0
  323. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/lineage.py +0 -0
  324. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/__init__.py +0 -0
  325. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/helpers.py +0 -0
  326. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/linter/rules/__init__.py +0 -0
  327. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/loader.py +0 -0
  328. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/macros.py +0 -0
  329. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/metric/__init__.py +0 -0
  330. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/metric/definition.py +0 -0
  331. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/metric/rewriter.py +0 -0
  332. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/__init__.py +0 -0
  333. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/cache.py +0 -0
  334. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/common.py +0 -0
  335. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/decorator.py +0 -0
  336. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/kind.py +0 -0
  337. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/meta.py +0 -0
  338. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/schema.py +0 -0
  339. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/model/seed.py +0 -0
  340. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/node.py +0 -0
  341. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/notification_target.py +0 -0
  342. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/__init__.py +0 -0
  343. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/builder.py +0 -0
  344. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/definition.py +0 -0
  345. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/evaluator.py +0 -0
  346. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/explainer.py +0 -0
  347. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/plan/stages.py +0 -0
  348. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/reference.py +0 -0
  349. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/renderer.py +0 -0
  350. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/scheduler.py +0 -0
  351. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/schema_diff.py +0 -0
  352. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/schema_loader.py +0 -0
  353. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/selector.py +0 -0
  354. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/signal.py +0 -0
  355. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/snapshot/__init__.py +0 -0
  356. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/snapshot/cache.py +0 -0
  357. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/snapshot/categorizer.py +0 -0
  358. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/snapshot/definition.py +0 -0
  359. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/snapshot/evaluator.py +0 -0
  360. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/__init__.py +0 -0
  361. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/base.py +0 -0
  362. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/cache.py +0 -0
  363. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/common.py +0 -0
  364. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/__init__.py +0 -0
  365. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/interval.py +0 -0
  366. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/migrator.py +0 -0
  367. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/snapshot.py +0 -0
  368. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/utils.py +0 -0
  369. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/db/version.py +0 -0
  370. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/state_sync/export_import.py +0 -0
  371. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/table_diff.py +0 -0
  372. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/__init__.py +0 -0
  373. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/context.py +0 -0
  374. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/definition.py +0 -0
  375. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/discovery.py +0 -0
  376. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/result.py +0 -0
  377. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/test/runner.py +0 -0
  378. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/core/user.py +0 -0
  379. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/__init__.py +0 -0
  380. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/adapter.py +0 -0
  381. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/basemodel.py +0 -0
  382. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/builtin.py +0 -0
  383. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/column.py +0 -0
  384. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/common.py +0 -0
  385. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/context.py +0 -0
  386. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/__init__.py +0 -0
  387. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/common.py +0 -0
  388. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/console.py +0 -0
  389. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/convert.py +0 -0
  390. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/jinja.py +0 -0
  391. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/jinja_builtins.py +0 -0
  392. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/converter/jinja_transforms.py +0 -0
  393. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/loader.py +0 -0
  394. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/manifest.py +0 -0
  395. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/model.py +0 -0
  396. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/package.py +0 -0
  397. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/profile.py +0 -0
  398. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/project.py +0 -0
  399. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/relation.py +0 -0
  400. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/seed.py +0 -0
  401. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/source.py +0 -0
  402. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/target.py +0 -0
  403. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/test.py +0 -0
  404. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/dbt/util.py +0 -0
  405. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/__init__.py +0 -0
  406. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/commands.py +0 -0
  407. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/spark/__init__.py +0 -0
  408. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/spark/app.py +0 -0
  409. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/spark/db_api/__init__.py +0 -0
  410. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/spark/db_api/errors.py +0 -0
  411. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/engines/spark/db_api/spark_session.py +0 -0
  412. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/__init__.py +0 -0
  413. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/dlt.py +0 -0
  414. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/github/__init__.py +0 -0
  415. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/github/cicd/__init__.py +0 -0
  416. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/github/cicd/command.py +0 -0
  417. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/github/cicd/config.py +0 -0
  418. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/github/cicd/controller.py +0 -0
  419. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/llm.py +0 -0
  420. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/integrations/slack.py +0 -0
  421. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/api.py +0 -0
  422. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/completions.py +0 -0
  423. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/custom.py +0 -0
  424. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/description.py +0 -0
  425. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/helpers.py +0 -0
  426. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/hints.py +0 -0
  427. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/reference.py +0 -0
  428. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/rename.py +0 -0
  429. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/lsp/uri.py +0 -0
  430. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/magics.py +0 -0
  431. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/__init__.py +0 -0
  432. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0001_init.py +0 -0
  433. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0002_remove_identify.py +0 -0
  434. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0003_move_batch_size.py +0 -0
  435. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0004_environmnent_add_finalized_at.py +0 -0
  436. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0005_create_seed_table.py +0 -0
  437. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0006_change_seed_hash.py +0 -0
  438. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0007_env_table_info_to_kind.py +0 -0
  439. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0008_create_intervals_table.py +0 -0
  440. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0009_remove_pre_post_hooks.py +0 -0
  441. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0010_seed_hash_batch_size.py +0 -0
  442. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0011_add_model_kind_name.py +0 -0
  443. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0012_update_jinja_expressions.py +0 -0
  444. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0013_serde_using_model_dialects.py +0 -0
  445. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0014_fix_dev_intervals.py +0 -0
  446. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0015_environment_add_promoted_snapshot_ids.py +0 -0
  447. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0016_fix_windows_path.py +0 -0
  448. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0017_fix_windows_seed_path.py +0 -0
  449. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0018_rename_snapshot_model_to_node.py +0 -0
  450. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0019_add_env_suffix_target.py +0 -0
  451. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0020_remove_redundant_attributes_from_dbt_models.py +0 -0
  452. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0021_fix_table_properties.py +0 -0
  453. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0022_move_project_to_model.py +0 -0
  454. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0023_fix_added_models_with_forward_only_parents.py +0 -0
  455. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0024_replace_model_kind_name_enum_with_value.py +0 -0
  456. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0025_fix_intervals_and_missing_change_category.py +0 -0
  457. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0026_remove_dialect_from_seed.py +0 -0
  458. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0027_minute_interval_to_five.py +0 -0
  459. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0028_add_plan_dags_table.py +0 -0
  460. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0029_generate_schema_types_using_dialect.py +0 -0
  461. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0030_update_unrestorable_snapshots.py +0 -0
  462. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0031_remove_dbt_target_fields.py +0 -0
  463. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0032_add_sqlmesh_version.py +0 -0
  464. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0033_mysql_fix_blob_text_type.py +0 -0
  465. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0034_add_default_catalog.py +0 -0
  466. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0035_add_catalog_name_override.py +0 -0
  467. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0036_delete_plan_dags_bug_fix.py +0 -0
  468. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0037_remove_dbt_is_incremental_macro.py +0 -0
  469. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0038_add_expiration_ts_to_snapshot.py +0 -0
  470. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0039_include_environment_in_plan_dag_spec.py +0 -0
  471. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0040_add_previous_finalized_snapshots.py +0 -0
  472. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0041_remove_hash_raw_query_attribute.py +0 -0
  473. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0042_trim_indirect_versions.py +0 -0
  474. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0043_fix_remove_obsolete_attributes_in_plan_dags.py +0 -0
  475. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0044_quote_identifiers_in_model_attributes.py +0 -0
  476. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0045_move_gateway_variable.py +0 -0
  477. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0046_add_batch_concurrency.py +0 -0
  478. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0047_change_scd_string_to_column.py +0 -0
  479. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0048_drop_indirect_versions.py +0 -0
  480. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0049_replace_identifier_with_version_in_seeds_table.py +0 -0
  481. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0050_drop_seeds_table.py +0 -0
  482. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0051_rename_column_descriptions.py +0 -0
  483. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0052_add_normalize_name_in_environment_naming_info.py +0 -0
  484. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0053_custom_model_kind_extra_attributes.py +0 -0
  485. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0054_fix_trailing_comments.py +0 -0
  486. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0055_add_updated_ts_unpaused_ts_ttl_ms_unrestorable_to_snapshot.py +0 -0
  487. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0056_restore_table_indexes.py +0 -0
  488. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0057_add_table_format.py +0 -0
  489. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0058_add_requirements.py +0 -0
  490. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0059_add_physical_version.py +0 -0
  491. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0060_move_audits_to_model.py +0 -0
  492. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0061_mysql_fix_blob_text_type.py +0 -0
  493. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0062_add_model_gateway.py +0 -0
  494. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0063_change_signals.py +0 -0
  495. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0064_join_when_matched_strings.py +0 -0
  496. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0065_add_model_optimize.py +0 -0
  497. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0066_add_auto_restatements.py +0 -0
  498. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0067_add_tsql_date_full_precision.py +0 -0
  499. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0068_include_unrendered_query_in_metadata_hash.py +0 -0
  500. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0069_update_dev_table_suffix.py +0 -0
  501. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0070_include_grains_in_metadata_hash.py +0 -0
  502. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0071_add_dev_version_to_intervals.py +0 -0
  503. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0072_add_environment_statements.py +0 -0
  504. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0073_remove_symbolic_disable_restatement.py +0 -0
  505. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0074_add_partition_by_time_column_property.py +0 -0
  506. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0075_remove_validate_query.py +0 -0
  507. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0076_add_cron_tz.py +0 -0
  508. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0077_fix_column_type_hash_calculation.py +0 -0
  509. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0078_warn_if_non_migratable_python_env.py +0 -0
  510. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0079_add_gateway_managed_property.py +0 -0
  511. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0080_add_batch_size_to_scd_type_2_models.py +0 -0
  512. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0081_update_partitioned_by.py +0 -0
  513. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py +0 -0
  514. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py +0 -0
  515. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/py.typed +0 -0
  516. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/schedulers/__init__.py +0 -0
  517. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/__init__.py +0 -0
  518. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/aws.py +0 -0
  519. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/cache.py +0 -0
  520. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/concurrency.py +0 -0
  521. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/config.py +0 -0
  522. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/connection_pool.py +0 -0
  523. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/conversions.py +0 -0
  524. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/cron.py +0 -0
  525. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/dag.py +0 -0
  526. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/date.py +0 -0
  527. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/errors.py +0 -0
  528. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/git.py +0 -0
  529. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/hashing.py +0 -0
  530. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/jinja.py +0 -0
  531. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/metaprogramming.py +0 -0
  532. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/migration.py +0 -0
  533. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/pandas.py +0 -0
  534. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/process.py +0 -0
  535. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/pydantic.py +0 -0
  536. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/rich.py +0 -0
  537. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/windows.py +0 -0
  538. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh/utils/yaml.py +0 -0
  539. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/dependency_links.txt +0 -0
  540. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/entry_points.txt +0 -0
  541. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/sqlmesh.egg-info/top_level.txt +0 -0
  542. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/.gitignore +0 -0
  543. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/__init__.py +0 -0
  544. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/cli/__init__.py +0 -0
  545. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/cli/test_cli.py +0 -0
  546. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/cli/test_integration_cli.py +0 -0
  547. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/conftest.py +0 -0
  548. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/__init__.py +0 -0
  549. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/analytics/__init__.py +0 -0
  550. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/analytics/test_collector.py +0 -0
  551. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/analytics/test_dispatcher.py +0 -0
  552. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/__init__.py +0 -0
  553. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/__init__.py +0 -0
  554. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/config.yaml +0 -0
  555. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/conftest.py +0 -0
  556. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/_common-hive.yaml +0 -0
  557. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/clickhouse/config.xml +0 -0
  558. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/clickhouse/keeper.xml +0 -0
  559. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.clickhouse.yaml +0 -0
  560. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.mssql.yaml +0 -0
  561. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.mysql.yaml +0 -0
  562. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.postgres.yaml +0 -0
  563. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.risingwave.yaml +0 -0
  564. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.spark.yaml +0 -0
  565. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/compose.trino.yaml +0 -0
  566. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/init-metastore-db.sql +0 -0
  567. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/spark/Dockerfile +0 -0
  568. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/spark/conf/hive-site.xml +0 -0
  569. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/spark/conf/spark-defaults.conf +0 -0
  570. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake.properties +0 -0
  571. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_delta.properties +0 -0
  572. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_iceberg.properties +0 -0
  573. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/trino/catalog/datalake_nessie.properties +0 -0
  574. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/docker/trino/catalog/testing.properties +0 -0
  575. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration.py +0 -0
  576. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_athena.py +0 -0
  577. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_bigquery.py +0 -0
  578. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_clickhouse.py +0 -0
  579. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_duckdb.py +0 -0
  580. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_postgres.py +0 -0
  581. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_redshift.py +0 -0
  582. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_snowflake.py +0 -0
  583. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/integration/test_integration_trino.py +0 -0
  584. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_athena.py +0 -0
  585. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_base.py +0 -0
  586. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_base_postgres.py +0 -0
  587. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_bigquery.py +0 -0
  588. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_clickhouse.py +0 -0
  589. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_databricks.py +0 -0
  590. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_duckdb.py +0 -0
  591. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_mixins.py +0 -0
  592. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_mysql.py +0 -0
  593. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_postgres.py +0 -0
  594. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_redshift.py +0 -0
  595. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_risingwave.py +0 -0
  596. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_snowflake.py +0 -0
  597. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_spark.py +0 -0
  598. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/engine_adapter/test_trino.py +0 -0
  599. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/metric/__init__.py +0 -0
  600. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/metric/test_metric.py +0 -0
  601. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/metric/test_rewriter.py +0 -0
  602. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/state_sync/test_export_import.py +0 -0
  603. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/state_sync/test_state_sync.py +0 -0
  604. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_audit.py +0 -0
  605. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_config.py +0 -0
  606. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_connection_config.py +0 -0
  607. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_context.py +0 -0
  608. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_dialect.py +0 -0
  609. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_environment.py +0 -0
  610. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_format.py +0 -0
  611. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_integration.py +0 -0
  612. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_lineage.py +0 -0
  613. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_loader.py +0 -0
  614. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_macros.py +0 -0
  615. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_notification_target.py +0 -0
  616. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_plan.py +0 -0
  617. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_plan_evaluator.py +0 -0
  618. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_plan_stages.py +0 -0
  619. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_reference.py +0 -0
  620. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_rule.py +0 -0
  621. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_scheduler.py +0 -0
  622. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_schema_diff.py +0 -0
  623. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_schema_loader.py +0 -0
  624. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_seed.py +0 -0
  625. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_selector.py +0 -0
  626. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_snapshot.py +0 -0
  627. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_snapshot_evaluator.py +0 -0
  628. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_table_diff.py +0 -0
  629. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/core/test_test.py +0 -0
  630. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/__init__.py +0 -0
  631. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/conftest.py +0 -0
  632. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/conftest.py +0 -0
  633. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/.gitignore +0 -0
  634. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/analyses/.gitkeep +0 -0
  635. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/config.py +0 -0
  636. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/dbt_project.yml +0 -0
  637. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/macros/.gitkeep +0 -0
  638. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/models/.gitkeep +0 -0
  639. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/models/sources.yml +0 -0
  640. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/packages/.gitkeep +0 -0
  641. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/profiles.yml +0 -0
  642. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/seeds/.gitkeep +0 -0
  643. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/seeds/items.csv +0 -0
  644. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/seeds/properties.yml +0 -0
  645. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/snapshots/.gitkeep +0 -0
  646. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/empty_dbt_project/tests/.gitkeep +0 -0
  647. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/jinja_nested_if.sql +0 -0
  648. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/macro_dbt_incremental.sql +0 -0
  649. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/macro_func_with_params.sql +0 -0
  650. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/fixtures/model_query_incremental.sql +0 -0
  651. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/test_convert.py +0 -0
  652. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/test_jinja.py +0 -0
  653. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/converter/test_jinja_transforms.py +0 -0
  654. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_adapter.py +0 -0
  655. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_config.py +0 -0
  656. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_integration.py +0 -0
  657. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_manifest.py +0 -0
  658. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_model.py +0 -0
  659. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_test.py +0 -0
  660. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_transformation.py +0 -0
  661. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/dbt/test_util.py +0 -0
  662. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/engines/__init__.py +0 -0
  663. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/engines/spark/__init__.py +0 -0
  664. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/engines/spark/conftest.py +0 -0
  665. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/engines/spark/test_db_api.py +0 -0
  666. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/__init__.py +0 -0
  667. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/analyses/.gitkeep +0 -0
  668. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/config.py +0 -0
  669. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/dbt_project.yml +0 -0
  670. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/logs/dbt.log.legacy +0 -0
  671. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/macros/create_tables.sql +0 -0
  672. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/macros/incremental.sql +0 -0
  673. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/macros/log_value.sql +0 -0
  674. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/macros/test_dependencies.sql +0 -0
  675. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/disabled_model.sql +0 -0
  676. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/schema.yml +0 -0
  677. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/simple_model_a.sql +0 -0
  678. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/simple_model_b.sql +0 -0
  679. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/top_waiters.sql +0 -0
  680. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/waiter_as_customer_by_day.sql +0 -0
  681. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day.sql +0 -0
  682. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/waiter_revenue_by_day_v1.sql +0 -0
  683. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/models/waiters.sql +0 -0
  684. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/analyses/.gitkeep +0 -0
  685. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/dbt_project.yml +0 -0
  686. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/current_engine.sql +0 -0
  687. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/distinct.sql +0 -0
  688. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/macros/packaged_tables.sql +0 -0
  689. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/models/customer_revenue_by_day.sql +0 -0
  690. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/models/customers.sql +0 -0
  691. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/models/schema.yml +0 -0
  692. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/seeds/.gitkeep +0 -0
  693. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/snapshots/.gitkeep +0 -0
  694. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages/customers/tests/.gitkeep +0 -0
  695. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/packages.yml +0 -0
  696. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/profiles.yml +0 -0
  697. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/schema.yaml +0 -0
  698. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/seed_sources.py +0 -0
  699. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/seeds/properties.yml +0 -0
  700. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/seeds/waiter_names.csv +0 -0
  701. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/snapshots/.gitkeep +0 -0
  702. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/snapshots/items_check_snapshot.sql +0 -0
  703. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/snapshots/items_no_hard_delete_snapshot.sql +0 -0
  704. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/snapshots/items_snapshot.sql +0 -0
  705. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/source_data/items.csv +0 -0
  706. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/source_data/order_items.csv +0 -0
  707. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/source_data/orders.csv +0 -0
  708. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/dbt/sushi_test/tests/.gitkeep +0 -0
  709. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_closed.json +0 -0
  710. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_command_deploy.json +0 -0
  711. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_comment.json +0 -0
  712. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_review_submit.json +0 -0
  713. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_synchronized.json +0 -0
  714. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/github/pull_request_synchronized_enterprise.json +0 -0
  715. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/migrations/environments.json +0 -0
  716. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/migrations/snapshots.json +0 -0
  717. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/audits/.gitkeep +0 -0
  718. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/macros/.gitkeep +0 -0
  719. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/macros/__init__.py +0 -0
  720. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/models/.gitkeep +0 -0
  721. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/models/first_schema/model_one.sql +0 -0
  722. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/models/first_schema/model_two.sql +0 -0
  723. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/models/second_schema/model_one.sql +0 -0
  724. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/models/second_schema/model_two.sql +0 -0
  725. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/multi_virtual_layer/tests/.gitkeep +0 -0
  726. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/snowflake/rsa_key_no_pass.p8 +0 -0
  727. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/fixtures/snowflake/rsa_key_pass.p8 +0 -0
  728. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/__init__.py +0 -0
  729. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/__init__.py +0 -0
  730. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/__init__.py +0 -0
  731. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/conftest.py +0 -0
  732. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/test_config.py +0 -0
  733. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/test_github_commands.py +0 -0
  734. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/test_github_controller.py +0 -0
  735. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/test_github_event.py +0 -0
  736. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/github/cicd/test_integration.py +0 -0
  737. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/jupyter/__init__.py +0 -0
  738. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/jupyter/example_outputs.ipynb +0 -0
  739. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/integrations/jupyter/test_magics.py +0 -0
  740. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/conftest.py +0 -0
  741. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_completions.py +0 -0
  742. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_context.py +0 -0
  743. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_description.py +0 -0
  744. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_diagnostics.py +0 -0
  745. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_document_highlight.py +0 -0
  746. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_hints.py +0 -0
  747. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference.py +0 -0
  748. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_cte.py +0 -0
  749. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_cte_find_all.py +0 -0
  750. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_external_model.py +0 -0
  751. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_macro.py +0 -0
  752. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_macro_find_all.py +0 -0
  753. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_macro_multi.py +0 -0
  754. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_model_column_prefix.py +0 -0
  755. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_reference_model_find_all.py +0 -0
  756. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/lsp/test_rename_cte.py +0 -0
  757. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/pyproject.toml +0 -0
  758. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/schedulers/__init__.py +0 -0
  759. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/setup.py +0 -0
  760. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/test_forking.py +0 -0
  761. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/__init__.py +0 -0
  762. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/pandas.py +0 -0
  763. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_aws.py +0 -0
  764. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_cache.py +0 -0
  765. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_concurrency.py +0 -0
  766. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_connection_pool.py +0 -0
  767. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_dag.py +0 -0
  768. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_date.py +0 -0
  769. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_filesystem.py +0 -0
  770. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_filters.py +0 -0
  771. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_helpers.py +0 -0
  772. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_jinja.py +0 -0
  773. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_metaprogramming.py +0 -0
  774. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_pydantic.py +0 -0
  775. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/utils/test_yaml.py +0 -0
  776. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/web/__init__.py +0 -0
  777. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/web/conftest.py +0 -0
  778. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/web/test_lineage.py +0 -0
  779. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tests/web/test_main.py +0 -0
  780. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tooling/README.md +0 -0
  781. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tooling/vscode/extensions.json +0 -0
  782. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tooling/vscode/launch.json +0 -0
  783. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tooling/vscode/settings.json +0 -0
  784. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/tooling/vscode/tasks.json +0 -0
  785. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/bus/.gitignore +0 -0
  786. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/bus/package.json +0 -0
  787. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/bus/src/callbacks.ts +0 -0
  788. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/bus/src/result.ts +0 -0
  789. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/bus/tsconfig.json +0 -0
  790. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/.gitignore +0 -0
  791. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/.vscodeignore +0 -0
  792. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/CHANGELOG.md +0 -0
  793. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/E2E_TESTING.md +0 -0
  794. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/README.md +0 -0
  795. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/assets/logo.png +0 -0
  796. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/assets/logo.svg +0 -0
  797. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/esbuild.js +0 -0
  798. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/eslint.config.mjs +0 -0
  799. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/package.json +0 -0
  800. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/playwright.config.ts +0 -0
  801. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/scripts/fetch-vscode.ts +0 -0
  802. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/auth/auth.ts +0 -0
  803. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/commands.test.ts +0 -0
  804. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/format.ts +0 -0
  805. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/printEnvironment.ts +0 -0
  806. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/renderModel.ts +0 -0
  807. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/signin.ts +0 -0
  808. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/signinSpecifyFlow.ts +0 -0
  809. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/signout.ts +0 -0
  810. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/commands/stop.ts +0 -0
  811. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/completion/completion.ts +0 -0
  812. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/extension.ts +0 -0
  813. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/lsp/custom.ts +0 -0
  814. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/lsp/lsp.ts +0 -0
  815. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/providers/renderedModelProvider.ts +0 -0
  816. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/constants.ts +0 -0
  817. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/log.ts +0 -0
  818. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/python.ts +0 -0
  819. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/settings.ts +0 -0
  820. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/utilities.ts +0 -0
  821. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/common/vscodeapi.ts +0 -0
  822. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/config.ts +0 -0
  823. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/errors.ts +0 -0
  824. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/exec.ts +0 -0
  825. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/isCodespaces.ts +0 -0
  826. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/isWindows.ts +0 -0
  827. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/python.ts +0 -0
  828. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/semver.test.ts +0 -0
  829. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/semver.ts +0 -0
  830. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/sleep.ts +0 -0
  831. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/utilities/sqlmesh/sqlmesh.ts +0 -0
  832. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/src/webviews/lineagePanel.ts +0 -0
  833. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/bad_setup.spec.ts +0 -0
  834. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/broken_project.spec.ts +0 -0
  835. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/completions.spec.ts +0 -0
  836. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/diagnostics.spec.ts +0 -0
  837. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/find_references.spec.ts +0 -0
  838. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/format.spec.ts +0 -0
  839. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/go_to_definition.spec.ts +0 -0
  840. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/hints.spec.ts +0 -0
  841. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/lineage.spec.ts +0 -0
  842. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/python_env.spec.ts +0 -0
  843. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/rename_cte.spec.ts +0 -0
  844. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/render.spec.ts +0 -0
  845. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/stop.spec.ts +0 -0
  846. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud/README.md +0 -0
  847. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud/mock_tcloud/__init__.py +0 -0
  848. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud/mock_tcloud/cli.py +0 -0
  849. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud/pyproject.toml +0 -0
  850. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud.spec.ts +0 -0
  851. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/tcloud_utils.ts +0 -0
  852. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tests/utils.ts +0 -0
  853. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tsconfig.build.json +0 -0
  854. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tsconfig.json +0 -0
  855. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/tsconfig.test.json +0 -0
  856. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/extension/vitest.config.ts +0 -0
  857. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/openapi.json +0 -0
  858. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/.cta.json +0 -0
  859. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/.gitignore +0 -0
  860. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/index.html +0 -0
  861. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/orval.config.ts +0 -0
  862. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/package.json +0 -0
  863. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/App.css +0 -0
  864. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/api/client.ts +0 -0
  865. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/api/index.ts +0 -0
  866. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/api/instance.ts +0 -0
  867. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/button/Button.tsx +0 -0
  868. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/divider/Divider.tsx +0 -0
  869. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/Graph.css +0 -0
  870. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/ModelLineageDetails.tsx +0 -0
  871. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/ModelNode.tsx +0 -0
  872. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/ModelNodeHeaderHandles.tsx +0 -0
  873. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/context.tsx +0 -0
  874. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/graph/types.ts +0 -0
  875. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/input/Input.tsx +0 -0
  876. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/input/InputToggle.tsx +0 -0
  877. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/input/Selector.tsx +0 -0
  878. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/input/Textfield.tsx +0 -0
  879. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/listbox/ListboxShow.tsx +0 -0
  880. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/loading/Loading.tsx +0 -0
  881. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/loading/LoadingSegment.tsx +0 -0
  882. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/loading/LoadingStatus.tsx +0 -0
  883. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/logo/Spinner.tsx +0 -0
  884. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/logo/SqlMesh.tsx +0 -0
  885. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/logo/Tobiko.tsx +0 -0
  886. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/sourceList/SourceList.tsx +0 -0
  887. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/sourceList/SourceListItem.tsx +0 -0
  888. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components/title/Title.tsx +0 -0
  889. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components-additional/additional-components.ts +0 -0
  890. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/components-additional/tbk-components.js +0 -0
  891. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/domain/initial.ts +0 -0
  892. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/hooks/eventBus.tsx +0 -0
  893. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/hooks/vscode.ts +0 -0
  894. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/main.tsx +0 -0
  895. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/reportWebVitals.ts +0 -0
  896. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/routeTree.gen.ts +0 -0
  897. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/routes/__root.tsx +0 -0
  898. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/routes/index.tsx +0 -0
  899. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/routes/lineage.tsx +0 -0
  900. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/style/variants.ts +0 -0
  901. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/styles.css +0 -0
  902. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/utils/index.spec.ts +0 -0
  903. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/utils/index.ts +0 -0
  904. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/utils/receiveEvents.ts +0 -0
  905. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/utils/rpc.ts +0 -0
  906. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/utils/vscodeapi.ts +0 -0
  907. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/src/workers/index.ts +0 -0
  908. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/tailwind.config.cjs +0 -0
  909. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/tsconfig.json +0 -0
  910. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/vscode/react/vite.config.js +0 -0
  911. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/.dockerignore +0 -0
  912. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/Dockerfile.api +0 -0
  913. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/Dockerfile.app +0 -0
  914. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/__init__.py +0 -0
  915. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/.gitignore +0 -0
  916. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +0 -0
  917. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/assets/help-6Q7f7fjd.js +0 -0
  918. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/css/base.css +0 -0
  919. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/css/design.css +0 -0
  920. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/favicons/favicon.svg +0 -0
  921. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
  922. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/OFL.txt +0 -0
  923. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/README.txt +0 -0
  924. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Black.ttf +0 -0
  925. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Bold.ttf +0 -0
  926. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
  927. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
  928. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Light.ttf +0 -0
  929. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Medium.ttf +0 -0
  930. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Regular.ttf +0 -0
  931. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
  932. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Inter/static/Inter-Thin.ttf +0 -0
  933. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  934. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  935. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/OFL.txt +0 -0
  936. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/README.txt +0 -0
  937. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
  938. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
  939. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
  940. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
  941. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
  942. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
  943. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
  944. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
  945. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
  946. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
  947. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
  948. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
  949. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
  950. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
  951. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
  952. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
  953. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
  954. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
  955. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
  956. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
  957. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-buch.otf +0 -0
  958. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-buch.woff2 +0 -0
  959. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-kraftig.otf +0 -0
  960. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-kraftig.woff2 +0 -0
  961. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-mono-buch.otf +0 -0
  962. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
  963. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
  964. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/dist/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
  965. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/eslint.config.mjs +0 -0
  966. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/index.html +0 -0
  967. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/openapi.json +0 -0
  968. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/orval.config.ts +0 -0
  969. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/package.json +0 -0
  970. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/playwright.config.ts +0 -0
  971. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/postcss.config.cjs +0 -0
  972. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/css/base.css +0 -0
  973. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/css/design.css +0 -0
  974. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/favicons/favicon.svg +0 -0
  975. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/Inter-VariableFont_slnt,wght.ttf +0 -0
  976. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/OFL.txt +0 -0
  977. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/README.txt +0 -0
  978. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Black.ttf +0 -0
  979. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Bold.ttf +0 -0
  980. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-ExtraBold.ttf +0 -0
  981. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-ExtraLight.ttf +0 -0
  982. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Light.ttf +0 -0
  983. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Medium.ttf +0 -0
  984. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Regular.ttf +0 -0
  985. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-SemiBold.ttf +0 -0
  986. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Inter/static/Inter-Thin.ttf +0 -0
  987. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  988. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  989. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/OFL.txt +0 -0
  990. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/README.txt +0 -0
  991. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Bold.ttf +0 -0
  992. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-BoldItalic.ttf +0 -0
  993. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBold.ttf +0 -0
  994. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraBoldItalic.ttf +0 -0
  995. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLight.ttf +0 -0
  996. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ExtraLightItalic.ttf +0 -0
  997. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Italic.ttf +0 -0
  998. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Light.ttf +0 -0
  999. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-LightItalic.ttf +0 -0
  1000. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Medium.ttf +0 -0
  1001. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-MediumItalic.ttf +0 -0
  1002. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Regular.ttf +0 -0
  1003. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBold.ttf +0 -0
  1004. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-SemiBoldItalic.ttf +0 -0
  1005. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-Thin.ttf +0 -0
  1006. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/JetBrains_Mono/static/JetBrainsMono-ThinItalic.ttf +0 -0
  1007. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.otf +0 -0
  1008. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Martina_Plantijn/martina-plantijn-regular.woff2 +0 -0
  1009. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-buch-kursiv.otf +0 -0
  1010. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-buch-kursiv.woff2 +0 -0
  1011. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-buch.otf +0 -0
  1012. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-buch.woff2 +0 -0
  1013. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-kraftig.otf +0 -0
  1014. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-kraftig.woff2 +0 -0
  1015. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-mono-buch.otf +0 -0
  1016. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-mono-buch.woff2 +0 -0
  1017. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-mono-kraftig.otf +0 -0
  1018. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/public/fonts/Sohne/sohne-mono-kraftig.woff2 +0 -0
  1019. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/App.tsx +0 -0
  1020. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/api/channels.ts +0 -0
  1021. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/api/index.ts +0 -0
  1022. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/api/instance.ts +0 -0
  1023. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/context/context.ts +0 -0
  1024. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/context/editor.ts +0 -0
  1025. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/context/plan.ts +0 -0
  1026. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/context/project.ts +0 -0
  1027. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/context/theme.tsx +0 -0
  1028. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/hooks/useActiveFocus.ts +0 -0
  1029. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/hooks/useLocalStorage.ts +0 -0
  1030. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/banner/Banner.tsx +0 -0
  1031. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/banner/Welcome.tsx +0 -0
  1032. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/button/Button.tsx +0 -0
  1033. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/button/tests/Button.spec.tsx +0 -0
  1034. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/container/Container.tsx +0 -0
  1035. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/divider/Divider.tsx +0 -0
  1036. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/divider/tests/Divider.spec.tsx +0 -0
  1037. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/documentation/Documentation.tsx +0 -0
  1038. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/Editor.css +0 -0
  1039. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/Editor.tsx +0 -0
  1040. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorCode.tsx +0 -0
  1041. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorFooter.tsx +0 -0
  1042. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorIndicator.tsx +0 -0
  1043. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorInspector.tsx +0 -0
  1044. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorPreview.tsx +0 -0
  1045. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorTab.tsx +0 -0
  1046. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/EditorTabs.tsx +0 -0
  1047. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/extensions/SQLMeshDialect.ts +0 -0
  1048. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/extensions/SQLMeshModel.ts +0 -0
  1049. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/extensions/help.ts +0 -0
  1050. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/extensions/index.ts +0 -0
  1051. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/help.ts +0 -0
  1052. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/editor/hooks.ts +0 -0
  1053. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/environmentDetails/AddEnvironment.tsx +0 -0
  1054. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/environmentDetails/EnvironmentChanges.tsx +0 -0
  1055. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/environmentDetails/EnvironmentChangesPreview.tsx +0 -0
  1056. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/environmentDetails/EnvironmentDetails.tsx +0 -0
  1057. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/environmentDetails/SelectEnvironment.tsx +0 -0
  1058. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/fileExplorer/Directory.tsx +0 -0
  1059. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/fileExplorer/DragLayer.tsx +0 -0
  1060. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/fileExplorer/File.tsx +0 -0
  1061. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/fileExplorer/FileExplorer.tsx +0 -0
  1062. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/fileExplorer/context.tsx +0 -0
  1063. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/Graph.css +0 -0
  1064. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelColumns.tsx +0 -0
  1065. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelLineage.tsx +0 -0
  1066. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelLineageDetails.tsx +0 -0
  1067. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelLineageSearch.tsx +0 -0
  1068. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelNode.tsx +0 -0
  1069. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/ModelNodeHeaderHandles.tsx +0 -0
  1070. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/context.tsx +0 -0
  1071. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/graph/help.ts +0 -0
  1072. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/historyNavigation/historyNavigation.tsx +0 -0
  1073. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/input/Input.tsx +0 -0
  1074. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/input/InputToggle.tsx +0 -0
  1075. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/input/Selector.tsx +0 -0
  1076. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/input/Textfield.tsx +0 -0
  1077. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/listbox/ListboxShow.tsx +0 -0
  1078. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/loading/Loading.tsx +0 -0
  1079. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/loading/LoadingSegment.tsx +0 -0
  1080. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/loading/LoadingStatus.tsx +0 -0
  1081. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/logo/Spinner.tsx +0 -0
  1082. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/logo/SqlMesh.tsx +0 -0
  1083. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/logo/Tobiko.tsx +0 -0
  1084. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/modal/Modal.tsx +0 -0
  1085. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/modal/ModalConfirmation.tsx +0 -0
  1086. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/moduleNavigation/ModuleLink.tsx +0 -0
  1087. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/moduleNavigation/ModuleNavigation.tsx +0 -0
  1088. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/Plan.tsx +0 -0
  1089. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanActions.tsx +0 -0
  1090. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanApplyStageTracker.tsx +0 -0
  1091. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanBackfillDates.tsx +0 -0
  1092. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanChangePreview.tsx +0 -0
  1093. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanHeader.tsx +0 -0
  1094. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/PlanOptions.tsx +0 -0
  1095. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/context.tsx +0 -0
  1096. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/help.spec.ts +0 -0
  1097. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/help.ts +0 -0
  1098. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/plan/hooks.ts +0 -0
  1099. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/progress/Progress.tsx +0 -0
  1100. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/report/ReportErrors.tsx +0 -0
  1101. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/report/ReportTestsErrors.tsx +0 -0
  1102. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/search/SearchList.tsx +0 -0
  1103. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/search/help.ts +0 -0
  1104. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/sourceList/SourceList.tsx +0 -0
  1105. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/sourceList/SourceListItem.tsx +0 -0
  1106. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/splitPane/SplitPane.css +0 -0
  1107. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/splitPane/SplitPane.tsx +0 -0
  1108. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/tab/Tab.tsx +0 -0
  1109. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/table/Table.tsx +0 -0
  1110. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/table/help.ts +0 -0
  1111. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/tableDiff/TableDiff.tsx +0 -0
  1112. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/tableDiff/help.ts +0 -0
  1113. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/tasksOverview/TasksOverview.tsx +0 -0
  1114. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/title/Title.tsx +0 -0
  1115. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/components/toggle/Toggle.tsx +0 -0
  1116. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/audits/Audits.tsx +0 -0
  1117. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/data/Data.tsx +0 -0
  1118. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/data-catalog/DataCatalog.tsx +0 -0
  1119. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/editor/Editor.tsx +0 -0
  1120. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/errors/Content.tsx +0 -0
  1121. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/errors/Errors.tsx +0 -0
  1122. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/lineage/Lineage.tsx +0 -0
  1123. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/models/Models.tsx +0 -0
  1124. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/plan/Content.tsx +0 -0
  1125. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/plan/Plan.tsx +0 -0
  1126. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/Footer.tsx +0 -0
  1127. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/Header.tsx +0 -0
  1128. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/Navigation.tsx +0 -0
  1129. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/NotFound.tsx +0 -0
  1130. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/Page.tsx +0 -0
  1131. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/Root.tsx +0 -0
  1132. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/root/context/notificationCenter.tsx +0 -0
  1133. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/library/pages/tests/Tests.tsx +0 -0
  1134. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/main.tsx +0 -0
  1135. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/artifact.posix.spec.ts +0 -0
  1136. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/artifact.spec.ts +0 -0
  1137. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/artifact.ts +0 -0
  1138. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/artifact.win.spec.ts +0 -0
  1139. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/directory.posix.spec.ts +0 -0
  1140. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/directory.ts +0 -0
  1141. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/directory.win.spec.ts +0 -0
  1142. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/environment.ts +0 -0
  1143. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/file.spec.ts +0 -0
  1144. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/file.ts +0 -0
  1145. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/index.ts +0 -0
  1146. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/initial.ts +0 -0
  1147. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/module-controller.ts +0 -0
  1148. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/plan-action.ts +0 -0
  1149. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/sqlmesh-change-display.ts +0 -0
  1150. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/sqlmesh-model.ts +0 -0
  1151. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/tracker-plan-apply.ts +0 -0
  1152. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/tracker-plan-cancel.ts +0 -0
  1153. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/tracker-plan-overview.ts +0 -0
  1154. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/models/tracker-plan.ts +0 -0
  1155. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/routes.tsx +0 -0
  1156. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/styles/index.css +0 -0
  1157. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/tests/setup.ts +0 -0
  1158. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/tests/utils.tsx +0 -0
  1159. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/types/enum.ts +0 -0
  1160. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/types/index.d.ts +0 -0
  1161. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/utils/additional-components.ts +0 -0
  1162. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/utils/index.spec.ts +0 -0
  1163. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/utils/index.ts +0 -0
  1164. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/utils/tbk-components.js +0 -0
  1165. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/workers/index.ts +0 -0
  1166. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/workers/lineage.ts +0 -0
  1167. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/workers/sqlglot/sqlglot.py +0 -0
  1168. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/src/workers/sqlglot/sqlglot.ts +0 -0
  1169. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/tailwind.config.cjs +0 -0
  1170. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/tests/initial.spec.ts +0 -0
  1171. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/tsconfig.json +0 -0
  1172. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/client/vite.config.ts +0 -0
  1173. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/docker-compose.build.yml +0 -0
  1174. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/docker-compose.yml +0 -0
  1175. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/__init__.py +0 -0
  1176. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/__init__.py +0 -0
  1177. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/__init__.py +0 -0
  1178. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/commands.py +0 -0
  1179. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/directories.py +0 -0
  1180. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/environments.py +0 -0
  1181. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/events.py +0 -0
  1182. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/files.py +0 -0
  1183. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/lineage.py +0 -0
  1184. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/meta.py +0 -0
  1185. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/models.py +0 -0
  1186. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/modules.py +0 -0
  1187. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/plan.py +0 -0
  1188. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/api/endpoints/table_diff.py +0 -0
  1189. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/app.py +0 -0
  1190. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/console.py +0 -0
  1191. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/exceptions.py +0 -0
  1192. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/main.py +0 -0
  1193. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/models.py +0 -0
  1194. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/openapi.py +0 -0
  1195. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/settings.py +0 -0
  1196. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/utils.py +0 -0
  1197. {sqlmesh-0.196.3.dev4 → sqlmesh-0.196.4}/web/server/watcher.py +0 -0
@@ -7,14 +7,14 @@ on_main_or_tag_filter: &on_main_or_tag_filter
7
7
  branches:
8
8
  only: main
9
9
  tags:
10
- only: /^v.+/
10
+ only: /^v\d+\.\d+\.\d+/
11
11
 
12
12
  on_tag_filter: &on_tag_filter
13
13
  filters:
14
14
  branches:
15
15
  ignore: /.*/
16
16
  tags:
17
- only: /^v.+/
17
+ only: /^v\d+\.\d+\.\d+/
18
18
 
19
19
  orbs:
20
20
  path-filtering: circleci/path-filtering@1.2.0
@@ -39,7 +39,7 @@ jobs:
39
39
  command: unset TWINE_USERNAME TWINE_PASSWORD && make publish-tests
40
40
  gh-release:
41
41
  docker:
42
- - image: cimg/node:16.14
42
+ - image: cimg/node:20.19.0
43
43
  resource_class: small
44
44
  steps:
45
45
  - run:
@@ -54,7 +54,7 @@ jobs:
54
54
 
55
55
  ui-build:
56
56
  docker:
57
- - image: cimg/node:19.8
57
+ - image: cimg/node:20.19.0
58
58
  resource_class: medium
59
59
  steps:
60
60
  - checkout
@@ -0,0 +1,44 @@
1
+ name: Release VSCode Extension
2
+ on:
3
+ push:
4
+ tags:
5
+ - 'vscode@v*'
6
+ jobs:
7
+ release:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Checkout repository
11
+ uses: actions/checkout@v4
12
+ - name: Setup Node.js
13
+ uses: actions/setup-node@v4
14
+ with:
15
+ node-version: '20'
16
+ - name: Install pnpm
17
+ uses: pnpm/action-setup@v2
18
+ with:
19
+ version: 10
20
+ - name: Install dependencies
21
+ run: pnpm install --frozen-lockfile
22
+ - name: Extract version from tag
23
+ id: extract_version
24
+ run: |
25
+ VERSION=${GITHUB_REF#refs/tags/vscode@v}
26
+ echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
27
+ - name: Update package.json version
28
+ working-directory: vscode/extension
29
+ run: |
30
+ npm version ${{ steps.extract_version.outputs.VERSION }} --no-git-tag-version
31
+ - name: Install dependencies
32
+ working-directory: vscode/extension
33
+ run: pnpm install
34
+ - name: Run CI
35
+ run: pnpm run ci
36
+ - name: Build extension
37
+ working-directory: vscode/extension
38
+ run: pnpm run vscode:package
39
+ - name: Upload extension to Marketplace
40
+ working-directory: vscode/extension
41
+ run: |
42
+ pnpx vsce publish --packagePath sqlmesh-${{ steps.extract_version.outputs.VERSION }}.vsix
43
+ env:
44
+ VSCE_PAT: ${{ secrets.VSCE_PAT }}
sqlmesh-0.196.4/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 20
@@ -0,0 +1,351 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ SQLMesh is a next-generation data transformation framework that enables:
8
+ - Virtual data environments for isolated development without warehouse costs
9
+ - Plan/apply workflow (like Terraform) for safe deployments
10
+ - Multi-dialect SQL support with automatic transpilation
11
+ - Incremental processing to run only necessary transformations
12
+ - Built-in testing and CI/CD integration
13
+
14
+ **Requirements**: Python >= 3.9 (Note: Python 3.13+ is not yet supported)
15
+
16
+ ## Essential Commands
17
+
18
+ ### Environment setup
19
+ ```bash
20
+ # Create and activate a Python virtual environment (Python >= 3.9, < 3.13)
21
+ python -m venv venv
22
+ source venv/bin/activate # On Windows: venv\Scripts\activate
23
+
24
+ # Install development dependencies
25
+ make install-dev
26
+
27
+ # Setup pre-commit hooks (important for code quality)
28
+ make install-pre-commit
29
+ ```
30
+
31
+ ### Common Development Tasks
32
+ ```bash
33
+ # Run linters and formatters (ALWAYS run before committing)
34
+ make style
35
+
36
+ # Fast tests for quick feedback during development
37
+ make fast-test
38
+
39
+ # Slow tests for comprehensive coverage
40
+ make slow-test
41
+
42
+ # Run specific test file
43
+ pytest tests/core/test_context.py -v
44
+
45
+ # Run tests with specific marker
46
+ pytest -m "not slow and not docker" -v
47
+
48
+ # Build package
49
+ make package
50
+
51
+ # Serve documentation locally
52
+ make docs-serve
53
+ ```
54
+
55
+ ### Engine-Specific Testing
56
+ ```bash
57
+ # DuckDB (default, no setup required)
58
+ make duckdb-test
59
+
60
+ # Other engines require credentials/Docker
61
+ make snowflake-test # Needs SNOWFLAKE_* env vars
62
+ make bigquery-test # Needs GOOGLE_APPLICATION_CREDENTIALS
63
+ make databricks-test # Needs DATABRICKS_* env vars
64
+ ```
65
+
66
+ ### UI Development
67
+ ```bash
68
+ # In web/client directory
69
+ pnpm run dev # Start development server
70
+ pnpm run build # Production build
71
+ pnpm run test # Run tests
72
+
73
+ # Docker-based UI
74
+ make ui-up # Start UI in Docker
75
+ make ui-down # Stop UI
76
+ ```
77
+
78
+ ## Architecture Overview
79
+
80
+ ### Core Components
81
+
82
+ **sqlmesh/core/context.py**: The main Context class orchestrates all SQLMesh operations. This is the entry point for understanding how models are loaded, plans are created, and executions happen.
83
+
84
+ **sqlmesh/core/model/**: Model definitions and kinds (FULL, INCREMENTAL_BY_TIME_RANGE, SCD_TYPE_2, etc.). Each model kind has specific behaviors for how data is processed.
85
+
86
+ **sqlmesh/core/snapshot/**: The versioning system. Snapshots are immutable versions of models identified by fingerprints. Understanding snapshots is crucial for how SQLMesh tracks changes.
87
+
88
+ **sqlmesh/core/plan/**: Plan building and evaluation logic. Plans determine what changes need to be applied and in what order.
89
+
90
+ **sqlmesh/core/engine_adapter/**: Database engine adapters provide a unified interface across 16+ SQL engines. Each adapter handles engine-specific SQL generation and execution.
91
+
92
+ ### Key Concepts
93
+
94
+ 1. **Virtual Environments**: Lightweight branches that share unchanged data between environments, reducing storage costs and deployment time.
95
+
96
+ 2. **Fingerprinting**: Models are versioned using content-based fingerprints. Any change to a model's logic creates a new version.
97
+
98
+ 3. **State Sync**: Manages metadata across different backends (can be stored in the data warehouse or external databases).
99
+
100
+ 4. **Intervals**: Time-based partitioning system for incremental models, tracking what data has been processed.
101
+
102
+ ## Testing Philosophy
103
+
104
+ - Tests are marked with pytest markers:
105
+ - **Type markers**: `fast`, `slow`, `docker`, `remote`, `cicdonly`, `isolated`, `registry_isolation`
106
+ - **Domain markers**: `cli`, `dbt`, `github`, `jupyter`, `web`
107
+ - **Engine markers**: `engine`, `athena`, `bigquery`, `clickhouse`, `databricks`, `duckdb`, `motherduck`, `mssql`, `mysql`, `postgres`, `redshift`, `snowflake`, `spark`, `trino`, `risingwave`
108
+ - Default to `fast` tests during development
109
+ - Engine tests use real connections when available, mocks otherwise
110
+ - The `sushi` example project is used extensively in tests
111
+ - Use `DuckDBMetadata` helper for validating table metadata in tests
112
+ - Tests run in parallel by default (`pytest -n auto`)
113
+
114
+ ## Code Style Guidelines
115
+
116
+ - Python: Black formatting, isort for imports, mypy for type checking, Ruff for linting
117
+ - TypeScript/React: ESLint + Prettier configuration
118
+ - SQL: SQLGlot handles parsing/formatting
119
+ - All style checks run via `make style`
120
+ - Pre-commit hooks enforce all style rules automatically
121
+ - Important: Some modules (duckdb, numpy, pandas) are banned at module level to prevent import-time side effects
122
+
123
+ ## Important Files
124
+
125
+ - `sqlmesh/core/context.py`: Main orchestration class
126
+ - `examples/sushi/`: Reference implementation used in tests
127
+ - `web/server/main.py`: Web UI backend entry point
128
+ - `web/client/src/App.tsx`: Web UI frontend entry point
129
+ - `vscode/extension/src/extension.ts`: VSCode extension entry point
130
+
131
+ ## Common Pitfalls
132
+
133
+ 1. **Engine Tests**: Many tests require specific database credentials or Docker. Check test markers before running.
134
+
135
+ 2. **Path Handling**: Be careful with Windows paths - use `pathlib.Path` for cross-platform compatibility.
136
+
137
+ 3. **State Management**: Understanding the state sync mechanism is crucial for debugging environment issues.
138
+
139
+ 4. **Snapshot Versioning**: Changes to model logic create new versions - this is by design for safe deployments.
140
+
141
+ 5. **Module Imports**: Avoid importing duckdb, numpy, or pandas at module level - these are banned by Ruff to prevent long load times in cases where the libraries aren't used.
142
+
143
+ ## GitHub CI/CD Bot Architecture
144
+
145
+ SQLMesh includes a GitHub CI/CD bot integration that automates data transformation workflows. The implementation is located in `sqlmesh/integrations/github/` and follows a clean architectural pattern.
146
+
147
+ ### Code Organization
148
+
149
+ **Core Integration Files:**
150
+ - `sqlmesh/cicd/bot.py`: Main CLI entry point (`sqlmesh_cicd` command)
151
+ - `sqlmesh/integrations/github/cicd/controller.py`: Core bot orchestration logic
152
+ - `sqlmesh/integrations/github/cicd/command.py`: Individual command implementations
153
+ - `sqlmesh/integrations/github/cicd/config.py`: Configuration classes and validation
154
+
155
+ ### Architecture Pattern
156
+
157
+ The bot follows a **Command Pattern** architecture:
158
+
159
+ 1. **CLI Layer** (`bot.py`): Handles argument parsing and delegates to controllers
160
+ 2. **Controller Layer** (`controller.py`): Orchestrates workflow execution and manages state
161
+ 3. **Command Layer** (`command.py`): Implements individual operations (test, deploy, plan, etc.)
162
+ 4. **Configuration Layer** (`config.py`): Manages bot configuration and validation
163
+
164
+ ### Key Components
165
+
166
+ **GitHubCICDController**: Main orchestrator that:
167
+ - Manages GitHub API interactions via PyGithub
168
+ - Coordinates workflow execution across different commands
169
+ - Handles error reporting through GitHub Check Runs
170
+ - Manages PR comment interactions and status updates
171
+
172
+ **Command Implementations**:
173
+ - `run_tests()`: Executes unit tests with detailed reporting
174
+ - `update_pr_environment()`: Creates/updates virtual PR environments
175
+ - `gen_prod_plan()`: Generates production deployment plans
176
+ - `deploy_production()`: Handles production deployments
177
+ - `check_required_approvers()`: Validates approval requirements
178
+
179
+ **Configuration Management**:
180
+ - Uses Pydantic models for type-safe configuration
181
+ - Supports both YAML config files and environment variables
182
+ - Validates bot settings and user permissions
183
+ - Handles approval workflows and deployment triggers
184
+
185
+ ### Integration with Core SQLMesh
186
+
187
+ The bot leverages core SQLMesh components:
188
+ - **Context**: Uses SQLMesh Context for project operations
189
+ - **Plan/Apply**: Integrates with SQLMesh's plan generation and application
190
+ - **Virtual Environments**: Creates isolated PR environments using SQLMesh's virtual data environments
191
+ - **State Sync**: Manages metadata synchronization across environments
192
+ - **Testing Framework**: Executes SQLMesh unit tests and reports results
193
+
194
+ ### Error Handling and Reporting
195
+
196
+ - **GitHub Check Runs**: Creates detailed status reports for each workflow step
197
+ - **PR Comments**: Provides user-friendly feedback on failures and successes
198
+ - **Structured Logging**: Uses SQLMesh's logging framework for debugging
199
+ - **Exception Handling**: Graceful handling of GitHub API failures and SQLMesh errors
200
+
201
+ ## Environment Variables for Engine Testing
202
+
203
+ When running engine-specific tests, these environment variables are required:
204
+
205
+ - **Snowflake**: `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_WAREHOUSE`, `SNOWFLAKE_DATABASE`, `SNOWFLAKE_USER`, `SNOWFLAKE_PASSWORD`
206
+ - **BigQuery**: `BIGQUERY_KEYFILE` or `GOOGLE_APPLICATION_CREDENTIALS`
207
+ - **Databricks**: `DATABRICKS_CATALOG`, `DATABRICKS_SERVER_HOSTNAME`, `DATABRICKS_HTTP_PATH`, `DATABRICKS_ACCESS_TOKEN`, `DATABRICKS_CONNECT_VERSION`
208
+ - **Redshift**: `REDSHIFT_HOST`, `REDSHIFT_USER`, `REDSHIFT_PASSWORD`, `REDSHIFT_DATABASE`
209
+ - **Athena**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `ATHENA_S3_WAREHOUSE_LOCATION`
210
+ - **ClickHouse Cloud**: `CLICKHOUSE_CLOUD_HOST`, `CLICKHOUSE_CLOUD_USERNAME`, `CLICKHOUSE_CLOUD_PASSWORD`
211
+
212
+ ## Migrations System
213
+
214
+ SQLMesh uses a migration system to evolve its internal state database schema and metadata format. The migrations handle changes to SQLMesh's internal structure, not user data transformations.
215
+
216
+ ### Migration Structure
217
+
218
+ **Location**: `sqlmesh/migrations/` - Contains 80+ migration files from v0001 to v0083+
219
+
220
+ **Naming Convention**: `v{XXXX}_{descriptive_name}.py` (e.g., `v0001_init.py`, `v0083_use_sql_for_scd_time_data_type_data_hash.py`)
221
+
222
+ **Core Infrastructure**:
223
+ - `sqlmesh/core/state_sync/db/migrator.py`: Main migration orchestrator
224
+ - `sqlmesh/utils/migration.py`: Cross-database compatibility utilities
225
+ - `sqlmesh/core/state_sync/base.py`: Auto-discovery and loading logic
226
+
227
+ ### Migration Categories
228
+
229
+ **Schema Evolution**:
230
+ - State table creation/modification (snapshots, environments, intervals)
231
+ - Column additions/removals and index management
232
+ - Database engine compatibility fixes (MySQL/MSSQL field size limits)
233
+
234
+ **Data Format Migrations**:
235
+ - JSON metadata structure updates (snapshot serialization changes)
236
+ - Path normalization (Windows compatibility)
237
+ - Fingerprint recalculation when SQLGlot parsing changes
238
+
239
+ **Cleanup Operations**:
240
+ - Removing obsolete tables and unused data
241
+ - Metadata optimization and attribute cleanup
242
+
243
+ ### Key Migration Patterns
244
+
245
+ ```python
246
+ # Standard migration function signature
247
+ def migrate(state_sync, **kwargs): # type: ignore
248
+ engine_adapter = state_sync.engine_adapter
249
+ schema = state_sync.schema
250
+ # Migration logic here
251
+
252
+ # Common operations
253
+ engine_adapter.create_state_table(table_name, columns_dict)
254
+ engine_adapter.alter_table(alter_expression)
255
+ engine_adapter.drop_table(table_name)
256
+ ```
257
+
258
+ ### State Management Integration
259
+
260
+ **Core State Tables**:
261
+ - `_snapshots`: Model version metadata (most frequently migrated)
262
+ - `_environments`: Environment definitions
263
+ - `_versions`: Schema/SQLGlot/SQLMesh version tracking
264
+ - `_intervals`: Incremental processing metadata
265
+
266
+ **Migration Safety**:
267
+ - Automatic backups before migration (unless `skip_backup=True`)
268
+ - Atomic database transactions for consistency
269
+ - Snapshot count validation before/after migrations
270
+ - Automatic rollback on failures
271
+
272
+ ### Migration Execution
273
+
274
+ **Auto-Discovery**: Migrations are automatically loaded using `pkgutil.iter_modules()`
275
+
276
+ **Triggers**: Migrations run automatically when:
277
+ - Schema version mismatch detected
278
+ - SQLGlot version changes require fingerprint recalculation
279
+ - Manual `sqlmesh migrate` command execution
280
+
281
+ **Execution Flow**:
282
+ 1. Version comparison (local vs remote schema)
283
+ 2. Backup creation of state tables
284
+ 3. Sequential migration execution (numerical order)
285
+ 4. Snapshot fingerprint recalculation if needed
286
+ 5. Environment updates with new snapshot references
287
+
288
+ ## dbt Integration
289
+
290
+ SQLMesh provides native support for dbt projects, allowing users to run existing dbt projects while gaining access to SQLMesh's advanced features like virtual environments and plan/apply workflows.
291
+
292
+ ### Core dbt Integration
293
+
294
+ **Location**: `sqlmesh/dbt/` - Complete dbt integration architecture
295
+
296
+ **Key Components**:
297
+ - `sqlmesh/dbt/loader.py`: Main dbt project loader extending SQLMesh's base loader
298
+ - `sqlmesh/dbt/manifest.py`: dbt manifest parsing and project discovery
299
+ - `sqlmesh/dbt/adapter.py`: dbt adapter system for SQL execution and schema operations
300
+ - `sqlmesh/dbt/model.py`: dbt model configurations and materialization mapping
301
+ - `sqlmesh/dbt/context.py`: dbt project context and environment management
302
+
303
+ ### Project Conversion
304
+
305
+ **dbt Converter**: `sqlmesh/dbt/converter/` - Tools for migrating dbt projects to SQLMesh
306
+
307
+ **Key Features**:
308
+ - `convert.py`: Main conversion orchestration
309
+ - `jinja.py` & `jinja_transforms.py`: Jinja template and macro conversion
310
+ - Full support for dbt assets (models, seeds, sources, tests, snapshots, macros)
311
+
312
+ **CLI Commands**:
313
+ ```bash
314
+ # Initialize SQLMesh in existing dbt project
315
+ sqlmesh init -t dbt
316
+
317
+ # Convert dbt project to SQLMesh format
318
+ sqlmesh dbt convert
319
+ ```
320
+
321
+ ### Supported dbt Features
322
+
323
+ **Project Structure**:
324
+ - Full dbt project support (models, seeds, sources, tests, snapshots, macros)
325
+ - dbt package dependencies and version management
326
+ - Profile integration using existing `profiles.yml` for connections
327
+
328
+ **Materializations**:
329
+ - All standard dbt materializations (table, view, incremental, ephemeral)
330
+ - Incremental model strategies (delete+insert, merge, insert_overwrite)
331
+ - SCD Type 2 support and snapshot strategies
332
+
333
+ **Advanced Features**:
334
+ - Jinja templating with full macro support
335
+ - Runtime variable passing and configuration
336
+ - dbt test integration and execution
337
+ - Cross-database compatibility with SQLMesh's multi-dialect support
338
+
339
+ ### Example Projects
340
+
341
+ **sushi_dbt**: `examples/sushi_dbt/` - Complete dbt project running with SQLMesh
342
+ **Test Fixtures**: `tests/fixtures/dbt/sushi_test/` - Comprehensive test dbt project with all asset types
343
+
344
+ ### Integration Benefits
345
+
346
+ When using dbt with SQLMesh, you gain:
347
+ - **Virtual Environments**: Isolated development without warehouse costs
348
+ - **Plan/Apply Workflow**: Safe deployments with change previews
349
+ - **Multi-Dialect Support**: Run the same dbt project across different SQL engines
350
+ - **Advanced Testing**: Enhanced testing capabilities beyond standard dbt tests
351
+ - **State Management**: Sophisticated metadata and versioning system
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.196.3.dev4
3
+ Version: 0.196.4
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -343,7 +343,7 @@ Requires-Dist: watchfiles>=0.19.0; extra == "lsp"
343
343
  Requires-Dist: uvicorn[standard]==0.22.0; extra == "lsp"
344
344
  Requires-Dist: sse-starlette>=0.2.2; extra == "lsp"
345
345
  Requires-Dist: pyarrow; extra == "lsp"
346
- Requires-Dist: pygls; extra == "lsp"
346
+ Requires-Dist: pygls<2.0.0,>=1.2.0; extra == "lsp"
347
347
  Requires-Dist: lsprotocol; extra == "lsp"
348
348
  Provides-Extra: risingwave
349
349
  Requires-Dist: psycopg2; extra == "risingwave"
@@ -1,4 +1,8 @@
1
1
  {
2
+ "engines": {
3
+ "node": ">=20.0.0",
4
+ "pnpm": ">=10.0.0"
5
+ },
2
6
  "scripts": {
3
7
  "ci": "pnpm run lint && pnpm run -r ci",
4
8
  "fmt": "prettier --write .",
@@ -132,7 +132,7 @@ lsp = [
132
132
  "sse-starlette>=0.2.2",
133
133
  "pyarrow",
134
134
  # For lsp
135
- "pygls",
135
+ "pygls>=1.2.0,<2.0.0",
136
136
  "lsprotocol",
137
137
  ]
138
138
  risingwave = ["psycopg2"]
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.196.3.dev4'
21
- __version_tuple__ = version_tuple = (0, 196, 3, 'dev4')
20
+ __version__ = version = '0.196.4'
21
+ __version_tuple__ = version_tuple = (0, 196, 4)
@@ -4,25 +4,26 @@ import logging
4
4
  import os
5
5
  import sys
6
6
  import typing as t
7
+ from pathlib import Path
7
8
 
8
9
  import click
10
+
9
11
  from sqlmesh import configure_logging, remove_excess_logs
10
12
  from sqlmesh.cli import error_handler
11
13
  from sqlmesh.cli import options as opt
12
14
  from sqlmesh.cli.project_init import (
15
+ InitCliMode,
13
16
  ProjectTemplate,
14
17
  init_example_project,
15
- InitCliMode,
16
18
  interactive_init,
17
19
  )
18
20
  from sqlmesh.core.analytics import cli_analytics
19
- from sqlmesh.core.console import configure_console, get_console
20
- from sqlmesh.utils import Verbosity
21
21
  from sqlmesh.core.config import load_configs
22
+ from sqlmesh.core.console import configure_console, get_console
22
23
  from sqlmesh.core.context import Context
24
+ from sqlmesh.utils import Verbosity
23
25
  from sqlmesh.utils.date import TimeLike
24
26
  from sqlmesh.utils.errors import MissingDependencyError, SQLMeshError
25
- from pathlib import Path
26
27
 
27
28
  logger = logging.getLogger(__name__)
28
29
 
@@ -355,6 +356,7 @@ def evaluate(
355
356
  "--append-newline",
356
357
  is_flag=True,
357
358
  help="Include a newline at the end of each file.",
359
+ default=None,
358
360
  )
359
361
  @opt.format_options
360
362
  @click.pass_context
@@ -805,7 +807,11 @@ def check_intervals(
805
807
  context = ctx.obj
806
808
  context.console.show_intervals(
807
809
  context.check_intervals(
808
- environment, no_signals=no_signals, select_models=select_model, start=start, end=end
810
+ environment,
811
+ no_signals=no_signals,
812
+ select_models=select_model,
813
+ start=start,
814
+ end=end,
809
815
  )
810
816
  )
811
817
 
@@ -1107,7 +1113,10 @@ def clean(obj: Context) -> None:
1107
1113
  @error_handler
1108
1114
  @cli_analytics
1109
1115
  def table_name(
1110
- obj: Context, model_name: str, environment: t.Optional[str] = None, prod: bool = False
1116
+ obj: Context,
1117
+ model_name: str,
1118
+ environment: t.Optional[str] = None,
1119
+ prod: bool = False,
1111
1120
  ) -> None:
1112
1121
  """Prints the name of the physical table for the given model."""
1113
1122
  print(obj.table_name(model_name, environment, prod))
@@ -6,11 +6,13 @@ import typing as t
6
6
 
7
7
  from sqlglot import exp
8
8
 
9
- from sqlmesh.core.dialect import to_schema
9
+ from sqlmesh.core.dialect import to_schema, add_table
10
10
  from sqlmesh.core.engine_adapter.base import (
11
11
  EngineAdapterWithIndexSupport,
12
12
  EngineAdapter,
13
13
  InsertOverwriteStrategy,
14
+ MERGE_SOURCE_ALIAS,
15
+ MERGE_TARGET_ALIAS,
14
16
  )
15
17
  from sqlmesh.core.engine_adapter.mixins import (
16
18
  GetCurrentCatalogFromFunctionMixin,
@@ -32,7 +34,7 @@ from sqlmesh.core.schema_diff import SchemaDiffer
32
34
 
33
35
  if t.TYPE_CHECKING:
34
36
  from sqlmesh.core._typing import SchemaName, TableName
35
- from sqlmesh.core.engine_adapter._typing import DF, Query
37
+ from sqlmesh.core.engine_adapter._typing import DF, Query, QueryOrDF
36
38
 
37
39
 
38
40
  @set_catalog()
@@ -188,6 +190,87 @@ class MSSQLEngineAdapter(
188
190
  )
189
191
  super().drop_schema(schema_name, ignore_if_not_exists=ignore_if_not_exists, cascade=False)
190
192
 
193
+ def merge(
194
+ self,
195
+ target_table: TableName,
196
+ source_table: QueryOrDF,
197
+ columns_to_types: t.Optional[t.Dict[str, exp.DataType]],
198
+ unique_key: t.Sequence[exp.Expression],
199
+ when_matched: t.Optional[exp.Whens] = None,
200
+ merge_filter: t.Optional[exp.Expression] = None,
201
+ ) -> None:
202
+ source_queries, columns_to_types = self._get_source_queries_and_columns_to_types(
203
+ source_table, columns_to_types, target_table=target_table
204
+ )
205
+ columns_to_types = columns_to_types or self.columns(target_table)
206
+ on = exp.and_(
207
+ *(
208
+ add_table(part, MERGE_TARGET_ALIAS).eq(add_table(part, MERGE_SOURCE_ALIAS))
209
+ for part in unique_key
210
+ )
211
+ )
212
+ if merge_filter:
213
+ on = exp.and_(merge_filter, on)
214
+
215
+ if not when_matched:
216
+ match_condition = None
217
+ unique_key_names = [y.name for y in unique_key]
218
+ columns_to_types_no_keys = [c for c in columns_to_types if c not in unique_key_names]
219
+
220
+ target_columns_no_keys = [
221
+ exp.column(c, MERGE_TARGET_ALIAS) for c in columns_to_types_no_keys
222
+ ]
223
+ source_columns_no_keys = [
224
+ exp.column(c, MERGE_SOURCE_ALIAS) for c in columns_to_types_no_keys
225
+ ]
226
+
227
+ match_condition = exp.Exists(
228
+ this=exp.select(*target_columns_no_keys).except_(
229
+ exp.select(*source_columns_no_keys)
230
+ )
231
+ )
232
+
233
+ match_expressions = [
234
+ exp.When(
235
+ matched=True,
236
+ source=False,
237
+ condition=match_condition,
238
+ then=exp.Update(
239
+ expressions=[
240
+ exp.column(col, MERGE_TARGET_ALIAS).eq(
241
+ exp.column(col, MERGE_SOURCE_ALIAS)
242
+ )
243
+ for col in columns_to_types_no_keys
244
+ ],
245
+ ),
246
+ )
247
+ ]
248
+ else:
249
+ match_expressions = when_matched.copy().expressions
250
+
251
+ match_expressions.append(
252
+ exp.When(
253
+ matched=False,
254
+ source=False,
255
+ then=exp.Insert(
256
+ this=exp.Tuple(expressions=[exp.column(col) for col in columns_to_types]),
257
+ expression=exp.Tuple(
258
+ expressions=[
259
+ exp.column(col, MERGE_SOURCE_ALIAS) for col in columns_to_types
260
+ ]
261
+ ),
262
+ ),
263
+ )
264
+ )
265
+ for source_query in source_queries:
266
+ with source_query as query:
267
+ self._merge(
268
+ target_table=target_table,
269
+ query=query,
270
+ on=on,
271
+ whens=exp.Whens(expressions=match_expressions),
272
+ )
273
+
191
274
  def _convert_df_datetime(self, df: DF, columns_to_types: t.Dict[str, exp.DataType]) -> None:
192
275
  import pandas as pd
193
276
  from pandas.api.types import is_datetime64_any_dtype # type: ignore
@@ -8,7 +8,7 @@ import operator as op
8
8
  from collections.abc import Iterator, Iterable, Set, Mapping, Callable
9
9
  from functools import reduce
10
10
  from sqlmesh.core.model import Model
11
- from sqlmesh.core.linter.rule import Rule, RuleViolation, Range
11
+ from sqlmesh.core.linter.rule import Rule, RuleViolation, Range, Fix
12
12
  from sqlmesh.core.console import LinterConsole, get_console
13
13
 
14
14
  if t.TYPE_CHECKING:
@@ -75,6 +75,7 @@ class Linter:
75
75
  model=model,
76
76
  violation_type="error",
77
77
  violation_range=violation.violation_range,
78
+ fixes=violation.fixes,
78
79
  )
79
80
  for violation in error_violations
80
81
  ] + [
@@ -84,6 +85,7 @@ class Linter:
84
85
  model=model,
85
86
  violation_type="warning",
86
87
  violation_range=violation.violation_range,
88
+ fixes=violation.fixes,
87
89
  )
88
90
  for violation in warn_violations
89
91
  ]
@@ -152,7 +154,8 @@ class AnnotatedRuleViolation(RuleViolation):
152
154
  model: Model,
153
155
  violation_type: t.Literal["error", "warning"],
154
156
  violation_range: t.Optional[Range] = None,
157
+ fixes: t.Optional[t.List[Fix]] = None,
155
158
  ) -> None:
156
- super().__init__(rule, violation_msg, violation_range)
159
+ super().__init__(rule, violation_msg, violation_range, fixes)
157
160
  self.model = model
158
161
  self.violation_type = violation_type