fabricks 3.0.12__tar.gz → 3.0.14__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 (458) hide show
  1. {fabricks-3.0.12 → fabricks-3.0.14}/PKG-INFO +1 -1
  2. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/helpers.py +21 -39
  3. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/extenders.py +2 -7
  4. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/generator.py +1 -1
  5. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/get_parser.py +2 -7
  6. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/steps/base.py +16 -8
  7. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/azure_table.py +23 -22
  8. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/helpers.py +18 -2
  9. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/path.py +8 -2
  10. {fabricks-3.0.12 → fabricks-3.0.14}/format.sh +23 -17
  11. {fabricks-3.0.12 → fabricks-3.0.14}/pyproject.toml +1 -1
  12. fabricks-3.0.14/tests/integration/README.md +16 -0
  13. {fabricks-3.0.12 → fabricks-3.0.14}/uv.lock +1 -1
  14. {fabricks-3.0.12 → fabricks-3.0.14}/.gitignore +0 -0
  15. {fabricks-3.0.12 → fabricks-3.0.14}/.gitkeep +0 -0
  16. {fabricks-3.0.12 → fabricks-3.0.14}/.python-version +0 -0
  17. {fabricks-3.0.12 → fabricks-3.0.14}/README.md +0 -0
  18. {fabricks-3.0.12 → fabricks-3.0.14}/databricks.yml +0 -0
  19. {fabricks-3.0.12 → fabricks-3.0.14}/docs/helpers/init.md +0 -0
  20. {fabricks-3.0.12 → fabricks-3.0.14}/docs/helpers/job.md +0 -0
  21. {fabricks-3.0.12 → fabricks-3.0.14}/docs/helpers/runtime.md +0 -0
  22. {fabricks-3.0.12 → fabricks-3.0.14}/docs/helpers/schedule.md +0 -0
  23. {fabricks-3.0.12 → fabricks-3.0.14}/docs/helpers/step.md +0 -0
  24. {fabricks-3.0.12 → fabricks-3.0.14}/docs/index.md +0 -0
  25. {fabricks-3.0.12 → fabricks-3.0.14}/docs/introduction/layers.md +0 -0
  26. {fabricks-3.0.12 → fabricks-3.0.14}/docs/introduction/overview.md +0 -0
  27. {fabricks-3.0.12 → fabricks-3.0.14}/docs/reference/cdc.md +0 -0
  28. {fabricks-3.0.12 → fabricks-3.0.14}/docs/reference/checks-data-quality.md +0 -0
  29. {fabricks-3.0.12 → fabricks-3.0.14}/docs/reference/extenders-udfs-parsers.md +0 -0
  30. {fabricks-3.0.12 → fabricks-3.0.14}/docs/reference/table-options.md +0 -0
  31. {fabricks-3.0.12 → fabricks-3.0.14}/docs/steps/BRONZE.md +0 -0
  32. {fabricks-3.0.12 → fabricks-3.0.14}/docs/steps/GOLD.md +0 -0
  33. {fabricks-3.0.12 → fabricks-3.0.14}/docs/steps/SILVER.md +0 -0
  34. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/__init__.py +0 -0
  35. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/__init__.py +0 -0
  36. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/cdc/__init__.py +0 -0
  37. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/cdc/nocdc.py +0 -0
  38. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/cdc/scd1.py +0 -0
  39. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/cdc/scd2.py +0 -0
  40. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/context.py +0 -0
  41. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/core.py +0 -0
  42. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/deploy.py +0 -0
  43. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/exceptions.py +0 -0
  44. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/extenders.py +0 -0
  45. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/job_schema.py +0 -0
  46. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/log.py +0 -0
  47. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/masks.py +0 -0
  48. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/metastore/__init__.py +0 -0
  49. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/metastore/database.py +0 -0
  50. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/metastore/table.py +0 -0
  51. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/metastore/view.py +0 -0
  52. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/__init__.py +0 -0
  53. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/cluster.py +0 -0
  54. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/initialize.py +0 -0
  55. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/process.py +0 -0
  56. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/run.py +0 -0
  57. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/schedule.py +0 -0
  58. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/notebooks/terminate.py +0 -0
  59. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/parsers.py +0 -0
  60. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/schedules.py +0 -0
  61. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/udfs.py +0 -0
  62. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/utils.py +0 -0
  63. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/version.py +0 -0
  64. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/api/views.py +0 -0
  65. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/__init__.py +0 -0
  66. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/__init__.py +0 -0
  67. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/_types.py +0 -0
  68. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/cdc.py +0 -0
  69. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/configurator.py +0 -0
  70. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/generator.py +0 -0
  71. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/merger.py +0 -0
  72. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/base/processor.py +0 -0
  73. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/cdc.py +0 -0
  74. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/nocdc.py +0 -0
  75. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/scd.py +0 -0
  76. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/scd1.py +0 -0
  77. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/scd2.py +0 -0
  78. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/__init__.py +0 -0
  79. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/base.sql.jinja +0 -0
  80. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/current.sql.jinja +0 -0
  81. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/deduplicate_hash.sql.jinja +0 -0
  82. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/deduplicate_key.sql.jinja +0 -0
  83. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/rectify.sql.jinja +0 -0
  84. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/ctes/slice.sql.jinja +0 -0
  85. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/filter.sql.jinja +0 -0
  86. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/filters/final.sql.jinja +0 -0
  87. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/filters/latest.sql.jinja +0 -0
  88. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/filters/update.sql.jinja +0 -0
  89. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/macros/bactick.sql.jinja +0 -0
  90. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/macros/hash.sql.jinja +0 -0
  91. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/merge.sql.jinja +0 -0
  92. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/merges/nocdc.sql.jinja +0 -0
  93. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/merges/scd1.sql.jinja +0 -0
  94. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/merges/scd2.sql.jinja +0 -0
  95. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/__init__.py +0 -0
  96. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/context.sql.jinja +0 -0
  97. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/final.sql.jinja +0 -0
  98. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/nocdc/complete.sql.jinja +0 -0
  99. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/nocdc/update.sql.jinja +0 -0
  100. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/scd1.sql.jinja +0 -0
  101. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/queries/scd2.sql.jinja +0 -0
  102. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/cdc/templates/query.sql.jinja +0 -0
  103. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/__init__.py +0 -0
  104. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/_types.py +0 -0
  105. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/config.py +0 -0
  106. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/log.py +0 -0
  107. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/runtime.py +0 -0
  108. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/secret.py +0 -0
  109. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/spark_session.py +0 -0
  110. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/context/utils.py +0 -0
  111. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/__init__.py +0 -0
  112. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/__init__.py +0 -0
  113. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/base.py +0 -0
  114. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/generator.py +0 -0
  115. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/log.py +0 -0
  116. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/processor.py +0 -0
  117. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/run.py +0 -0
  118. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/terminator.py +0 -0
  119. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/dags/utils.py +0 -0
  120. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/job_schema.py +0 -0
  121. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/__init__.py +0 -0
  122. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/__init__.py +0 -0
  123. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/_types.py +0 -0
  124. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/checker.py +0 -0
  125. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/configurator.py +0 -0
  126. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/exception.py +0 -0
  127. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/invoker.py +0 -0
  128. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/job.py +0 -0
  129. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/base/processor.py +0 -0
  130. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/bronze.py +0 -0
  131. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_job.py +0 -0
  132. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_job_conf.py +0 -0
  133. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_job_id.py +0 -0
  134. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_jobs.py +0 -0
  135. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_schedule.py +0 -0
  136. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/get_schedules.py +0 -0
  137. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/gold.py +0 -0
  138. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/jobs/silver.py +0 -0
  139. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/masks.py +0 -0
  140. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/__init__.py +0 -0
  141. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/_types.py +0 -0
  142. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/base.py +0 -0
  143. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/decorator.py +0 -0
  144. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/parsers/utils.py +0 -0
  145. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/__init__.py +0 -0
  146. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/diagrams.py +0 -0
  147. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/generate.py +0 -0
  148. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/get_schedule.py +0 -0
  149. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/get_schedules.py +0 -0
  150. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/process.py +0 -0
  151. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/run.py +0 -0
  152. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/terminate.py +0 -0
  153. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/schedules/views.py +0 -0
  154. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/steps/__init__.py +0 -0
  155. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/steps/_types.py +0 -0
  156. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/steps/get_step.py +0 -0
  157. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/steps/get_step_conf.py +0 -0
  158. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/udfs.py +0 -0
  159. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/core/views.py +0 -0
  160. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/__init__.py +0 -0
  161. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/masks.py +0 -0
  162. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/notebooks.py +0 -0
  163. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/schedules.py +0 -0
  164. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/tables.py +0 -0
  165. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/udfs.py +0 -0
  166. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/utils.py +0 -0
  167. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/deploy/views.py +0 -0
  168. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/README.md +0 -0
  169. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/__init__.py +0 -0
  170. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/_types.py +0 -0
  171. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/database.py +0 -0
  172. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/dbobject.py +0 -0
  173. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/pyproject.toml +0 -0
  174. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/table.py +0 -0
  175. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/utils.py +0 -0
  176. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/metastore/view.py +0 -0
  177. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/__init__.py +0 -0
  178. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/_types.py +0 -0
  179. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/azure_queue.py +0 -0
  180. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/console.py +0 -0
  181. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/fdict.py +0 -0
  182. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/log.py +0 -0
  183. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/mermaid.py +0 -0
  184. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/pip.py +0 -0
  185. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/pydantic.py +0 -0
  186. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/read/__init__.py +0 -0
  187. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/read/_types.py +0 -0
  188. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/read/read.py +0 -0
  189. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/read/read_excel.py +0 -0
  190. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/read/read_yaml.py +0 -0
  191. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/schema/__init__.py +0 -0
  192. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/schema/get_json_schema_for_type.py +0 -0
  193. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/schema/get_schema_for_type.py +0 -0
  194. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/spark.py +0 -0
  195. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/sqlglot.py +0 -0
  196. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/write/__init__.py +0 -0
  197. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/write/delta.py +0 -0
  198. {fabricks-3.0.12 → fabricks-3.0.14}/fabricks/utils/write/stream.py +0 -0
  199. {fabricks-3.0.12 → fabricks-3.0.14}/mkdocs.sh +0 -0
  200. {fabricks-3.0.12 → fabricks-3.0.14}/mkdocs.yml +0 -0
  201. {fabricks-3.0.12 → fabricks-3.0.14}/tests/__init__.py +0 -0
  202. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/__init__.py +0 -0
  203. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/_types.py +0 -0
  204. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/add_missing_modules.py +0 -0
  205. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/armageddon.py +0 -0
  206. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/compare.py +0 -0
  207. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/king/2022/01/01/0001/king_202201010001.json +0 -0
  208. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/king/2022/01/02/0001/king_202201020001.json +0 -0
  209. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/king__deletelog/2022/02/01/0001/king_202201010001.json +0 -0
  210. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/prince/2022/01/01/0001/prince_202201010001.json +0 -0
  211. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/princess/2022/01/01/0001/princess_202201010001.json +0 -0
  212. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/queen/2022/01/01/0001/queen_202201010001.json +0 -0
  213. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/queen/2022/01/02/0001/queen_202201020001.json +0 -0
  214. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/queen/2022/01/04/0001/queen_202201040001.json +0 -0
  215. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/queen__deletelog/2022/01/03/0001/queen_202201030001.json +0 -0
  216. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/queen__deletelog/2022/01/04/0001/queen_202201040001.json +0 -0
  217. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job1/too_many_columns/2022/01/01/0001/sample_202201010001.json +0 -0
  218. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job10/king/2022/10/01/0001/king_202210010001.json +0 -0
  219. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job10/king/2022/10/02/0001/king_202210020001.json +0 -0
  220. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job10/king/2022/10/02/0002/king_202210020002.json +0 -0
  221. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job10/king/2022/10/03/0001/king_202210030001.json +0 -0
  222. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job10/queen__deletelog/2022/10/01/0001/queen_202210010001.json +0 -0
  223. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job11/king/2022/11/01/0001/king_202210010001.json +0 -0
  224. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job11/king__deletelog/2022/11/01/0001/king_202211010001.json +0 -0
  225. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job2/king/2022/02/05/0001/king_202202050001.json +0 -0
  226. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job2/prince__deletelog/2022/02/01/0001/prince_202202010001.json +0 -0
  227. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job2/princess/2022/02/05/0001/princess_202202050001.json +0 -0
  228. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job2/queen/2022/02/05/0001/queen_202202050001.json +0 -0
  229. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job3/king/2022/03/01/001234/king_20220301001234.json +0 -0
  230. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job3/king__deletelog/2022/03/01/001234/king_20220301001234.json +0 -0
  231. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job3/queen/2022/03/05/001234/queen_20220305001234.json +0 -0
  232. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job3/queen/2022/03/06/0001/queen_202203060001.json +0 -0
  233. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job4/king/2022/04/01/0001/king_202204010001.json +0 -0
  234. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job4/monarch/2022/04/01/0001/monarch_202204010001.json +0 -0
  235. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job4/queen/2022/04/01/0001/queen_202204010001.json +0 -0
  236. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job4/regent/2022/04/01/0001/regent_202204010001.json +0 -0
  237. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job5/king/2022/05/01/0001/king_202205010001.json +0 -0
  238. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job5/queen/2022/05/01/0001/queen_202205010001.json +0 -0
  239. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job6/king/2022/06/01/0001/king_202206010001.json +0 -0
  240. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job6/queen/2022/06/01/0001/queen_202206010001.json +0 -0
  241. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job7/king/2022/07/01/0001/king_202207010001.json +0 -0
  242. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job7/queen/2022/07/01/0001/queen_202207010001.json +0 -0
  243. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job8/king/2022/08/01/0001/king_202208010001.json +0 -0
  244. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job8/queen/2022/08/01/0001/queen_202208010001.json +0 -0
  245. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king/2022/09/01/0001/king_202209010001.json +0 -0
  246. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king/2022/09/03/0001/king_202209030001.json +0 -0
  247. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king/2022/09/03/0002/king_202209030002.json +0 -0
  248. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king/2022/09/08/0001/king_202209080001.json +0 -0
  249. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king__deletelog/2022/09/02/0001/king_202209020001.json +0 -0
  250. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king__deletelog/2022/09/04/0001/king_202209040001.json +0 -0
  251. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king__deletelog/2022/09/04/0005/king_202209040005.json +0 -0
  252. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/king__deletelog/2022/09/04/0009/king_202209040009.json +0 -0
  253. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/queen/2022/09/08/0001/queen_202209080001.json +0 -0
  254. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/data/job9/queen__deletelog/2022/09/01/0001/queen_202209030001.json +0 -0
  255. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job01.sql +0 -0
  256. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job02.sql +0 -0
  257. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job03.sql +0 -0
  258. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job04.sql +0 -0
  259. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job05.sql +0 -0
  260. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job06.sql +0 -0
  261. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job07.sql +0 -0
  262. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job08.sql +0 -0
  263. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job09.sql +0 -0
  264. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job10.sql +0 -0
  265. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd1/job11.sql +0 -0
  266. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job01.sql +0 -0
  267. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job02.sql +0 -0
  268. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job03.sql +0 -0
  269. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job04.sql +0 -0
  270. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job05.sql +0 -0
  271. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job06.sql +0 -0
  272. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job07.sql +0 -0
  273. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job08.sql +0 -0
  274. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job09.sql +0 -0
  275. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job10.sql +0 -0
  276. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/gold/scd2/job11.sql +0 -0
  277. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job01.sql +0 -0
  278. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job02.sql +0 -0
  279. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job03.sql +0 -0
  280. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job04.sql +0 -0
  281. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job05.sql +0 -0
  282. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job06.sql +0 -0
  283. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job07.sql +0 -0
  284. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job08.sql +0 -0
  285. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job09.sql +0 -0
  286. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job10.sql +0 -0
  287. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd1/job11.sql +0 -0
  288. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job01.sql +0 -0
  289. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job02.sql +0 -0
  290. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job03.sql +0 -0
  291. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job04.sql +0 -0
  292. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job05.sql +0 -0
  293. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job06.sql +0 -0
  294. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job07.sql +0 -0
  295. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job08.sql +0 -0
  296. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job09.sql +0 -0
  297. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job10.sql +0 -0
  298. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/expected/silver/scd2/job11.sql +0 -0
  299. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/fabricksconfig.json +0 -0
  300. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/init.sh +0 -0
  301. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/initialize.py +0 -0
  302. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/__init__.py +0 -0
  303. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/__init__.py +0 -0
  304. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_cdc.py +0 -0
  305. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_check.py +0 -0
  306. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_dependency.py +0 -0
  307. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_gold.py +0 -0
  308. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_invoke.py +0 -0
  309. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_overwrite.py +0 -0
  310. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_schedule.py +0 -0
  311. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_semantic.py +0 -0
  312. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job1/test_silver.py +0 -0
  313. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job2/__init__.py +0 -0
  314. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job2/test_gold.py +0 -0
  315. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job2/test_run.py +0 -0
  316. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job2/test_semantic.py +0 -0
  317. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job2/test_silver.py +0 -0
  318. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job3/__init__.py +0 -0
  319. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job3/test_gold.py +0 -0
  320. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job3/test_run.py +0 -0
  321. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job3/test_silver.py +0 -0
  322. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job4/__init__.py +0 -0
  323. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job4/test_gold.py +0 -0
  324. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job4/test_run.py +0 -0
  325. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job5/__init__.py +0 -0
  326. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/jobs/job5/test_step.py +0 -0
  327. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/reset.py +0 -0
  328. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/run.py +0 -0
  329. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runjobs.py +0 -0
  330. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtests.py +0 -0
  331. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/.gitignore +0 -0
  332. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/__init__.py +0 -0
  333. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.kings.yml +0 -0
  334. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.memory.yml +0 -0
  335. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.monarchs.yml +0 -0
  336. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.princes.yml +0 -0
  337. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.princesses.yml +0 -0
  338. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.queens.yml +0 -0
  339. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/bronze/_config.regents.yml +0 -0
  340. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/conf.fabricks.yml +0 -0
  341. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/conf.uc.fabricks.yml +0 -0
  342. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/extenders/__init__.py +0 -0
  343. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/extenders/add_country.py +0 -0
  344. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/extenders/drop__cols.py +0 -0
  345. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/extenders/force_reload.py +0 -0
  346. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/extenders/monarch.py +0 -0
  347. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/masks/dummy.sql +0 -0
  348. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/add_missing_modules.py +0 -0
  349. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/cluster.py +0 -0
  350. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/initialize.py +0 -0
  351. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/process.py +0 -0
  352. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/run.py +0 -0
  353. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/schedule.py +0 -0
  354. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/notebooks/terminate.py +0 -0
  355. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/parsers/__init__.py +0 -0
  356. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/parsers/delete_log.py +0 -0
  357. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/parsers/monarch.py +0 -0
  358. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/requirements.txt +0 -0
  359. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/schedules/schedule.yml +0 -0
  360. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/udfs/__init__.py +0 -0
  361. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/udfs/addition.py +0 -0
  362. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/udfs/identity.py +0 -0
  363. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/udfs/key.sql +0 -0
  364. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/udfs/parse_phone_number.py +0 -0
  365. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/fabricks/views/monarch.sql +0 -0
  366. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/_config.check.yml +0 -0
  367. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/count_must_equal.sql +0 -0
  368. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/duplicate_identity.sql +0 -0
  369. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/duplicate_key.sql +0 -0
  370. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/fail.pre_run.sql +0 -0
  371. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/fail.sql +0 -0
  372. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/max_rows.sql +0 -0
  373. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/min_rows.sql +0 -0
  374. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/skip.skip.sql +0 -0
  375. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/skip.sql +0 -0
  376. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/warning.post_run.sql +0 -0
  377. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/check/warning.sql +0 -0
  378. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/dim/_config.dim.yml +0 -0
  379. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/dim/date.sql +0 -0
  380. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/dim/identity.sql +0 -0
  381. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/dim/overwrite.sql +0 -0
  382. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/dim/time.sql +0 -0
  383. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/_config.fact.yml +0 -0
  384. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/add_missing_modules.py +0 -0
  385. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/append.sql +0 -0
  386. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/deduplicate.sql +0 -0
  387. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/dependency_notebook.ipynb +0 -0
  388. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/dependency_sql.sql +0 -0
  389. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/foreign_keys.sql +0 -0
  390. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/manual.sql +0 -0
  391. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/masker_and_commenter.sql +0 -0
  392. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/memory.sql +0 -0
  393. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/no_drop.sql +0 -0
  394. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/notebook.ipynb +0 -0
  395. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/optimize_vacuum.sql +0 -0
  396. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/option.sql +0 -0
  397. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/order_duplicate.sql +0 -0
  398. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/overwrite.sql +0 -0
  399. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/primary_key.sql +0 -0
  400. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/fact/udf.sql +0 -0
  401. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/_config.invoke.yml +0 -0
  402. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/failed_pre_run.sql +0 -0
  403. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/notebook.py +0 -0
  404. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/notebook_without_argument.ipynb +0 -0
  405. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/notebooks.py +0 -0
  406. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/notebooks_failed_pre_run.sql +0 -0
  407. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/post_run/exe.py +0 -0
  408. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/post_run.sql +0 -0
  409. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/pre_run/exe.py +0 -0
  410. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py +0 -0
  411. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/timedout.py +0 -0
  412. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/invoke/timedout_pre_run.sql +0 -0
  413. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/nocdc/_config.nocdc.yml +0 -0
  414. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/nocdc/deduplicate.sql +0 -0
  415. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/nocdc/update.sql +0 -0
  416. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/_config.scd1.yml +0 -0
  417. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/complete.sql +0 -0
  418. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/identity.sql +0 -0
  419. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/last_timestamp.sql +0 -0
  420. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/memory.sql +0 -0
  421. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/special_char.sql +0 -0
  422. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd1/update.sql +0 -0
  423. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/_config.scd2.yml +0 -0
  424. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/complete.sql +0 -0
  425. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/correct_valid_from.sql +0 -0
  426. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/last_timestamp.sql +0 -0
  427. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/memory.sql +0 -0
  428. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/scd2/update.sql +0 -0
  429. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/type_widening/_config.type_widening.yml +0 -0
  430. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/type_widening/merge.sql +0 -0
  431. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/gold/type_widening/overwrite.sql +0 -0
  432. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/transf/fact/_config.transf.yml +0 -0
  433. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/transf/fact/memory.sql +0 -0
  434. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/gold/transf/post_run.py +0 -0
  435. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/job-schema.json +0 -0
  436. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/dim/_config.semantic.yml +0 -0
  437. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/dim/complex_query.sql +0 -0
  438. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/_config.semantic.yml +0 -0
  439. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/job_option.sql +0 -0
  440. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/powerbi.sql +0 -0
  441. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/schema_drift.sql +0 -0
  442. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/step_option.sql +0 -0
  443. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/semantic/fact/zstd.sql +0 -0
  444. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.kings_and_queens.yml +0 -0
  445. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.memory.yml +0 -0
  446. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.monarchs.yml +0 -0
  447. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.princes.yml +0 -0
  448. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.princesses.yml +0 -0
  449. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/silver/_config.regents.yml +0 -0
  450. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.kings.yml +0 -0
  451. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.memory.yml +0 -0
  452. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.monarchs.yml +0 -0
  453. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.princes.yml +0 -0
  454. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.princesses.yml +0 -0
  455. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.queens.yml +0 -0
  456. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/runtime/uc/bronze/_config.regents.yml +0 -0
  457. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/schedule.py +0 -0
  458. {fabricks-3.0.12 → fabricks-3.0.14}/tests/integration/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricks
