fabricks 3.0.2__tar.gz → 3.0.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 (436) hide show
  1. {fabricks-3.0.2 → fabricks-3.0.4}/PKG-INFO +1 -1
  2. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/configurator.py +4 -0
  3. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/merger.py +1 -1
  4. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/processor.py +11 -6
  5. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/_types.py +13 -13
  6. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/configurator.py +16 -13
  7. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/bronze.py +25 -12
  8. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/table.py +5 -1
  9. {fabricks-3.0.2 → fabricks-3.0.4}/pyproject.toml +1 -1
  10. {fabricks-3.0.2 → fabricks-3.0.4}/uv.lock +1 -1
  11. {fabricks-3.0.2 → fabricks-3.0.4}/.gitignore +0 -0
  12. {fabricks-3.0.2 → fabricks-3.0.4}/.gitkeep +0 -0
  13. {fabricks-3.0.2 → fabricks-3.0.4}/.python-version +0 -0
  14. {fabricks-3.0.2 → fabricks-3.0.4}/README.md +0 -0
  15. {fabricks-3.0.2 → fabricks-3.0.4}/databricks.yml +0 -0
  16. {fabricks-3.0.2 → fabricks-3.0.4}/docs/helpers/init.md +0 -0
  17. {fabricks-3.0.2 → fabricks-3.0.4}/docs/helpers/job.md +0 -0
  18. {fabricks-3.0.2 → fabricks-3.0.4}/docs/helpers/runtime.md +0 -0
  19. {fabricks-3.0.2 → fabricks-3.0.4}/docs/helpers/schedule.md +0 -0
  20. {fabricks-3.0.2 → fabricks-3.0.4}/docs/helpers/step.md +0 -0
  21. {fabricks-3.0.2 → fabricks-3.0.4}/docs/index.md +0 -0
  22. {fabricks-3.0.2 → fabricks-3.0.4}/docs/introduction/layers.md +0 -0
  23. {fabricks-3.0.2 → fabricks-3.0.4}/docs/introduction/overview.md +0 -0
  24. {fabricks-3.0.2 → fabricks-3.0.4}/docs/reference/cdc.md +0 -0
  25. {fabricks-3.0.2 → fabricks-3.0.4}/docs/reference/checks-data-quality.md +0 -0
  26. {fabricks-3.0.2 → fabricks-3.0.4}/docs/reference/extenders-udfs-parsers.md +0 -0
  27. {fabricks-3.0.2 → fabricks-3.0.4}/docs/reference/table-options.md +0 -0
  28. {fabricks-3.0.2 → fabricks-3.0.4}/docs/steps/BRONZE.md +0 -0
  29. {fabricks-3.0.2 → fabricks-3.0.4}/docs/steps/GOLD.md +0 -0
  30. {fabricks-3.0.2 → fabricks-3.0.4}/docs/steps/SILVER.md +0 -0
  31. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/__init__.py +0 -0
  32. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/__init__.py +0 -0
  33. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/cdc/__init__.py +0 -0
  34. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/cdc/nocdc.py +0 -0
  35. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/cdc/scd1.py +0 -0
  36. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/cdc/scd2.py +0 -0
  37. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/context.py +0 -0
  38. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/core.py +0 -0
  39. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/exceptions.py +0 -0
  40. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/extenders.py +0 -0
  41. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/job_schema.py +0 -0
  42. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/log.py +0 -0
  43. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/metastore/__init__.py +0 -0
  44. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/metastore/database.py +0 -0
  45. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/metastore/table.py +0 -0
  46. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/metastore/view.py +0 -0
  47. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/__init__.py +0 -0
  48. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/add_fabricks.py +0 -0
  49. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/cluster.py +0 -0
  50. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/initialize.py +0 -0
  51. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/optimize.py +0 -0
  52. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/process.py +0 -0
  53. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/run.py +0 -0
  54. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/terminate.py +0 -0
  55. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/notebooks/vacuum.py +0 -0
  56. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/parsers.py +0 -0
  57. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/schedules.py +0 -0
  58. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/udfs.py +0 -0
  59. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/utils.py +0 -0
  60. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/api/views.py +0 -0
  61. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/__init__.py +0 -0
  62. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/__init__.py +0 -0
  63. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/_types.py +0 -0
  64. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/cdc.py +0 -0
  65. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/base/generator.py +0 -0
  66. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/cdc.py +0 -0
  67. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/nocdc.py +0 -0
  68. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/scd.py +0 -0
  69. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/scd1.py +0 -0
  70. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/scd2.py +0 -0
  71. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/__init__.py +0 -0
  72. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/filter/final.sql.jinja +0 -0
  73. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/filter/latest.sql.jinja +0 -0
  74. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/filter/update.sql.jinja +0 -0
  75. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/filter.sql.jinja +0 -0
  76. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/merge/scd1.sql.jinja +0 -0
  77. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/merge/scd2.sql.jinja +0 -0
  78. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/merge.sql.jinja +0 -0
  79. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/__init__.py +0 -0
  80. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/base.sql.jinja +0 -0
  81. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/context.sql.jinja +0 -0
  82. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/current.sql.jinja +0 -0
  83. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/deduplicate_hash.sql.jinja +0 -0
  84. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/deduplicate_key.sql.jinja +0 -0
  85. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/final.sql.jinja +0 -0
  86. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/hash.sql.jinja +0 -0
  87. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/nocdc.sql.jinja +0 -0
  88. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/rectify.sql.jinja +0 -0
  89. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/scd1.sql.jinja +0 -0
  90. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/scd2.sql.jinja +0 -0
  91. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query/slice.sql.jinja +0 -0
  92. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/cdc/templates/query.sql.jinja +0 -0
  93. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/__init__.py +0 -0
  94. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/base.py +0 -0
  95. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/fabricks/__init__.py +0 -0
  96. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/fabricks/base.py +0 -0
  97. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/fabricks/environment.py +0 -0
  98. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/fabricks/pyproject.py +0 -0
  99. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/jobs/__init__.py +0 -0
  100. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/jobs/base.py +0 -0
  101. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/jobs/bronze.py +0 -0
  102. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/jobs/gold.py +0 -0
  103. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/jobs/silver.py +0 -0
  104. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/runtime.py +0 -0
  105. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/steps/__init__.py +0 -0
  106. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/steps/base.py +0 -0
  107. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/steps/bronze.py +0 -0
  108. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/steps/gold.py +0 -0
  109. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/config/steps/silver.py +0 -0
  110. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/__init__.py +0 -0
  111. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/_types.py +0 -0
  112. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/log.py +0 -0
  113. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/runtime.py +0 -0
  114. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/secret.py +0 -0
  115. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/context/spark_session.py +0 -0
  116. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/__init__.py +0 -0
  117. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/__init__.py +0 -0
  118. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/base.py +0 -0
  119. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/generator.py +0 -0
  120. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/log.py +0 -0
  121. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/processor.py +0 -0
  122. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/run.py +0 -0
  123. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/terminator.py +0 -0
  124. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/dags/utils.py +0 -0
  125. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/deploy/__init__.py +0 -0
  126. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/deploy/tables.py +0 -0
  127. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/deploy/udfs.py +0 -0
  128. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/deploy/views.py +0 -0
  129. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/extenders.py +0 -0
  130. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/__init__.py +0 -0
  131. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/__init__.py +0 -0
  132. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/checker.py +0 -0
  133. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/exception.py +0 -0
  134. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/generator.py +0 -0
  135. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/invoker.py +0 -0
  136. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/job.py +0 -0
  137. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/base/processor.py +0 -0
  138. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/get_job.py +0 -0
  139. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/get_job_conf.py +0 -0
  140. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/get_job_id.py +0 -0
  141. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/get_jobs.py +0 -0
  142. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/gold.py +0 -0
  143. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/jobs/silver.py +0 -0
  144. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/parsers/__init__.py +0 -0
  145. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/parsers/_types.py +0 -0
  146. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/parsers/base.py +0 -0
  147. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/parsers/decorator.py +0 -0
  148. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/parsers/get_parser.py +0 -0
  149. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/schedules.py +0 -0
  150. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/__init__.py +0 -0
  151. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/armageddon.py +0 -0
  152. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/generate.py +0 -0
  153. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/job_schema.py +0 -0
  154. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/process.py +0 -0
  155. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/stats.py +0 -0
  156. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/steps.py +0 -0
  157. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/scripts/terminate.py +0 -0
  158. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/steps/__init__.py +0 -0
  159. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/steps/_types.py +0 -0
  160. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/steps/base.py +0 -0
  161. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/steps/get_step.py +0 -0
  162. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/steps/get_step_conf.py +0 -0
  163. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/udfs.py +0 -0
  164. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/utils.py +0 -0
  165. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/core/views.py +0 -0
  166. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/README.md +0 -0
  167. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/__init__.py +0 -0
  168. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/_types.py +0 -0
  169. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/database.py +0 -0
  170. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/dbobject.py +0 -0
  171. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/pyproject.toml +0 -0
  172. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/utils.py +0 -0
  173. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/metastore/view.py +0 -0
  174. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/__init__.py +0 -0
  175. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/azure_queue.py +0 -0
  176. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/azure_table.py +0 -0
  177. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/console.py +0 -0
  178. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/fdict.py +0 -0
  179. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/helpers.py +0 -0
  180. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/log.py +0 -0
  181. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/path.py +0 -0
  182. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/pip.py +0 -0
  183. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/pydantic.py +0 -0
  184. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/read/__init__.py +0 -0
  185. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/read/_types.py +0 -0
  186. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/read/read.py +0 -0
  187. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/read/read_excel.py +0 -0
  188. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/read/read_yaml.py +0 -0
  189. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/schema/__init__.py +0 -0
  190. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/schema/get_json_schema_for_type.py +0 -0
  191. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/schema/get_schema_for_type.py +0 -0
  192. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/spark.py +0 -0
  193. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/sqlglot.py +0 -0
  194. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/write/__init__.py +0 -0
  195. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/write/delta.py +0 -0
  196. {fabricks-3.0.2 → fabricks-3.0.4}/fabricks/utils/write/stream.py +0 -0
  197. {fabricks-3.0.2 → fabricks-3.0.4}/format.sh +0 -0
  198. {fabricks-3.0.2 → fabricks-3.0.4}/mkdocs.yml +0 -0
  199. {fabricks-3.0.2 → fabricks-3.0.4}/tests/__init__.py +0 -0
  200. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/__init__.py +0 -0
  201. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/_types.py +0 -0
  202. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/add_fabricks.py +0 -0
  203. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/armageddon.py +0 -0
  204. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/compare.py +0 -0
  205. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/king/2022/01/01/0001/king_202201010001.json +0 -0
  206. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/king/2022/01/02/0001/king_202201020001.json +0 -0
  207. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/king__deletelog/2022/02/01/0001/king_202201010001.json +0 -0
  208. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/prince/2022/01/01/0001/prince_202201010001.json +0 -0
  209. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/princess/2022/01/01/0001/princess_202201010001.json +0 -0
  210. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/queen/2022/01/01/0001/queen_202201010001.json +0 -0
  211. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/queen/2022/01/02/0001/queen_202201020001.json +0 -0
  212. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/queen/2022/01/04/0001/queen_202201040001.json +0 -0
  213. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/queen__deletelog/2022/01/03/0001/queen_202201030001.json +0 -0
  214. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/queen__deletelog/2022/01/04/0001/queen_202201040001.json +0 -0
  215. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job1/too_many_columns/2022/01/01/0001/sample_202201010001.json +0 -0
  216. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job10/king/2022/10/01/0001/king_202210010001.json +0 -0
  217. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job10/king/2022/10/02/0001/king_202210020001.json +0 -0
  218. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job10/king/2022/10/02/0002/king_202210020002.json +0 -0
  219. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job10/king/2022/10/03/0001/king_202210030001.json +0 -0
  220. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job10/queen__deletelog/2022/10/01/0001/queen_202210010001.json +0 -0
  221. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job11/king/2022/11/01/0001/king_202210010001.json +0 -0
  222. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job11/king__deletelog/2022/11/01/0001/king_202211010001.json +0 -0
  223. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job2/king/2022/02/05/0001/king_202202050001.json +0 -0
  224. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job2/prince__deletelog/2022/02/01/0001/prince_202202010001.json +0 -0
  225. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job2/princess/2022/02/05/0001/princess_202202050001.json +0 -0
  226. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job2/queen/2022/02/05/0001/queen_202202050001.json +0 -0
  227. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job3/king/2022/03/01/001234/king_20220301001234.json +0 -0
  228. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job3/king__deletelog/2022/03/01/001234/king_20220301001234.json +0 -0
  229. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job3/queen/2022/03/05/001234/queen_20220305001234.json +0 -0
  230. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job3/queen/2022/03/06/0001/queen_202203060001.json +0 -0
  231. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job4/king/2022/04/01/0001/king_202204010001.json +0 -0
  232. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job4/monarch/2022/04/01/0001/monarch_202204010001.json +0 -0
  233. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job4/queen/2022/04/01/0001/queen_202204010001.json +0 -0
  234. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job4/regent/2022/04/01/0001/regent_202204010001.json +0 -0
  235. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job5/king/2022/05/01/0001/king_202205010001.json +0 -0
  236. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job5/queen/2022/05/01/0001/queen_202205010001.json +0 -0
  237. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job6/king/2022/06/01/0001/king_202206010001.json +0 -0
  238. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job6/queen/2022/06/01/0001/queen_202206010001.json +0 -0
  239. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job7/king/2022/07/01/0001/king_202207010001.json +0 -0
  240. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job7/queen/2022/07/01/0001/queen_202207010001.json +0 -0
  241. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job8/king/2022/08/01/0001/king_202208010001.json +0 -0
  242. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job8/queen/2022/08/01/0001/queen_202208010001.json +0 -0
  243. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king/2022/09/01/0001/king_202209010001.json +0 -0
  244. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king/2022/09/03/0001/king_202209030001.json +0 -0
  245. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king/2022/09/03/0002/king_202209030002.json +0 -0
  246. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king/2022/09/08/0001/king_202209080001.json +0 -0
  247. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king__deletelog/2022/09/02/0001/king_202209020001.json +0 -0
  248. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king__deletelog/2022/09/04/0001/king_202209040001.json +0 -0
  249. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king__deletelog/2022/09/04/0005/king_202209040005.json +0 -0
  250. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/king__deletelog/2022/09/04/0009/king_202209040009.json +0 -0
  251. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/queen/2022/09/08/0001/queen_202209080001.json +0 -0
  252. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/data/job9/queen__deletelog/2022/09/01/0001/queen_202209030001.json +0 -0
  253. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job01.sql +0 -0
  254. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job02.sql +0 -0
  255. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job03.sql +0 -0
  256. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job04.sql +0 -0
  257. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job05.sql +0 -0
  258. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job06.sql +0 -0
  259. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job07.sql +0 -0
  260. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job08.sql +0 -0
  261. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job09.sql +0 -0
  262. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job10.sql +0 -0
  263. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd1/job11.sql +0 -0
  264. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job01.sql +0 -0
  265. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job02.sql +0 -0
  266. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job03.sql +0 -0
  267. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job04.sql +0 -0
  268. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job05.sql +0 -0
  269. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job06.sql +0 -0
  270. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job07.sql +0 -0
  271. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job08.sql +0 -0
  272. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job09.sql +0 -0
  273. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job10.sql +0 -0
  274. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/gold/scd2/job11.sql +0 -0
  275. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job01.sql +0 -0
  276. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job02.sql +0 -0
  277. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job03.sql +0 -0
  278. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job04.sql +0 -0
  279. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job05.sql +0 -0
  280. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job06.sql +0 -0
  281. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job07.sql +0 -0
  282. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job08.sql +0 -0
  283. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job09.sql +0 -0
  284. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job10.sql +0 -0
  285. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd1/job11.sql +0 -0
  286. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job01.sql +0 -0
  287. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job02.sql +0 -0
  288. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job03.sql +0 -0
  289. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job04.sql +0 -0
  290. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job05.sql +0 -0
  291. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job06.sql +0 -0
  292. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job07.sql +0 -0
  293. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job08.sql +0 -0
  294. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job09.sql +0 -0
  295. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job10.sql +0 -0
  296. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/expected/silver/scd2/job11.sql +0 -0
  297. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/init.sh +0 -0
  298. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/initialize.py +0 -0
  299. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/__init__.py +0 -0
  300. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/__init__.py +0 -0
  301. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_cdc.py +0 -0
  302. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_check.py +0 -0
  303. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_dependency.py +0 -0
  304. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_gold.py +0 -0
  305. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_invoke.py +0 -0
  306. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_overwrite.py +0 -0
  307. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_schedule.py +0 -0
  308. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_semantic.py +0 -0
  309. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job1/test_silver.py +0 -0
  310. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job2/__init__.py +0 -0
  311. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job2/test_gold.py +0 -0
  312. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job2/test_run.py +0 -0
  313. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job2/test_semantic.py +0 -0
  314. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job2/test_silver.py +0 -0
  315. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job3/__init__.py +0 -0
  316. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job3/test_gold.py +0 -0
  317. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job3/test_run.py +0 -0
  318. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job3/test_silver.py +0 -0
  319. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job4/__init__.py +0 -0
  320. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job4/test_gold.py +0 -0
  321. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job4/test_run.py +0 -0
  322. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job5/__init__.py +0 -0
  323. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/jobs/job5/test_step.py +0 -0
  324. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/reset.py +0 -0
  325. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/run.py +0 -0
  326. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runjobs.py +0 -0
  327. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtests.py +0 -0
  328. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/.gitignore +0 -0
  329. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/__init__.py +0 -0
  330. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/add_fabricks.py +0 -0
  331. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.kings.yml +0 -0
  332. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.memory.yml +0 -0
  333. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.monarchs.yml +0 -0
  334. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.princes.yml +0 -0
  335. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.princesses.yml +0 -0
  336. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.queens.yml +0 -0
  337. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/bronze/_config.regents.yml +0 -0
  338. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/conf.fabricks.yml +0 -0
  339. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/conf.uc.fabricks.yml +0 -0
  340. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/extenders/__init__.py +0 -0
  341. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/extenders/add_country.py +0 -0
  342. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/extenders/drop__cols.py +0 -0
  343. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/extenders/force_reload.py +0 -0
  344. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/extenders/monarch.py +0 -0
  345. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/parsers/__init__.py +0 -0
  346. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/parsers/delete_log.py +0 -0
  347. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/parsers/monarch.py +0 -0
  348. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/requirements.txt +0 -0
  349. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/schedules/schedule.yml +0 -0
  350. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/udfs/__init__.py +0 -0
  351. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/udfs/addition.py +0 -0
  352. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/udfs/identity.py +0 -0
  353. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/udfs/key.sql +0 -0
  354. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/udfs/parse_phone_number.py +0 -0
  355. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/fabricks/views/monarch.sql +0 -0
  356. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/_config.check.yml +0 -0
  357. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/count_must_equal.sql +0 -0
  358. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/duplicate_identity.sql +0 -0
  359. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/duplicate_key.sql +0 -0
  360. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/fail.pre_run.sql +0 -0
  361. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/fail.sql +0 -0
  362. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/max_rows.sql +0 -0
  363. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/min_rows.sql +0 -0
  364. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/skip.skip.sql +0 -0
  365. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/skip.sql +0 -0
  366. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/warning.post_run.sql +0 -0
  367. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/check/warning.sql +0 -0
  368. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/dim/_config.dim.yml +0 -0
  369. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/dim/date.sql +0 -0
  370. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/dim/identity.sql +0 -0
  371. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/dim/overwrite.sql +0 -0
  372. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/dim/time.sql +0 -0
  373. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/_config.fact.yml +0 -0
  374. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/append.sql +0 -0
  375. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/deduplicate.sql +0 -0
  376. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/dependency_notebook.ipynb +0 -0
  377. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/dependency_sql.sql +0 -0
  378. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/manual.sql +0 -0
  379. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/memory.sql +0 -0
  380. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/notebook.ipynb +0 -0
  381. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/option.sql +0 -0
  382. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/order_duplicate.sql +0 -0
  383. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/overwrite.sql +0 -0
  384. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/fact/udf.sql +0 -0
  385. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/_config.invoke.yml +0 -0
  386. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/failed_pre_run.sql +0 -0
  387. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/notebook.py +0 -0
  388. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/notebook_without_argument.ipynb +0 -0
  389. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/notebooks.py +0 -0
  390. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/notebooks_failed_pre_run.sql +0 -0
  391. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/post_run/exe.py +0 -0
  392. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/post_run.sql +0 -0
  393. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/pre_run/exe.py +0 -0
  394. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py +0 -0
  395. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/timedout.py +0 -0
  396. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/invoke/timedout_pre_run.sql +0 -0
  397. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/_config.scd1.yml +0 -0
  398. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/complete.sql +0 -0
  399. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/identity.sql +0 -0
  400. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/last_timestamp.sql +0 -0
  401. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/memory.sql +0 -0
  402. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd1/update.sql +0 -0
  403. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/_config.scd2.yml +0 -0
  404. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/complete.sql +0 -0
  405. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/correct_valid_from.sql +0 -0
  406. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/last_timestamp.sql +0 -0
  407. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/memory.sql +0 -0
  408. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/scd2/update.sql +0 -0
  409. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/type_widening/_config.type_widening.yml +0 -0
  410. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/type_widening/merge.sql +0 -0
  411. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/gold/type_widening/overwrite.sql +0 -0
  412. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/transf/fact/_config.transf.yml +0 -0
  413. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/transf/fact/memory.sql +0 -0
  414. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/gold/transf/post_run.py +0 -0
  415. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/job-schema.json +0 -0
  416. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/_config.semantic.yml +0 -0
  417. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/job_option.sql +0 -0
  418. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/powerbi.sql +0 -0
  419. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/schema_drift.sql +0 -0
  420. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/step_option.sql +0 -0
  421. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/semantic/fact/zstd.sql +0 -0
  422. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.kings_and_queens.yml +0 -0
  423. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.memory.yml +0 -0
  424. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.monarchs.yml +0 -0
  425. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.princes.yml +0 -0
  426. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.princesses.yml +0 -0
  427. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/silver/_config.regents.yml +0 -0
  428. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.kings.yml +0 -0
  429. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.memory.yml +0 -0
  430. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.monarchs.yml +0 -0
  431. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.princes.yml +0 -0
  432. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.princesses.yml +0 -0
  433. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.queens.yml +0 -0
  434. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/runtime/uc/bronze/_config.regents.yml +0 -0
  435. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/schedule.py +0 -0
  436. {fabricks-3.0.2 → fabricks-3.0.4}/tests/integration/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricks
