fabricks 3.0.18__tar.gz → 4.0.0__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.
- {fabricks-3.0.18 → fabricks-4.0.0}/PKG-INFO +9 -4
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/context.py +15 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/schedule.py +2 -3
- fabricks-4.0.0/fabricks/api/parsers.py +4 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/utils.py +3 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/__init__.py +1 -2
- fabricks-4.0.0/fabricks/cdc/base/__init__.py +3 -0
- fabricks-4.0.0/fabricks/cdc/base/_types.py +12 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/base/configurator.py +5 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/base/generator.py +7 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/base/merger.py +2 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/base/processor.py +15 -0
- fabricks-4.0.0/fabricks/cdc/templates/README.md +490 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/base.sql.jinja +1 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/current.sql.jinja +4 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/merges/scd1.sql.jinja +6 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/merges/scd2.sql.jinja +6 -0
- fabricks-4.0.0/fabricks/cdc/templates/queries/context.sql.jinja +197 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/query.sql.jinja +1 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/context/__init__.py +13 -1
- fabricks-4.0.0/fabricks/context/config.py +18 -0
- fabricks-4.0.0/fabricks/context/log.py +168 -0
- fabricks-4.0.0/fabricks/context/runtime.py +59 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/context/spark_session.py +8 -7
- fabricks-4.0.0/fabricks/context/utils.py +67 -0
- fabricks-4.0.0/fabricks/core/__init__.py +4 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/base.py +5 -5
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/processor.py +2 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/extenders.py +1 -1
- fabricks-4.0.0/fabricks/core/job_schema.py +42 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/__init__.py +1 -7
- fabricks-4.0.0/fabricks/core/jobs/base/README.md +1545 -0
- fabricks-4.0.0/fabricks/core/jobs/base/__init__.py +3 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/checker.py +7 -7
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/configurator.py +142 -63
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/generator.py +38 -34
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/invoker.py +48 -63
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/processor.py +13 -28
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/bronze.py +88 -38
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/get_job.py +3 -6
- fabricks-4.0.0/fabricks/core/jobs/get_job_conf.py +103 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/get_jobs.py +10 -11
- fabricks-4.0.0/fabricks/core/jobs/get_schedules.py +18 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/gold.py +96 -43
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/silver.py +42 -22
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/masks.py +11 -8
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/parsers/__init__.py +0 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/parsers/base.py +10 -10
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/parsers/decorator.py +1 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/parsers/get_parser.py +4 -5
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/process.py +1 -4
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/steps/base.py +27 -17
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/steps/get_step.py +2 -4
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/steps/get_step_conf.py +3 -7
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/udfs.py +9 -8
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/views.py +2 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/__init__.py +27 -16
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/masks.py +1 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/notebooks.py +19 -16
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/schedules.py +1 -1
- fabricks-4.0.0/fabricks/deploy/tables.py +99 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/udfs.py +2 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/views.py +15 -16
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/database.py +3 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/table.py +103 -68
- fabricks-4.0.0/fabricks/models/__init__.py +125 -0
- fabricks-4.0.0/fabricks/models/common.py +79 -0
- fabricks-4.0.0/fabricks/models/config.py +225 -0
- fabricks-4.0.0/fabricks/models/dependency.py +50 -0
- fabricks-4.0.0/fabricks/models/job.py +157 -0
- fabricks-4.0.0/fabricks/models/path.py +17 -0
- fabricks-4.0.0/fabricks/models/runtime.py +182 -0
- fabricks-4.0.0/fabricks/models/schedule.py +21 -0
- fabricks-4.0.0/fabricks/models/step.py +103 -0
- fabricks-4.0.0/fabricks/models/table.py +77 -0
- fabricks-3.0.18/fabricks/core/jobs/get_job_id.py → fabricks-4.0.0/fabricks/models/utils.py +2 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/helpers.py +6 -5
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/log.py +25 -6
- fabricks-4.0.0/fabricks/utils/path.py +415 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/pip.py +7 -7
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/read/read.py +23 -22
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/read/read_yaml.py +2 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/write/delta.py +4 -4
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/write/stream.py +2 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/format.sh +1 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/pyproject.toml +21 -6
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/_types.py +6 -6
- fabricks-4.0.0/tests/integration/add_missing_modules.py +28 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/fabricksconfig.json +2 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job2/test_silver.py +2 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job5/test_step.py +3 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/reset.py +5 -4
- fabricks-4.0.0/tests/integration/runtime/fabricks/masks/dummy.sql +1 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/schedule.py +2 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/parsers/delete_log.py +13 -11
- fabricks-4.0.0/tests/integration/runtime/fabricks/parsers/monarch.py +126 -0
- fabricks-4.0.0/tests/integration/runtime/fabricks/udfs/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/dependency_notebook.ipynb +1 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/notebook.ipynb +5 -2
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/_config.invoke.yml +26 -1
- fabricks-4.0.0/tests/integration/runtime/gold/gold/invoke/complete_notebook.py +51 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/_config.scd1.yml +3 -1
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/_config.scd2.yml +1 -0
- fabricks-3.0.18/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py → fabricks-4.0.0/tests/integration/runtime/gold/transf/post_run.py +4 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/schedule.py +2 -3
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/utils.py +8 -5
- fabricks-4.0.0/utilities.sh +164 -0
- fabricks-4.0.0/uv.lock +5496 -0
- fabricks-3.0.18/fabricks/api/parsers.py +0 -3
- fabricks-3.0.18/fabricks/cdc/base/__init__.py +0 -4
- fabricks-3.0.18/fabricks/cdc/base/_types.py +0 -10
- fabricks-3.0.18/fabricks/cdc/templates/queries/context.sql.jinja +0 -189
- fabricks-3.0.18/fabricks/context/_types.py +0 -137
- fabricks-3.0.18/fabricks/context/config.py +0 -127
- fabricks-3.0.18/fabricks/context/helpers.py +0 -63
- fabricks-3.0.18/fabricks/context/log.py +0 -77
- fabricks-3.0.18/fabricks/context/runtime.py +0 -93
- fabricks-3.0.18/fabricks/context/utils.py +0 -80
- fabricks-3.0.18/fabricks/core/__init__.py +0 -4
- fabricks-3.0.18/fabricks/core/job_schema.py +0 -32
- fabricks-3.0.18/fabricks/core/jobs/base/__init__.py +0 -10
- fabricks-3.0.18/fabricks/core/jobs/base/_types.py +0 -284
- fabricks-3.0.18/fabricks/core/jobs/get_job_conf.py +0 -152
- fabricks-3.0.18/fabricks/core/jobs/get_schedules.py +0 -32
- fabricks-3.0.18/fabricks/core/parsers/_types.py +0 -6
- fabricks-3.0.18/fabricks/deploy/tables.py +0 -82
- fabricks-3.0.18/fabricks/utils/fdict.py +0 -240
- fabricks-3.0.18/fabricks/utils/path.py +0 -248
- fabricks-3.0.18/fabricks/utils/pydantic.py +0 -94
- fabricks-3.0.18/fabricks/utils/schema/__init__.py +0 -7
- fabricks-3.0.18/fabricks/utils/schema/get_json_schema_for_type.py +0 -161
- fabricks-3.0.18/fabricks/utils/schema/get_schema_for_type.py +0 -99
- fabricks-3.0.18/tests/integration/runtime/fabricks/masks/dummy.sql +0 -1
- fabricks-3.0.18/tests/integration/runtime/fabricks/parsers/monarch.py +0 -22
- fabricks-3.0.18/uv.lock +0 -3621
- {fabricks-3.0.18 → fabricks-4.0.0}/.gitignore +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/.gitkeep +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/.python-version +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/README.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/databricks.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/helpers/init.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/helpers/job.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/helpers/runtime.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/helpers/schedule.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/helpers/step.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/index.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/introduction/layers.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/introduction/overview.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/reference/cdc.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/reference/checks-data-quality.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/reference/extenders-udfs-parsers.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/reference/table-options.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/steps/BRONZE.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/steps/GOLD.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/docs/steps/SILVER.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/cdc/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/cdc/nocdc.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/cdc/scd1.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/cdc/scd2.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/core.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/deploy.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/exceptions.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/extenders.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/job_schema.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/log.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/masks.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/metastore/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/metastore/database.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/metastore/table.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/metastore/view.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/cluster.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/initialize.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/process.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/notebooks/terminate.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/schedules.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/udfs.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/version.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/api/views.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/base/cdc.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/cdc.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/nocdc.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/scd.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/scd1.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/scd2.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/deduplicate_hash.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/deduplicate_key.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/rectify.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/ctes/slice.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/filter.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/filters/final.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/filters/latest.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/filters/update.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/macros/bactick.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/macros/hash.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/merge.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/merges/nocdc.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/final.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/nocdc/complete.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/nocdc/update.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/scd1.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/cdc/templates/queries/scd2.sql.jinja +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/context/secret.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/generator.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/log.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/terminator.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/dags/utils.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/exception.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/base/job.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/jobs/get_schedule.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/parsers/utils.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/diagrams.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/generate.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/get_schedule.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/get_schedules.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/terminate.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/schedules/views.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/steps/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/core/steps/_types.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/deploy/utils.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/README.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/_types.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/dbobject.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/pyproject.toml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/utils.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/metastore/view.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/_types.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/azure_queue.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/azure_table.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/console.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/mermaid.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/read/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/read/_types.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/read/read_excel.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/spark.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/sqlglot.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/fabricks/utils/write/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/mkdocs.sh +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/mkdocs.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/README.md +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/armageddon.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/compare.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/king/2022/01/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/king/2022/01/02/0001/king_202201020001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/king__deletelog/2022/02/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/prince/2022/01/01/0001/prince_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/princess/2022/01/01/0001/princess_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/queen/2022/01/01/0001/queen_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/queen/2022/01/02/0001/queen_202201020001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/queen/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/queen__deletelog/2022/01/03/0001/queen_202201030001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/queen__deletelog/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job1/too_many_columns/2022/01/01/0001/sample_202201010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job10/king/2022/10/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job10/king/2022/10/02/0001/king_202210020001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job10/king/2022/10/02/0002/king_202210020002.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job10/king/2022/10/03/0001/king_202210030001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job10/queen__deletelog/2022/10/01/0001/queen_202210010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job11/king/2022/11/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job11/king__deletelog/2022/11/01/0001/king_202211010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job2/king/2022/02/05/0001/king_202202050001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job2/prince__deletelog/2022/02/01/0001/prince_202202010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job2/princess/2022/02/05/0001/princess_202202050001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job2/queen/2022/02/05/0001/queen_202202050001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job3/king/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job3/king__deletelog/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job3/queen/2022/03/05/001234/queen_20220305001234.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job3/queen/2022/03/06/0001/queen_202203060001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job4/king/2022/04/01/0001/king_202204010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job4/monarch/2022/04/01/0001/monarch_202204010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job4/queen/2022/04/01/0001/queen_202204010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job4/regent/2022/04/01/0001/regent_202204010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job5/king/2022/05/01/0001/king_202205010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job5/queen/2022/05/01/0001/queen_202205010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job6/king/2022/06/01/0001/king_202206010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job6/queen/2022/06/01/0001/queen_202206010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job7/king/2022/07/01/0001/king_202207010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job7/queen/2022/07/01/0001/queen_202207010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job8/king/2022/08/01/0001/king_202208010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job8/queen/2022/08/01/0001/queen_202208010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king/2022/09/01/0001/king_202209010001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king/2022/09/03/0001/king_202209030001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king/2022/09/03/0002/king_202209030002.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king/2022/09/08/0001/king_202209080001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king__deletelog/2022/09/02/0001/king_202209020001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king__deletelog/2022/09/04/0001/king_202209040001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king__deletelog/2022/09/04/0005/king_202209040005.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/king__deletelog/2022/09/04/0009/king_202209040009.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/queen/2022/09/08/0001/queen_202209080001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/data/job9/queen__deletelog/2022/09/01/0001/queen_202209030001.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job01.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job02.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job03.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job04.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job05.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job06.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job07.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job08.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job09.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job10.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd1/job11.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job01.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job02.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job03.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job04.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job05.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job06.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job07.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job08.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job09.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job10.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/gold/scd2/job11.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job01.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job02.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job03.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job04.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job05.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job06.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job07.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job08.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job09.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job10.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd1/job11.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job01.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job02.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job03.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job04.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job05.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job06.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job07.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job08.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job09.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job10.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/expected/silver/scd2/job11.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/init.sh +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/initialize.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_cdc.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_check.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_dependency.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_gold.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_invoke.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_overwrite.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_schedule.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_semantic.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job1/test_silver.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job2/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job2/test_gold.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job2/test_run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job2/test_semantic.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job3/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job3/test_gold.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job3/test_run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job3/test_silver.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job4/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job4/test_gold.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job4/test_run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/jobs/job5/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/landing_to_raw.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runjobs.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtests.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/.gitignore +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/bronze/_config.regents.yml +0 -0
- {fabricks-3.0.18/tests/integration/runtime/fabricks/extenders → fabricks-4.0.0/tests/integration/runtime/fabricks}/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/conf.fabricks.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/conf.uc.fabricks.yml +0 -0
- {fabricks-3.0.18/tests/integration/runtime/fabricks/parsers → fabricks-4.0.0/tests/integration/runtime/fabricks/extenders}/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/extenders/add_country.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/extenders/drop__cols.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/extenders/force_reload.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/extenders/monarch.py +0 -0
- {fabricks-3.0.18/tests/integration → fabricks-4.0.0/tests/integration/runtime/fabricks/notebooks}/add_missing_modules.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/cluster.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/initialize.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/process.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/run.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/notebooks/terminate.py +0 -0
- {fabricks-3.0.18/tests/integration/runtime/fabricks/udfs → fabricks-4.0.0/tests/integration/runtime/fabricks/parsers}/__init__.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/requirements.txt +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/schedules/schedule.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/udfs/addition.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/udfs/identity.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/udfs/key.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/udfs/parse_phone_number.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/fabricks/views/monarch.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/_config.check.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/count_must_equal.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/duplicate_identity.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/duplicate_key.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/fail.pre_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/fail.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/max_rows.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/min_rows.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/skip.skip.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/skip.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/warning.post_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/check/warning.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/dim/_config.dim.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/dim/date.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/dim/identity.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/dim/overwrite.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/dim/time.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/_config.fact.yml +0 -0
- {fabricks-3.0.18/tests/integration/runtime/fabricks/notebooks → fabricks-4.0.0/tests/integration/runtime/gold/gold/fact}/add_missing_modules.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/append.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/deduplicate.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/dependency_sql.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/foreign_keys.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/manual.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/masker_and_commenter.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/memory.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/no_drop.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/optimize_vacuum.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/option.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/order_duplicate.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/overwrite.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/primary_key.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/fact/udf.sql +0 -0
- {fabricks-3.0.18/tests/integration/runtime/gold/gold/fact → fabricks-4.0.0/tests/integration/runtime/gold/gold/invoke}/add_missing_modules.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/failed_pre_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/notebook.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/notebook_without_argument.ipynb +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/notebooks.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/notebooks_failed_pre_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/post_run/exe.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/post_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/pre_run/exe.py +0 -0
- /fabricks-3.0.18/tests/integration/runtime/gold/transf/post_run.py → /fabricks-4.0.0/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/timedout.py +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/invoke/timedout_pre_run.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/nocdc/_config.nocdc.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/nocdc/deduplicate.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/nocdc/update.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/complete.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/identity.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/last_timestamp.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/memory.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/special_char.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd1/update.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/complete.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/correct_valid_from.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/last_timestamp.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/memory.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/scd2/update.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/type_widening/_config.type_widening.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/type_widening/merge.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/gold/type_widening/overwrite.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/transf/fact/_config.transf.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/gold/transf/fact/memory.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/job-schema.json +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/dim/_config.semantic.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/dim/complex_query.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/_config.semantic.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/job_option.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/powerbi.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/schema_drift.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/step_option.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/semantic/fact/zstd.sql +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.kings_and_queens.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.memory.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.monarchs.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.princes.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.princesses.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/silver/_config.regents.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.18 → fabricks-4.0.0}/tests/integration/runtime/uc/bronze/_config.regents.yml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fabricks
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
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
|
|
@@ -8,15 +8,20 @@ Requires-Dist: azure-identity>=1.10.0
|
|
|
8
8
|
Requires-Dist: azure-storage-blob>=12.14.1
|
|
9
9
|
Requires-Dist: azure-storage-queue<13,>=12.10.0
|
|
10
10
|
Requires-Dist: databricks-cli>=0.18.0
|
|
11
|
+
Requires-Dist: databricks-connect>=11.0.0
|
|
11
12
|
Requires-Dist: databricks-sdk>=0.20.0
|
|
12
|
-
Requires-Dist:
|
|
13
|
+
Requires-Dist: deptry>=0.23.1
|
|
14
|
+
Requires-Dist: ipython>=8.18.1
|
|
13
15
|
Requires-Dist: jinja2>=2.11.3
|
|
14
16
|
Requires-Dist: mermaid-magic>=0.1.4
|
|
15
|
-
Requires-Dist:
|
|
16
|
-
Requires-Dist:
|
|
17
|
+
Requires-Dist: pandas>=2.2.3
|
|
18
|
+
Requires-Dist: py4j>=0.10.9.7
|
|
19
|
+
Requires-Dist: pydantic-settings>=2.11.0
|
|
17
20
|
Requires-Dist: pydantic>=1.10.21
|
|
21
|
+
Requires-Dist: pyspark>=3.5.7
|
|
18
22
|
Requires-Dist: python-dotenv>=1.0.1
|
|
19
23
|
Requires-Dist: pyyaml>=6.0.0
|
|
24
|
+
Requires-Dist: sparkdantic>=1.5.0
|
|
20
25
|
Requires-Dist: sqlglot>=22.1.1
|
|
21
26
|
Requires-Dist: tenacity>=9.1.2
|
|
22
27
|
Requires-Dist: tomli>=2.2.1; python_version < '3.11'
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
from fabricks.context import
|
|
2
|
-
|
|
1
|
+
from fabricks.context import (
|
|
2
|
+
BRONZE,
|
|
3
|
+
CONF_RUNTIME,
|
|
4
|
+
DBUTILS,
|
|
5
|
+
GOLD,
|
|
6
|
+
SILVER,
|
|
7
|
+
SPARK,
|
|
8
|
+
Bronzes,
|
|
9
|
+
Golds,
|
|
10
|
+
Silvers,
|
|
11
|
+
Steps,
|
|
12
|
+
init_spark_session,
|
|
13
|
+
pprint_runtime,
|
|
14
|
+
)
|
|
3
15
|
|
|
4
16
|
# step
|
|
5
17
|
BRONZES = Bronzes
|
|
@@ -18,7 +30,7 @@ __all__ = [
|
|
|
18
30
|
"GOLDS",
|
|
19
31
|
"init_spark_session",
|
|
20
32
|
"pprint_runtime",
|
|
21
|
-
"
|
|
33
|
+
"CONF_RUNTIME",
|
|
22
34
|
"SILVER",
|
|
23
35
|
"Silvers",
|
|
24
36
|
"SILVERS",
|
|
@@ -4,14 +4,13 @@
|
|
|
4
4
|
# COMMAND ----------
|
|
5
5
|
|
|
6
6
|
from logging import DEBUG
|
|
7
|
-
from typing import Any
|
|
7
|
+
from typing import Any
|
|
8
8
|
|
|
9
9
|
from databricks.sdk.runtime import dbutils, display, spark
|
|
10
10
|
|
|
11
11
|
from fabricks.context import PATH_NOTEBOOKS
|
|
12
12
|
from fabricks.context.log import DEFAULT_LOGGER
|
|
13
13
|
from fabricks.core import get_step
|
|
14
|
-
from fabricks.core.jobs.base._types import TStep
|
|
15
14
|
from fabricks.core.schedules import generate, terminate
|
|
16
15
|
from fabricks.utils.helpers import run_in_parallel, run_notebook
|
|
17
16
|
|
|
@@ -51,7 +50,7 @@ steps = [row.step for row in spark.sql("select step from {df} group by step", df
|
|
|
51
50
|
|
|
52
51
|
|
|
53
52
|
def _schedule(task: Any):
|
|
54
|
-
step = get_step(step=
|
|
53
|
+
step = get_step(step=task)
|
|
55
54
|
run_notebook(
|
|
56
55
|
PATH_NOTEBOOKS.joinpath("process"),
|
|
57
56
|
timeout=step.timeouts.step,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from fabricks.utils.helpers import concat_dfs, concat_ws, run_in_parallel
|
|
2
|
-
from fabricks.utils.path import Path
|
|
2
|
+
from fabricks.utils.path import FileSharePath, GitPath, Path
|
|
3
3
|
|
|
4
4
|
__all__ = [
|
|
5
5
|
"concat_dfs",
|
|
6
6
|
"concat_ws",
|
|
7
|
+
"FileSharePath",
|
|
8
|
+
"GitPath",
|
|
7
9
|
"Path",
|
|
8
10
|
"run_in_parallel",
|
|
9
11
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from fabricks.cdc.base import
|
|
1
|
+
from fabricks.cdc.base import BaseCDC
|
|
2
2
|
from fabricks.cdc.cdc import CDC
|
|
3
3
|
from fabricks.cdc.nocdc import NoCDC
|
|
4
4
|
from fabricks.cdc.scd1 import SCD1
|
|
@@ -7,7 +7,6 @@ from fabricks.cdc.scd2 import SCD2
|
|
|
7
7
|
__all__ = [
|
|
8
8
|
"BaseCDC",
|
|
9
9
|
"CDC",
|
|
10
|
-
"AllowedChangeDataCaptures",
|
|
11
10
|
"NoCDC",
|
|
12
11
|
"SCD1",
|
|
13
12
|
"SCD2",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Union
|
|
4
|
+
|
|
5
|
+
from pyspark.sql import DataFrame
|
|
6
|
+
from pyspark.sql.types import StructType
|
|
7
|
+
|
|
8
|
+
from fabricks.metastore.table import Table
|
|
9
|
+
|
|
10
|
+
# Import from models for consistency
|
|
11
|
+
|
|
12
|
+
AllowedSources = Union[DataFrame, Table, str, StructType]
|
|
@@ -4,6 +4,7 @@ from abc import ABC, abstractmethod
|
|
|
4
4
|
from typing import List, Optional, Union
|
|
5
5
|
|
|
6
6
|
from pyspark.sql import DataFrame, SparkSession
|
|
7
|
+
from pyspark.sql.types import StructType
|
|
7
8
|
|
|
8
9
|
from fabricks.cdc.base._types import AllowedSources
|
|
9
10
|
from fabricks.context import SPARK
|
|
@@ -111,6 +112,7 @@ class Configurator(ABC):
|
|
|
111
112
|
cols = [
|
|
112
113
|
"__operation",
|
|
113
114
|
"__metadata",
|
|
115
|
+
"__last_updated",
|
|
114
116
|
"__rescued_data",
|
|
115
117
|
]
|
|
116
118
|
|
|
@@ -135,6 +137,7 @@ class Configurator(ABC):
|
|
|
135
137
|
# Trailing
|
|
136
138
|
"__operation",
|
|
137
139
|
"__metadata",
|
|
140
|
+
"__last_updated",
|
|
138
141
|
"__rescued_data",
|
|
139
142
|
]
|
|
140
143
|
|
|
@@ -149,6 +152,8 @@ class Configurator(ABC):
|
|
|
149
152
|
df = self.table.dataframe
|
|
150
153
|
elif isinstance(src, str):
|
|
151
154
|
df = self.spark.sql(src)
|
|
155
|
+
elif isinstance(src, StructType):
|
|
156
|
+
df = self.spark.createDataFrame([], schema=src)
|
|
152
157
|
else:
|
|
153
158
|
raise ValueError(f"{src} not allowed")
|
|
154
159
|
|
|
@@ -4,6 +4,7 @@ from typing import Any, List, Optional, Sequence, Union, cast
|
|
|
4
4
|
|
|
5
5
|
from py4j.protocol import Py4JJavaError
|
|
6
6
|
from pyspark.sql import DataFrame
|
|
7
|
+
from pyspark.sql.types import StructType
|
|
7
8
|
|
|
8
9
|
from fabricks.cdc.base._types import AllowedSources
|
|
9
10
|
from fabricks.cdc.base.configurator import Configurator
|
|
@@ -25,11 +26,11 @@ class Generator(Configurator):
|
|
|
25
26
|
identity: Optional[bool] = False,
|
|
26
27
|
liquid_clustering: Optional[bool] = False,
|
|
27
28
|
cluster_by: Optional[Union[List[str], str]] = None,
|
|
28
|
-
properties: Optional[dict[str, str]] = None,
|
|
29
|
+
properties: Optional[dict[str, str | bool | int]] = None,
|
|
29
30
|
masks: Optional[dict[str, str]] = None,
|
|
30
31
|
primary_key: Optional[dict[str, Any]] = None,
|
|
31
32
|
foreign_keys: Optional[dict[str, Any]] = None,
|
|
32
|
-
comments: Optional[dict[str,
|
|
33
|
+
comments: Optional[dict[str, Any]] = None,
|
|
33
34
|
**kwargs,
|
|
34
35
|
):
|
|
35
36
|
kwargs["mode"] = "complete"
|
|
@@ -145,6 +146,7 @@ class Generator(Configurator):
|
|
|
145
146
|
d = self.get_schema_differences(src, **kwargs)
|
|
146
147
|
if d is None:
|
|
147
148
|
return None
|
|
149
|
+
|
|
148
150
|
return len(d) > 0
|
|
149
151
|
|
|
150
152
|
def _update_schema(
|
|
@@ -155,7 +157,9 @@ class Generator(Configurator):
|
|
|
155
157
|
**kwargs,
|
|
156
158
|
):
|
|
157
159
|
if self.is_view:
|
|
158
|
-
assert not isinstance(src, DataFrameLike)
|
|
160
|
+
assert not isinstance(src, DataFrameLike) and not isinstance(src, StructType), (
|
|
161
|
+
"dataframe and structtype not allowed"
|
|
162
|
+
)
|
|
159
163
|
self.create_or_replace_view(src=src)
|
|
160
164
|
|
|
161
165
|
else:
|
|
@@ -7,6 +7,7 @@ from pyspark.sql import DataFrame
|
|
|
7
7
|
|
|
8
8
|
from fabricks.cdc.base._types import AllowedSources
|
|
9
9
|
from fabricks.cdc.base.processor import Processor
|
|
10
|
+
from fabricks.context.config import IS_DEBUGMODE
|
|
10
11
|
from fabricks.context.log import DEFAULT_LOGGER
|
|
11
12
|
from fabricks.metastore.view import create_or_replace_global_temp_view
|
|
12
13
|
from fabricks.utils._types import DataFrameLike
|
|
@@ -56,6 +57,7 @@ class Merger(Processor):
|
|
|
56
57
|
assert "__key" or keys, f"{self} - __key or keys not found"
|
|
57
58
|
|
|
58
59
|
return {
|
|
60
|
+
"debugmode": IS_DEBUGMODE,
|
|
59
61
|
"src": src,
|
|
60
62
|
"format": format,
|
|
61
63
|
"tgt": self.table,
|
|
@@ -7,6 +7,7 @@ from pyspark.sql import DataFrame
|
|
|
7
7
|
|
|
8
8
|
from fabricks.cdc.base._types import AllowedSources
|
|
9
9
|
from fabricks.cdc.base.generator import Generator
|
|
10
|
+
from fabricks.context.config import IS_DEBUGMODE
|
|
10
11
|
from fabricks.context.log import DEFAULT_LOGGER
|
|
11
12
|
from fabricks.metastore.table import Table
|
|
12
13
|
from fabricks.metastore.view import create_or_replace_global_temp_view
|
|
@@ -65,6 +66,7 @@ class Processor(Generator):
|
|
|
65
66
|
add_key = kwargs.get("add_key", None)
|
|
66
67
|
add_hash = kwargs.get("add_hash", None)
|
|
67
68
|
add_timestamp = kwargs.get("add_timestamp", None)
|
|
69
|
+
add_last_updated = kwargs.get("add_last_updated", None)
|
|
68
70
|
add_metadata = kwargs.get("add_metadata", None)
|
|
69
71
|
|
|
70
72
|
has_order_by = None if not order_duplicate_by else True
|
|
@@ -78,6 +80,7 @@ class Processor(Generator):
|
|
|
78
80
|
has_hash = add_hash or "__hash" in inputs
|
|
79
81
|
has_identity = "__identity" in inputs
|
|
80
82
|
has_rescued_data = "__rescued_data" in inputs
|
|
83
|
+
has_last_updated = add_last_updated or "__last_updated" in inputs
|
|
81
84
|
|
|
82
85
|
soft_delete = kwargs.get("soft_delete", None)
|
|
83
86
|
delete_missing = kwargs.get("delete_missing", None)
|
|
@@ -152,6 +155,10 @@ class Processor(Generator):
|
|
|
152
155
|
if add_hash and "__hash" in inputs:
|
|
153
156
|
overwrite.append("__hash")
|
|
154
157
|
|
|
158
|
+
# override __last_updated if added and found in df
|
|
159
|
+
if add_last_updated and "__last_updated" in inputs:
|
|
160
|
+
overwrite.append("__last_updated")
|
|
161
|
+
|
|
155
162
|
# override metadata if added and found in df
|
|
156
163
|
if add_metadata and "__metadata" in inputs:
|
|
157
164
|
overwrite.append("__metadata")
|
|
@@ -219,6 +226,11 @@ class Processor(Generator):
|
|
|
219
226
|
outputs.append("__metadata")
|
|
220
227
|
if "__metadata" not in intermediates:
|
|
221
228
|
intermediates.append("__metadata")
|
|
229
|
+
if has_last_updated:
|
|
230
|
+
if "__last_updated" not in outputs:
|
|
231
|
+
outputs.append("__last_updated")
|
|
232
|
+
if "__last_updated" not in intermediates:
|
|
233
|
+
intermediates.append("__last_updated")
|
|
222
234
|
if has_source:
|
|
223
235
|
if "__source" not in outputs:
|
|
224
236
|
outputs.append("__source")
|
|
@@ -311,6 +323,7 @@ class Processor(Generator):
|
|
|
311
323
|
parent_final = "__final"
|
|
312
324
|
|
|
313
325
|
return {
|
|
326
|
+
"debugmode": IS_DEBUGMODE,
|
|
314
327
|
"src": src,
|
|
315
328
|
"format": format,
|
|
316
329
|
"tgt": tgt,
|
|
@@ -337,6 +350,7 @@ class Processor(Generator):
|
|
|
337
350
|
"has_rows": has_rows,
|
|
338
351
|
"has_source": has_source,
|
|
339
352
|
"has_metadata": has_metadata,
|
|
353
|
+
"has_last_updated": has_last_updated,
|
|
340
354
|
"has_timestamp": has_timestamp,
|
|
341
355
|
"has_operation": has_operation,
|
|
342
356
|
"has_identity": has_identity,
|
|
@@ -347,6 +361,7 @@ class Processor(Generator):
|
|
|
347
361
|
# default add
|
|
348
362
|
"add_metadata": add_metadata,
|
|
349
363
|
"add_timestamp": add_timestamp,
|
|
364
|
+
"add_last_updated": add_last_updated,
|
|
350
365
|
"add_key": add_key,
|
|
351
366
|
"add_hash": add_hash,
|
|
352
367
|
# value add
|