3
- Version: 3.0.12
3
+ Version: 3.0.14
4
4
  Author-email: BMS DWH Team <bi_support@bmsuisse.ch>
5
5
  Requires-Python: <4,>=3.9
6
6
  Requires-Dist: azure-data-tables<13,>=12.5.0
@@ -1,59 +1,41 @@
1
+ import os
2
+ import pathlib
1
3
  from typing import List
2
4
 
3
5
  from fabricks.utils.path import Path
4
6
 
5
7
 
6
- def get_config_from_toml():
7
- import os
8
- import pathlib
9
- import sys
10
-
11
- if sys.version_info >= (3, 11):
12
- import tomllib
13
- else:
14
- import tomli as tomllib # type: ignore
15
-
8
+ def get_config_from_file():
16
9
  path = pathlib.Path(os.getcwd())
17
- while path is not None and not (path / "pyproject.toml").exists():
18
- if path == path.parent:
19
- break
20
- path = path.parent
21
-
22
- if (path / "pyproject.toml").exists():
23
- with open((path / "pyproject.toml"), "rb") as f:
24
- config = tomllib.load(f)
25
- return path, config.get("tool", {}).get("fabricks", {})
26
-
27
- return None, {}
28
10
 
29
-
30
- def get_config_from_json():
31
- import json
32
- import os
33
- import pathlib
34
-
35
- path = pathlib.Path(os.getcwd())
36
- while path is not None and not (path / "fabricksconfig.json").exists():
11
+ while path is not None:
12
+ if (path / "fabricksconfig.json").exists():
13
+ break
14
+ if (path / "pyproject.toml").exists():
15
+ break
37
16
  if path == path.parent:
38
17
  break
18
+
39
19
  path = path.parent
40
20
 
41
21
  if (path / "fabricksconfig.json").exists():
22
+ import json
23
+
42
24
  with open((path / "fabricksconfig.json"), "r") as f:
43
25
  config = json.load(f)
44
- return path, config
45
-
46
- return None, {}
26
+ return path, config, "json"
47
27
 
28
+ if (path / "pyproject.toml").exists():
29
+ import sys
48
30
 
49
- def get_config_from_file():
50
- json_path, json_config = get_config_from_json()
51
- if json_config:
52
- return json_path, json_config, "json"
31
+ if sys.version_info >= (3, 11):
32
+ import tomllib
33
+ else:
34
+ import tomli as tomllib # type: ignore
53
35
 
54
- pyproject_path, pyproject_config = get_config_from_toml()
55
- if pyproject_config:
56
- return pyproject_path, pyproject_config, "pyproject"
36
+ with open((path / "pyproject.toml"), "rb") as f:
37
+ config = tomllib.load(f)
38
+ return path, config.get("tool", {}).get("fabricks", {}), "pyproject"
57
39
 
58
40
  return None, {}, None
59
41
 
@@ -1,8 +1,8 @@
1
- from importlib.util import module_from_spec, spec_from_file_location
2
1
  from typing import Callable