3
- Version: 3.0.2
3
+ Version: 3.0.4
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
@@ -37,6 +37,10 @@ class Configurator(ABC):
37
37
  def is_registered(self):
38
38
  return self.table.is_registered
39
39
 
40
+ @property
41
+ def qualified_name(self):
42
+ return f"{self.database}_{'_'.join(self.levels)}"
43
+
40
44
  @abstractmethod
41
45
  def get_query(self, src: Union[DataFrame, Table, str], **kwargs):
42
46
  raise NotImplementedError()
@@ -101,7 +101,7 @@ class Merger(Processor):
101
101
  self.create_table(src, **kwargs)
102
102
 
103
103
  df = self.get_data(src, **kwargs)
104
- global_temp_view = f"{self.database}_{'_'.join(self.levels)}__merge"
104
+ global_temp_view = f"{self.qualified_name}__merge"
105
105
  view = create_or_replace_global_temp_view(global_temp_view, df, uuid=kwargs.get("uuid", False))
106
106
 
107
107
  merge = self.get_merge_query(view, **kwargs)
@@ -16,7 +16,7 @@ from fabricks.utils.sqlglot import fix as fix_sql
16
16
  class Processor(Generator):
17
17
  def get_data(self, src: Union[DataFrame, Table, str], **kwargs) -> DataFrame:
18
18
  if isinstance(src, (DataFrame, CDataFrame)):
19
- name = f"{self.database}_{'_'.join(self.levels)}__data"
19
+ name = f"{self.qualified_name}__data"
20
20
  global_temp_view = create_or_replace_global_temp_view(name, src, uuid=kwargs.get("uuid", False))
21
21
  src = f"select * from {global_temp_view}"
22
22
 
@@ -347,8 +347,11 @@ class Processor(Generator):
347
347
  df = self.get_data(src, **kwargs)
348
348
  df = self.reorder_columns(df)
349
349
 
350
+ name = f"{self.qualified_name}__append"
351
+ create_or_replace_global_temp_view(name, df, uuid=kwargs.get("uuid", False))
352
+
350
353
  DEFAULT_LOGGER.debug("append", extra={"job": self})
351
- df.write.format("delta").mode("append").save(self.table.delta_path.string)
354
+ self.spark.sql(f"insert into table {self.table} by name select * from global_temp.{name}")
352
355
 
353
356
  def overwrite(
354
357
  self,
@@ -366,9 +369,11 @@ class Processor(Generator):
366
369
  if kwargs.get("update_where"):
367
370
  dynamic = True
368
371
 
369
- writer = df.write.format("delta").mode("overwrite")
370
372
  if dynamic:
371
- writer.option("partitionOverwriteMode", "dynamic")
373
+ self.spark.sql("set spark.sql.sources.partitionOverwriteMode = dynamic")
374
+
375
+ name = f"{self.qualified_name}__overwrite"
376
+ create_or_replace_global_temp_view(name, df, uuid=kwargs.get("uuid", False))
372
377
 
373
- DEFAULT_LOGGER.info("overwrite", extra={"job": self})
374
- writer.save(self.table.delta_path.string)
378
+ DEFAULT_LOGGER.debug("overwrite", extra={"job": self})
379
+ self.spark.sql(f"insert overwrite table {self.table} by name select * from global_temp.{name}")
@@ -1,5 +1,5 @@
1
1
  from dataclasses import dataclass
2
- from typing import Any, List, Literal, Optional, TypedDict, Union
2
+ from typing import List, Literal, Optional, TypedDict, Union
3
3
 
4
4
  from pydantic import BaseModel, ConfigDict, model_validator
5
5
  from pyspark.sql.types import StringType, StructField, StructType
@@ -33,8 +33,8 @@ Origins = Literal["parser", "job"]
33
33
 
34
34
 
35
35
  class SparkOptions(TypedDict):
36
- sql: Optional[dict[Any, Any]]
37
- conf: Optional[dict[Any, Any]]
36
+ sql: Optional[dict[str, str]]
37
+ conf: Optional[dict[str, str]]
38
38
 
39
39
 
40
40
  class TableOptions(TypedDict):
@@ -45,17 +45,17 @@ class TableOptions(TypedDict):
45
45
  cluster_by: Optional[List[str]]
46
46
  powerbi: Optional[bool]
47
47
  bloomfilter_by: Optional[List[str]]
48
- constraints: Optional[dict[Any, Any]]
49
- properties: Optional[dict[Any, Any]]
48
+ constraints: Optional[dict[str, str]]
49
+ properties: Optional[dict[str, str]]
50
50
  comment: Optional[str]
51
- calculated_columns: Optional[dict[Any, Any]]
51
+ calculated_columns: Optional[dict[str, str]]
52
52
  retention_days: Optional[int]
53
53
 
54
54
 
55
55
  class _InvokeOptions(TypedDict):
56
56
  notebook: str
57
57
  timeout: int
58
- arguments: Optional[dict[Any, Any]]
58
+ arguments: Optional[dict[str, str]]
59
59
 
60
60
 
61
61
  class InvokerOptions(TypedDict):
@@ -66,7 +66,7 @@ class InvokerOptions(TypedDict):
66
66
 
67
67
  class ExtenderOptions(TypedDict):
68
68
  extender: str
69
- arguments: Optional[dict[Any, Any]]
69
+ arguments: Optional[dict[str, str]]
70
70
 
71
71
 
72
72
  class CheckOptions(TypedDict):
@@ -90,7 +90,7 @@ class BronzeOptions(TypedDict):
90
90
  filter_where: Optional[str]
91
91
  # extra
92
92
  encrypted_columns: Optional[List[str]]
93
- calculated_columns: Optional[dict[Any, Any]]
93
+ calculated_columns: Optional[dict[str, str]]
94
94
  operation: Optional[Operations]
95
95
  timeout: Optional[int]
96
96
 
@@ -106,7 +106,7 @@ class SilverOptions(TypedDict):
106
106
  deduplicate: Optional[bool]
107
107
  stream: Optional[bool]
108
108
  # else
109
- order_duplicate_by: Optional[dict[Any, Any]]
109
+ order_duplicate_by: Optional[dict[str, str]]
110
110
  timeout: Optional[int]
111
111
 
112
112
 
@@ -141,7 +141,7 @@ class BaseJobConf:
141
141
 
142
142
  @dataclass
143
143
  class JobConfBronze(BaseJobConf):
144
- step: str
144
+ step: TBronze
145
145
  options: BronzeOptions
146
146
  table_options: Optional[TableOptions] = None
147
147
  parser_options: Optional[ParserOptions] = None
@@ -155,7 +155,7 @@ class JobConfBronze(BaseJobConf):
155
155
 
156
156
  @dataclass
157
157
  class JobConfSilver(BaseJobConf):
158
- step: str
158
+ step: TSilver
159
159
  options: SilverOptions
160
160
  table_options: Optional[TableOptions] = None
161
161
  check_options: Optional[CheckOptions] = None
@@ -168,7 +168,7 @@ class JobConfSilver(BaseJobConf):
168
168
 
169
169
  @dataclass
170
170
  class JobConfGold(BaseJobConf):
171
- step: str
171
+ step: TGold
172
172
  options: Optional[GoldOptions]
173
173
  table_options: Optional[TableOptions] = None
174
174
  check_options: Optional[CheckOptions] = None
@@ -301,9 +301,8 @@ class Configurator(ABC):
301
301
  """
302
302
  if self.mode == "memory":
303
303
  DEFAULT_LOGGER.debug("memory (no optimize)", extra={"job": self})
304
- else:
305
- assert self.table.exists()
306
304
 
305
+ else:
307
306
  if vacuum:
308
307
  self.vacuum()
309
308
  if optimize:
@@ -312,19 +311,23 @@ class Configurator(ABC):
312
311
  self.table.compute_statistics()
313
312
 
314
313
  def vacuum(self):
315
- job = self.options.table.get("retention_days")
316
- step = self.step_conf.get("table_options", {}).get("retention_days", None)
317
- runtime = CONF_RUNTIME.get("options", {}).get("retention_days")
318
-
319
- if job is not None:
320
- retention_days = job
321
- elif step:
322
- retention_days = step
314
+ if self.mode == "memory":
315
+ DEFAULT_LOGGER.debug("memory (no vacuum)", extra={"job": self})
316
+
323
317
  else:
324
- assert runtime
325
- retention_days = runtime
318
+ job = self.options.table.get("retention_days")
319
+ step = self.step_conf.get("table_options", {}).get("retention_days", None)
320
+ runtime = CONF_RUNTIME.get("options", {}).get("retention_days")
321
+
322
+ if job is not None:
323
+ retention_days = job
324
+ elif step:
325
+ retention_days = step
326
+ else:
327
+ assert runtime
328
+ retention_days = runtime
326
329
 
327
- self.table.vacuum(retention_days=retention_days)
330
+ self.table.vacuum(retention_days=retention_days)
328
331
 
329
332
  def __str__(self):
330
333
  return f"{self.step}.{self.topic}_{self.item}"
@@ -103,6 +103,21 @@ class Bronze(BaseJob):
103
103
  DEFAULT_LOGGER.debug("drop external table", extra={"job": self})
104
104
  self.spark.sql(f"drop table if exists {self.qualified_name}")
105
105
 
106
+ def analyze_external_table(self):
107
+ DEFAULT_LOGGER.debug("analyze external table", extra={"job": self})
108
+ self.spark.sql(f"analyze table {self.qualified_name} compute statistics")
109
+
110
+ def vacuum_external_table(self, retention_hours: Optional[int] = 168):
111
+ from delta import DeltaTable
112
+
113
+ DEFAULT_LOGGER.debug("vacuum external table", extra={"job": self})
114
+ try:
115
+ dt = DeltaTable.forPath(self.spark, self.data_path.string)
116
+ self.spark.sql("SET self.spark.databricks.delta.retentionDurationCheck.enabled = False")
117
+ dt.vacuum(retention_hours)
118
+ finally:
119
+ self.spark.sql("SET self.spark.databricks.delta.retentionDurationCheck.enabled = True")
120
+
106
121
  def optimize_external_table(
107
122
  self,
108
123
  vacuum: Optional[bool] = True,
@@ -110,20 +125,10 @@ class Bronze(BaseJob):
110
125
  ):
111
126
  DEFAULT_LOGGER.debug("optimize external table", extra={"job": self})
112
127
  if vacuum:
113
- from delta import DeltaTable
114
-
115
- dt = DeltaTable.forPath(self.spark, self.data_path.string)
116
- retention_days = 7
117
- DEFAULT_LOGGER.debug(f"{self.data_path} - vacuum table (removing files older than {retention_days} days)")
118
- try:
119
- self.spark.sql("SET self.spark.databricks.delta.retentionDurationCheck.enabled = False")
120
- dt.vacuum(retention_days * 24)
121
- finally:
122
- self.spark.sql("SET self.spark.databricks.delta.retentionDurationCheck.enabled = True")
128
+ self.vacuum_external_table()
123
129
 
124
130
  if analyze:
125
- DEFAULT_LOGGER.debug(f"{self.data_path} - compute delta statistics")
126
- self.spark.sql(f"analyze table delta.`{self.data_path}` compute delta statistics")
131
+ self.analyze_external_table()
127
132
 
128
133
  @property
129
134
  def parser(self) -> BaseParser:
@@ -370,6 +375,14 @@ class Bronze(BaseJob):
370
375
  else:
371
376
  super().optimize(vacuum=vacuum, optimize=optimize, analyze=analyze)
372
377
 
378
+ def vacuum(self):
379
+ if self.mode == "memory":
380
+ DEFAULT_LOGGER.info("memory (no vacuum)", extra={"job": self})
381
+ elif self.mode == "register":
382
+ self.vacuum_external_table()
383
+ else:
384
+ super().vacuum()
385
+
373
386
  def overwrite(self):
374
387
  self.truncate()
375
388
  self.run()
@@ -433,7 +433,11 @@ class Table(DbObject):
433
433
  cols = [
434
434
  f"`{name}`"
435
435
  for name, dtype in self.dataframe.dtypes
436
- if not dtype.startswith("struct") and not dtype.startswith("array") and name not in ["__metadata"]
436
+ if not dtype.startswith("struct")
437
+ and not dtype.startswith("array")
438
+ and not dtype.startswith("variant")
439
+ and not dtype.startswith("map")
440
+ and name not in ["__metadata"]
437
441
  ]
438
442
  cols = ", ".join(sorted(cols))
439
443
  self.spark.sql(f"analyze table {self.qualified_name} compute statistics for columns {cols}")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fabricks"
3
- version = "3.0.2"
3
+ version = "3.0.4"
4
4
  description = ""
5
5
  authors = [
6
6
  { name = "BMS DWH Team", email = "bi_support@bmsuisse.ch" },
@@ -627,7 +627,7 @@ wheels = [
627
627
 
628
628
  [[package]]
629
629
  name = "fabricks"
630
- version = "3.0.2"
630
+ version = "3.0.4"
631
631
  source = { editable = "." }
632
632
  dependencies = [
633
633
  { 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
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
File without changes
File without changes