3
2
 
4
3
  from fabricks.context import IS_UNITY_CATALOG, PATH_EXTENDERS
5
4
  from fabricks.context.log import DEFAULT_LOGGER
5
+ from fabricks.utils.helpers import load_module_from_path
6
6
 
7
7
  EXTENDERS: dict[str, Callable] = {}
8
8
 
@@ -14,12 +14,7 @@ def get_extender(name: str) -> Callable:
14
14
  else:
15
15
  DEFAULT_LOGGER.debug(f"could not check if extender exists ({path.string})")
16
16
 
17
- spec = spec_from_file_location(name, path.string)
18
- assert spec, "no valid extender found in {path.string}"
19
- assert spec.loader is not None
20
-
21
- mod = module_from_spec(spec)
22
- spec.loader.exec_module(mod)
17
+ load_module_from_path(name, path)
23
18
  e = EXTENDERS[name]
24
19
 
25
20
  return e
@@ -339,7 +339,7 @@ class Generator(Configurator):
339
339
  self.table.add_table_comment(comment=comment)
340
340
 
341
341
  else:
342
- DEFAULT_LOGGER.debug("table exists, skip creation", extra={"label": self})
342
+ DEFAULT_LOGGER.debug("table already exists, skipped creation", extra={"label": self})
343
343
 
344
344
  def _update_schema(
345
345
  self,
@@ -1,9 +1,9 @@
1
- from importlib.util import module_from_spec, spec_from_file_location
2
1
  from typing import Optional
3
2
 
4
3
  from fabricks.context import PATH_PARSERS
5
4
  from fabricks.core.parsers._types import ParserOptions
6
5
  from fabricks.core.parsers.base import PARSERS, BaseParser
6
+ from fabricks.utils.helpers import load_module_from_path
7
7
 
8
8
 
9
9
  def get_parser(name: str, parser_options: Optional[ParserOptions] = None) -> BaseParser:
@@ -11,12 +11,7 @@ def get_parser(name: str, parser_options: Optional[ParserOptions] = None) -> Bas
11
11
  path = PATH_PARSERS.joinpath(name).append(".py")
12
12
  assert path.exists(), f"parser not found ({path})"
13
13
 
14
- spec = spec_from_file_location(name, path.string)
15
- assert spec, f"parser not found ({path})"
16
- assert spec.loader is not None
17
-
18
- mod = module_from_spec(spec)
19
- spec.loader.exec_module(mod)
14
+ load_module_from_path(name, path)
20
15
  parser = PARSERS[name](parser_options)
21
16
 
22
17
  else:
@@ -228,15 +228,22 @@ class BaseStep:
228
228
  DEFAULT_LOGGER.exception("fail to get jobs", extra={"label": self})
229
229
  raise e
230
230
 
231
- def create_db_objects(self, retry: Optional[bool] = True) -> List[Dict]:
231
+ def create_db_objects(
232
+ self,
233
+ retry: Optional[bool] = True,
234
+ update_lists: Optional[bool] = True,
235
+ incremental: Optional[bool] = False,
236
+ ) -> List[Dict]:
232
237
  DEFAULT_LOGGER.info("create db objects", extra={"label": self})
233
238
 
234
239
  df = self.get_jobs()
235
- table_df = self.database.get_tables()
236
- view_df = self.database.get_views()
237
240
 
238
- df = df.join(table_df, "job_id", how="left_anti")
239
- df = df.join(view_df, "job_id", how="left_anti")
241
+ if incremental:
242
+ table_df = self.database.get_tables()
243
+ view_df = self.database.get_views()
244
+
245
+ df = df.join(table_df, "job_id", how="left_anti")
246
+ df = df.join(view_df, "job_id", how="left_anti")
240
247
 
241
248
  if df:
242
249
  results = run_in_parallel(
@@ -248,15 +255,16 @@ class BaseStep:
248
255
  loglevel=logging.CRITICAL,
249
256
  )
250
257
 
251
- self.update_tables_list()
252
- self.update_views_list()
258
+ if update_lists:
259
+ self.update_tables_list()
260
+ self.update_views_list()
253
261
 
254
262
  errors = [res for res in results if res.get("error")]
255
263
 
256
264
  if errors:
257
265
  if retry:
258
266
  DEFAULT_LOGGER.warning("retry to create jobs", extra={"label": self})
259
- return self.create_db_objects(retry=False)
267
+ return self.create_db_objects(retry=False, update_lists=update_lists, incremental=incremental)
260
268
 
261
269
  return errors
262
270
 
@@ -1,5 +1,4 @@
1
- import time
2
- from typing import TYPE_CHECKING, List, Optional, Union
1
+ from typing import TYPE_CHECKING, Any, List, Optional, Union
3
2
 
4
3
  from azure.data.tables import TableClient, TableServiceClient
5
4
  from pyspark.sql import DataFrame
@@ -99,27 +98,29 @@ class AzureTable:
99
98
  if self._table_client is not None:
100
99
  self._table_client.close()
101
100
 
102
- def submit(self, operations: List, retry: Optional[bool] = True):
103
- try:
104
- partitions = set()
105
- for d in operations:
106
- partitions.add(d[1]["PartitionKey"])
107
-
108
- for p in partitions:
109
- _operations = [d for d in operations if d[1].get("PartitionKey") == p]
110
- t = 50
111
- if len(_operations) < t:
112
- self.table.submit_transaction(_operations)
113
- else:
114
- transactions = [_operations[i : i + t] for i in range(0, len(_operations), t)]
115
- for transaction in transactions:
116
- self.table.submit_transaction(transaction)
117
- except Exception as e:
118
- if retry:
119
- time.sleep(10)
120
- self.submit(operations, retry=False)
101
+ @retry(
102
+ stop=stop_after_attempt(3),
103
+ wait=wait_exponential(multiplier=1, min=1, max=10),
104
+ retry=retry_if_exception_type((Exception)),
105
+ reraise=True,
106
+ )
107
+ def _submit_with_retry(self, data: Any):
108
+ self.table.submit_transaction(data)
109
+
110
+ def submit(self, operations: List):
111
+ partitions = set()
112
+ for d in operations:
113
+ partitions.add(d[1]["PartitionKey"])
114
+
115
+ for p in partitions:
116
+ _operations = [d for d in operations if d[1].get("PartitionKey") == p]
117
+ t = 50
118
+ if len(_operations) < t:
119
+ self._submit_with_retry(_operations)
121
120
  else:
122
- raise e
121
+ transactions = [_operations[i : i + t] for i in range(0, len(_operations), t)]
122
+ for transaction in transactions:
123
+ self._submit_with_retry(transaction)
123
124
 
124
125
  def delete(self, data: Union[List, DataFrame, dict]):
125
126
  if isinstance(data, DataFrameLike):
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ import sys
2
3
  from functools import reduce
3
4
  from queue import Queue
4
5
  from typing import Any, Callable, Iterable, List, Literal, Optional, Union
@@ -216,13 +217,28 @@ def run_notebook(path: Path, timeout: Optional[int] = None, **kwargs):
216
217
  dbutils.notebook.run(path.get_notebook_path(), timeout, {**kwargs}) # type: ignore
217
218
 
218
219
 
219
- def xxhash64(s: Any):
220
+ def xxhash64(s: Any) -> int:
220
221
  df = spark.sql(f"select xxhash64(cast('{s}' as string)) as xxhash64")
221
222
  return df.collect()[0][0]
222
223
 
223
224
 
224
- def md5(s: Any):
225
+ def md5(s: Any) -> str:
225
226
  from hashlib import md5
226
227
 
227
228
  md5 = md5(str(s).encode())
228
229
  return md5.hexdigest()
230
+
231
+
232
+ def load_module_from_path(name: str, path: Path):
233
+ from importlib.util import module_from_spec, spec_from_file_location
234
+
235
+ sys.path.append(str(path.parent))
236
+
237
+ spec = spec_from_file_location(name, path.string)
238
+ assert spec, f"no valid module found in {path.string}"
239
+ assert spec.loader is not None
240
+
241
+ textwrap_module = module_from_spec(spec)
242
+ spec.loader.exec_module(textwrap_module)
243
+
244
+ return textwrap_module
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import posixpath
2
3
  from pathlib import Path as PathlibPath
3
4
  from typing import List, Optional, Union
4
5
 
@@ -120,8 +121,13 @@ class Path:
120
121
  return False
121
122
 
122
123
  def joinpath(self, *other):
123
- new_path = self.pathlibpath.joinpath(*other)
124
- return Path(path=new_path, assume_git=self.assume_git)
124
+ parts = [str(o) for o in other]
125
+ base = self.string
126
+
127
+ joined = posixpath.join(base, *parts)
128
+ new = posixpath.normpath(joined)
129
+
130
+ return Path(path=new, assume_git=self.assume_git)
125
131
 
126
132
  def append(self, other: str):
127
133
  new_path = self.string + other
@@ -1,14 +1,6 @@
1
- if [[ "$OSTYPE" == "linux-gnu"* ]]
2
- then
3
- source ./.venv/bin/activate
4
- elif [[ "$OSTYPE" == "darwin23" ]]
5
- then
6
- source ./.venv/bin/activate
7
- else
8
- source ./.venv/Scripts/activate
9
- fi
1
+ #!/bin/bash
10
2
 
11
- while getopts :f:p:s:y:g:c:a option
3
+ while getopts :f:p:s:y:g:c:a:b option
12
4
  do
13
5
  case $option in
14
6
  a) all="true";;
@@ -17,6 +9,7 @@ do
17
9
  s) sql="true";;
18
10
  y) yaml="true";;
19
11
  g) git="true";;
12
+ b) build="true";;
20
13
  esac
21
14
  done
22
15
 
@@ -50,13 +43,18 @@ then
50
43
  git="true"
51
44
  fi
52
45
 
46
+ if [ -z "$build" ]
47
+ then
48
+ build="true"
49
+ fi
50
+
53
51
  if [ "$all" = "true" ] || [ "$python" = "true" ]
54
52
  then
55
- echo "🌟 autoflake(ing) 🌟"
53
+ echo "🖌️ autoflake(ing) 🖌️"
56
54
  uv run autoflake -r -i .
57
- echo "🌟 isort(ing) 🌟"
55
+ echo "🖌️ isort(ing) 🖌️"
58
56
  uv run isort .
59
- echo "🌟 pycln(ing) 🌟"
57
+ echo "🖌️ pycln(ing) 🖌️"
60
58
  uv run pycln .
61
59
  fi
62
60
 
@@ -69,24 +67,32 @@ fi
69
67
 
70
68
  if [ "$all" = "true" ] || [ "$python" = "true" ]
71
69
  then
72
- echo "🌟 pyright(ing) 🌟"
70
+ echo "🔎 pyright(ing) 🔎"
73
71
  uv run pyright .
74
72
  fi
75
73
 
76
74
  if [ "$all" = "true" ] || [ "$sql" = "true" ]
77
75
  then
78
- echo "🌟 sqlfmt(ing) 🌟"
76
+ echo "🧼 sqlfmt(ing) 🧼"
79
77
  uv run sqlfmt .
80
78
  fi
81
79
 
82
80
  if [ "$all" = "true" ] || [ "$yaml" = "true" ]
83
81
  then
84
- echo "🌟 yamlfix(ing) 🌟"
82
+ echo "🧼 yamlfix(ing) 🧼"
85
83
  uv run yamlfix . --exclude .venv --exclude .dev --exclude .idea --include *.yml
86
84
  fi
87
85
 
88
86
  if [ "$all" = "true" ] || [ "$git" = "true" ]
89
87
  then
90
- echo "🌟 git add(ing) 🌟"
88
+ echo " git add(ing) "
91
89
  git add .
92
90
  fi
91
+
92
+ if [ "$all" = "true" ] || [ "$build" = "true" ]
93
+ then
94
+ echo "🏗️ build wheel 🏗️"
95
+ uv build
96
+ fi
97
+
98
+ echo "🎉 All done 🎉"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fabricks"
3
- version = "3.0.12"
3
+ version = "3.0.14"
4
4
  description = ""
5
5
  authors = [
6
6
  { name = "BMS DWH Team", email = "bi_support@bmsuisse.ch" },
@@ -0,0 +1,16 @@
1
+ # Integration tests — Databricks runbook
2
+
3
+ This document describes how to build the `fabricks` wheel from the `framework` package, upload it to Databricks (DBFS), install it on a cluster, and run notebooks or integration tests on Databricks.
4
+
5
+ **Prerequisites**
6
+ - Python 3.9–3.10 (matches `pyproject.toml`).
7
+ - `uv` installed (for building): `pip install uv`.
8
+
9
+ **How to proceed ?**
10
+ 1) Build the wheel
11
+ - From the repository root (where `framework/pyproject.toml` lives) run `uv build`.
12
+ - The wheel will be written to `dist/` (e.g. `dist/fabricks-3.0.12-py3-none-any.whl`).
13
+
14
+ 2) Upload wheel to DBFS
15
+
16
+ 3) Install the wheel on a cluster
@@ -645,7 +645,7 @@ wheels = [
645
645
 
646
646
  [[package]]
647
647
  name = "fabricks"
648
- version = "3.0.12"
648
+ version = "3.0.14"
649
649
  source = { editable = "." }
650
650
  dependencies = [
651
651
  { name = "azure-data-tables" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes