fabricks 3.0.4__tar.gz → 3.0.5__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.4 → fabricks-3.0.5}/PKG-INFO +2 -1
- fabricks-3.0.5/fabricks/api/version.py +3 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/generator.py +8 -18
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/configurator.py +0 -1
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/generator.py +27 -25
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/table.py +59 -35
- {fabricks-3.0.4 → fabricks-3.0.5}/pyproject.toml +2 -1
- fabricks-3.0.5/tests/integration/runtime/gold/transf/fact/memory.sql +1 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/uv.lock +1580 -1579
- {fabricks-3.0.4 → fabricks-3.0.5}/.gitignore +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/.gitkeep +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/.python-version +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/README.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/databricks.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/helpers/init.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/helpers/job.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/helpers/runtime.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/helpers/schedule.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/helpers/step.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/index.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/introduction/layers.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/introduction/overview.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/reference/cdc.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/reference/checks-data-quality.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/reference/extenders-udfs-parsers.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/reference/table-options.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/steps/BRONZE.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/steps/GOLD.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/docs/steps/SILVER.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/cdc/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/cdc/nocdc.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/cdc/scd1.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/cdc/scd2.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/context.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/core.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/exceptions.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/extenders.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/job_schema.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/log.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/metastore/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/metastore/database.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/metastore/table.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/metastore/view.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/add_fabricks.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/cluster.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/initialize.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/optimize.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/process.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/terminate.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/notebooks/vacuum.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/parsers.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/schedules.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/udfs.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/utils.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/api/views.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/cdc.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/configurator.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/merger.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/base/processor.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/cdc.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/nocdc.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/scd.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/scd1.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/scd2.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/filter/final.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/filter/latest.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/filter/update.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/filter.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/merge/scd1.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/merge/scd2.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/merge.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/base.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/context.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/current.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/deduplicate_hash.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/deduplicate_key.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/final.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/hash.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/nocdc.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/rectify.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/scd1.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/scd2.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query/slice.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/cdc/templates/query.sql.jinja +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/fabricks/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/fabricks/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/fabricks/environment.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/fabricks/pyproject.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/jobs/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/jobs/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/jobs/bronze.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/jobs/gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/jobs/silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/runtime.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/steps/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/steps/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/steps/bronze.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/steps/gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/config/steps/silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/log.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/runtime.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/secret.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/context/spark_session.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/generator.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/log.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/processor.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/terminator.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/dags/utils.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/deploy/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/deploy/tables.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/deploy/udfs.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/deploy/views.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/extenders.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/checker.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/exception.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/invoker.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/job.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/base/processor.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/bronze.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/get_job.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/get_job_conf.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/get_job_id.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/get_jobs.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/jobs/silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/parsers/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/parsers/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/parsers/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/parsers/decorator.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/parsers/get_parser.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/schedules.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/armageddon.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/generate.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/job_schema.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/process.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/stats.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/steps.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/scripts/terminate.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/steps/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/steps/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/steps/base.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/steps/get_step.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/steps/get_step_conf.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/udfs.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/utils.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/core/views.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/README.md +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/database.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/dbobject.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/pyproject.toml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/utils.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/metastore/view.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/azure_queue.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/azure_table.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/console.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/fdict.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/helpers.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/log.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/path.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/pip.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/pydantic.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/read/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/read/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/read/read.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/read/read_excel.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/read/read_yaml.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/schema/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/schema/get_json_schema_for_type.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/schema/get_schema_for_type.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/spark.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/sqlglot.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/write/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/write/delta.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/fabricks/utils/write/stream.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/format.sh +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/mkdocs.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/_types.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/add_fabricks.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/armageddon.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/compare.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/king/2022/01/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/king/2022/01/02/0001/king_202201020001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/king__deletelog/2022/02/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/prince/2022/01/01/0001/prince_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/princess/2022/01/01/0001/princess_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/queen/2022/01/01/0001/queen_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/queen/2022/01/02/0001/queen_202201020001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/queen/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/queen__deletelog/2022/01/03/0001/queen_202201030001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/queen__deletelog/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job1/too_many_columns/2022/01/01/0001/sample_202201010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job10/king/2022/10/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job10/king/2022/10/02/0001/king_202210020001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job10/king/2022/10/02/0002/king_202210020002.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job10/king/2022/10/03/0001/king_202210030001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job10/queen__deletelog/2022/10/01/0001/queen_202210010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job11/king/2022/11/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job11/king__deletelog/2022/11/01/0001/king_202211010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job2/king/2022/02/05/0001/king_202202050001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job2/prince__deletelog/2022/02/01/0001/prince_202202010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job2/princess/2022/02/05/0001/princess_202202050001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job2/queen/2022/02/05/0001/queen_202202050001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job3/king/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job3/king__deletelog/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job3/queen/2022/03/05/001234/queen_20220305001234.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job3/queen/2022/03/06/0001/queen_202203060001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job4/king/2022/04/01/0001/king_202204010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job4/monarch/2022/04/01/0001/monarch_202204010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job4/queen/2022/04/01/0001/queen_202204010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job4/regent/2022/04/01/0001/regent_202204010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job5/king/2022/05/01/0001/king_202205010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job5/queen/2022/05/01/0001/queen_202205010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job6/king/2022/06/01/0001/king_202206010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job6/queen/2022/06/01/0001/queen_202206010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job7/king/2022/07/01/0001/king_202207010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job7/queen/2022/07/01/0001/queen_202207010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job8/king/2022/08/01/0001/king_202208010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job8/queen/2022/08/01/0001/queen_202208010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king/2022/09/01/0001/king_202209010001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king/2022/09/03/0001/king_202209030001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king/2022/09/03/0002/king_202209030002.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king/2022/09/08/0001/king_202209080001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king__deletelog/2022/09/02/0001/king_202209020001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king__deletelog/2022/09/04/0001/king_202209040001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king__deletelog/2022/09/04/0005/king_202209040005.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/king__deletelog/2022/09/04/0009/king_202209040009.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/queen/2022/09/08/0001/queen_202209080001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/data/job9/queen__deletelog/2022/09/01/0001/queen_202209030001.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job01.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job02.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job03.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job04.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job05.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job06.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job07.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job08.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job09.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job10.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd1/job11.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job01.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job02.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job03.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job04.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job05.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job06.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job07.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job08.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job09.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job10.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/gold/scd2/job11.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job01.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job02.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job03.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job04.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job05.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job06.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job07.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job08.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job09.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job10.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd1/job11.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job01.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job02.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job03.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job04.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job05.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job06.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job07.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job08.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job09.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job10.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/expected/silver/scd2/job11.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/init.sh +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/initialize.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_cdc.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_check.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_dependency.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_invoke.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_overwrite.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_schedule.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_semantic.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job1/test_silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job2/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job2/test_gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job2/test_run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job2/test_semantic.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job2/test_silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job3/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job3/test_gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job3/test_run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job3/test_silver.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job4/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job4/test_gold.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job4/test_run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job5/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/jobs/job5/test_step.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/reset.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runjobs.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtests.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/.gitignore +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/add_fabricks.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/bronze/_config.regents.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/conf.fabricks.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/conf.uc.fabricks.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/extenders/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/extenders/add_country.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/extenders/drop__cols.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/extenders/force_reload.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/extenders/monarch.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/parsers/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/parsers/delete_log.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/parsers/monarch.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/requirements.txt +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/schedules/schedule.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/udfs/__init__.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/udfs/addition.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/udfs/identity.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/udfs/key.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/udfs/parse_phone_number.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/fabricks/views/monarch.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/_config.check.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/count_must_equal.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/duplicate_identity.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/duplicate_key.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/fail.pre_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/fail.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/max_rows.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/min_rows.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/skip.skip.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/skip.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/warning.post_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/check/warning.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/dim/_config.dim.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/dim/date.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/dim/identity.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/dim/overwrite.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/dim/time.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/_config.fact.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/append.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/deduplicate.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/dependency_notebook.ipynb +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/dependency_sql.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/manual.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/memory.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/notebook.ipynb +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/option.sql +0 -0
- /fabricks-3.0.4/tests/integration/runtime/gold/gold/fact/overwrite.sql → /fabricks-3.0.5/tests/integration/runtime/gold/gold/fact/option_b.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/order_duplicate.sql +0 -0
- /fabricks-3.0.4/tests/integration/runtime/gold/transf/fact/memory.sql → /fabricks-3.0.5/tests/integration/runtime/gold/gold/fact/overwrite.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/fact/udf.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/_config.invoke.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/failed_pre_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/notebook.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/notebook_without_argument.ipynb +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/notebooks.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/notebooks_failed_pre_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/post_run/exe.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/post_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/pre_run/exe.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/timedout.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/invoke/timedout_pre_run.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/_config.scd1.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/complete.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/identity.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/last_timestamp.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/memory.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd1/update.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/_config.scd2.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/complete.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/correct_valid_from.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/last_timestamp.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/memory.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/scd2/update.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/type_widening/_config.type_widening.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/type_widening/merge.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/gold/type_widening/overwrite.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/transf/fact/_config.transf.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/gold/transf/post_run.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/job-schema.json +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/_config.semantic.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/job_option.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/powerbi.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/schema_drift.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/step_option.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/semantic/fact/zstd.sql +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.kings_and_queens.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.memory.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.monarchs.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.princes.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.princesses.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/silver/_config.regents.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/runtime/uc/bronze/_config.regents.yml +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/schedule.py +0 -0
- {fabricks-3.0.4 → fabricks-3.0.5}/tests/integration/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fabricks
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.5
|
|
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,6 +8,7 @@ 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-sdk>=0.20.0
|
|
11
|
+
Requires-Dist: importlib-metadata>=8.6.1
|
|
11
12
|
Requires-Dist: jinja2>=2.11.3
|
|
12
13
|
Requires-Dist: pydantic-settings
|
|
13
14
|
Requires-Dist: pydantic-yaml>=1.4.0
|
|
@@ -34,10 +34,8 @@ class Generator(Configurator):
|
|
|
34
34
|
|
|
35
35
|
df = self.get_data(src, **kwargs)
|
|
36
36
|
|
|
37
|
-
if
|
|
38
|
-
assert
|
|
39
|
-
elif partitioning:
|
|
40
|
-
assert partition_by, "partitioning column not found"
|
|
37
|
+
if partitioning is True:
|
|
38
|
+
assert partition_by, "partitioning column(s) not found"
|
|
41
39
|
|
|
42
40
|
df = self.reorder_columns(df)
|
|
43
41
|
|
|
@@ -84,22 +82,14 @@ class Generator(Configurator):
|
|
|
84
82
|
DEFAULT_LOGGER.exception("could not execute sql query", extra={"job": self, "sql": sql})
|
|
85
83
|
|
|
86
84
|
def optimize_table(self):
|
|
87
|
-
|
|
85
|
+
columns = None
|
|
88
86
|
|
|
89
|
-
if
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
columns =
|
|
93
|
-
|
|
94
|
-
if self.change_data_capture == "scd1":
|
|
95
|
-
columns = ["__key"]
|
|
96
|
-
elif self.change_data_capture == "scd2":
|
|
97
|
-
columns = ["__key", "__valid_from"]
|
|
98
|
-
|
|
99
|
-
vorder = self.table.get_property("delta.parquet.vorder.enabled") or "false"
|
|
100
|
-
vorder = vorder.lower() == "true"
|
|
87
|
+
if self.change_data_capture == "scd1":
|
|
88
|
+
columns = ["__key"]
|
|
89
|
+
elif self.change_data_capture == "scd2":
|
|
90
|
+
columns = ["__key", "__valid_from"]
|
|
101
91
|
|
|
102
|
-
|
|
92
|
+
self.table.optimize(columns=columns)
|
|
103
93
|
|
|
104
94
|
def get_differences_with_deltatable(self, src: Union[DataFrame, Table, str], **kwargs) -> Optional[DataFrame]:
|
|
105
95
|
if self.is_view:
|
|
@@ -209,33 +209,38 @@ class Generator(Configurator):
|
|
|
209
209
|
identity = self.options.table.get_boolean("identity", False)
|
|
210
210
|
|
|
211
211
|
# first take from job options, then from step options
|
|
212
|
-
liquid_clustering_job = self.options.table.
|
|
212
|
+
liquid_clustering_job = self.options.table.get("liquid_clustering", None)
|
|
213
213
|
liquid_clustering_step = self.step_conf.get("table_options", {}).get("liquid_clustering", None)
|
|
214
214
|
if liquid_clustering_job is not None:
|
|
215
215
|
liquid_clustering = liquid_clustering_job
|
|
216
216
|
elif liquid_clustering_step:
|
|
217
217
|
liquid_clustering = liquid_clustering_step
|
|
218
218
|
|
|
219
|
-
if liquid_clustering:
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
cluster_by.append("__source")
|
|
224
|
-
if "__is_current" in df.columns:
|
|
225
|
-
cluster_by.append("__is_current")
|
|
226
|
-
if "__key" in df.columns:
|
|
227
|
-
cluster_by.append("__key")
|
|
228
|
-
elif "__hash" in df.columns:
|
|
229
|
-
cluster_by.append("__hash")
|
|
230
|
-
|
|
231
|
-
if not cluster_by:
|
|
232
|
-
DEFAULT_LOGGER.warning(
|
|
233
|
-
"liquid clustering disabled (no clustering columns found)", extra={"job": self}
|
|
234
|
-
)
|
|
235
|
-
liquid_clustering = False
|
|
236
|
-
cluster_by = None
|
|
219
|
+
if liquid_clustering is not None:
|
|
220
|
+
if liquid_clustering == "auto":
|
|
221
|
+
liquid_clustering = True
|
|
222
|
+
cluster_by = []
|
|
237
223
|
|
|
238
|
-
|
|
224
|
+
else:
|
|
225
|
+
cluster_by = self.options.table.get_list("cluster_by") or []
|
|
226
|
+
if not cluster_by:
|
|
227
|
+
if "__source" in df.columns:
|
|
228
|
+
cluster_by.append("__source")
|
|
229
|
+
if "__is_current" in df.columns:
|
|
230
|
+
cluster_by.append("__is_current")
|
|
231
|
+
if "__key" in df.columns:
|
|
232
|
+
cluster_by.append("__key")
|
|
233
|
+
elif "__hash" in df.columns:
|
|
234
|
+
cluster_by.append("__hash")
|
|
235
|
+
|
|
236
|
+
if not cluster_by:
|
|
237
|
+
DEFAULT_LOGGER.warning(
|
|
238
|
+
"liquid clustering disabled (no clustering columns found)", extra={"job": self}
|
|
239
|
+
)
|
|
240
|
+
liquid_clustering = False
|
|
241
|
+
cluster_by = None
|
|
242
|
+
|
|
243
|
+
if liquid_clustering is None:
|
|
239
244
|
cluster_by = None
|
|
240
245
|
partition_by = self.options.table.get_list("partition_by")
|
|
241
246
|
if partition_by:
|
|
@@ -404,11 +409,8 @@ class Generator(Configurator):
|
|
|
404
409
|
cluster_by.append("__hash")
|
|
405
410
|
|
|
406
411
|
if len(cluster_by) > 0:
|
|
407
|
-
self.table.enable_liquid_clustering(cluster_by)
|
|
412
|
+
self.table.enable_liquid_clustering(cluster_by, auto=False)
|
|
408
413
|
else:
|
|
409
|
-
|
|
410
|
-
"liquid clustering not enabled (no clustering column found)", extra={"job": self}
|
|
411
|
-
)
|
|
412
|
-
|
|
414
|
+
self.table.enable_liquid_clustering(auto=True)
|
|
413
415
|
else:
|
|
414
416
|
DEFAULT_LOGGER.debug("liquid clustering not enabled", extra={"job": self})
|
|
@@ -65,15 +65,28 @@ class Table(DbObject):
|
|
|
65
65
|
@property
|
|
66
66
|
def identity_enabled(self) -> bool:
|
|
67
67
|
assert self.is_registered, f"{self} not registered"
|
|
68
|
-
|
|
69
68
|
return self.get_property("delta.feature.identityColumns") == "supported"
|
|
70
69
|
|
|
71
70
|
@property
|
|
72
71
|
def type_widening_enabled(self) -> bool:
|
|
73
72
|
assert self.is_registered, f"{self} not registered"
|
|
74
|
-
|
|
75
73
|
return self.get_property("delta.enableTypeWidening") == "true"
|
|
76
74
|
|
|
75
|
+
@property
|
|
76
|
+
def liquid_clustering_enabled(self) -> bool:
|
|
77
|
+
assert self.is_registered, f"{self} not registered"
|
|
78
|
+
return self.get_property("delta.feature.clustering") == "supported"
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def auto_liquid_clustering_enabled(self) -> bool:
|
|
82
|
+
assert self.is_registered, f"{self} not registered"
|
|
83
|
+
return self.get_property("delta.clusterByAuto") == "true"
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
def vorder_enabled(self) -> bool:
|
|
87
|
+
assert self.is_registered, f"{self} not registered"
|
|
88
|
+
return self.get_property("delta.parquet.vorder.enabled") == "true"
|
|
89
|
+
|
|
77
90
|
def drop(self):
|
|
78
91
|
super().drop()
|
|
79
92
|
if self.delta_path.exists():
|
|
@@ -160,11 +173,14 @@ class Table(DbObject):
|
|
|
160
173
|
ddl_tblproperties = "-- not tblproperties"
|
|
161
174
|
|
|
162
175
|
if liquid_clustering:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
176
|
+
if cluster_by:
|
|
177
|
+
if isinstance(cluster_by, str):
|
|
178
|
+
cluster_by = [cluster_by]
|
|
179
|
+
cluster_by = [f"`{c}`" for c in cluster_by]
|
|
180
|
+
ddl_cluster_by = "cluster by (" + ", ".join(cluster_by) + ")"
|
|
181
|
+
|
|
182
|
+
else:
|
|
183
|
+
ddl_cluster_by = "cluster by auto"
|
|
168
184
|
|
|
169
185
|
if partitioning:
|
|
170
186
|
assert partition_by
|
|
@@ -388,37 +404,38 @@ class Table(DbObject):
|
|
|
388
404
|
pass
|
|
389
405
|
self.spark.sql("SET self.spark.databricks.delta.retentionDurationCheck.enabled = True")
|
|
390
406
|
|
|
391
|
-
def optimize(
|
|
392
|
-
self,
|
|
393
|
-
columns: Optional[Union[str, List[str]]] = None,
|
|
394
|
-
vorder: Optional[bool] = False,
|
|
395
|
-
):
|
|
407
|
+
def optimize(self, columns: Optional[Union[str, List[str]]] = None):
|
|
396
408
|
assert self.is_registered, f"{self} not registered"
|
|
397
409
|
|
|
398
410
|
DEFAULT_LOGGER.info("optimize", extra={"job": self})
|
|
399
411
|
|
|
400
|
-
|
|
401
|
-
|
|
412
|
+
if self.liquid_clustering_enabled:
|
|
413
|
+
self.spark.sql(f"optimize {self.qualified_name}")
|
|
414
|
+
|
|
415
|
+
elif self.auto_liquid_clustering_enabled:
|
|
416
|
+
self.spark.sql(f"optimize {self.qualified_name}")
|
|
417
|
+
|
|
418
|
+
elif columns is None:
|
|
419
|
+
if self.vorder_enabled:
|
|
420
|
+
DEFAULT_LOGGER.debug("vorder", extra={"job": self})
|
|
421
|
+
self.spark.sql(f"optimize {self.qualified_name} vorder")
|
|
422
|
+
else:
|
|
423
|
+
self.spark.sql(f"optimize {self.qualified_name}")
|
|
424
|
+
|
|
425
|
+
else:
|
|
402
426
|
if isinstance(columns, str):
|
|
403
427
|
columns = [columns]
|
|
404
428
|
columns = [f"`{c}`" for c in columns]
|
|
405
429
|
cols = ", ".join(columns)
|
|
406
430
|
|
|
407
|
-
if
|
|
431
|
+
if self.vorder_enabled:
|
|
408
432
|
DEFAULT_LOGGER.debug(f"zorder by {cols} vorder", extra={"job": self})
|
|
409
433
|
self.spark.sql(f"optimize {self.qualified_name} zorder by ({cols}) vorder")
|
|
434
|
+
|
|
410
435
|
else:
|
|
411
436
|
DEFAULT_LOGGER.debug(f"zorder by {cols}", extra={"job": self})
|
|
412
437
|
self.spark.sql(f"optimize {self.qualified_name} zorder by ({cols})")
|
|
413
438
|
|
|
414
|
-
elif vorder:
|
|
415
|
-
DEFAULT_LOGGER.debug("vorder", extra={"job": self})
|
|
416
|
-
self.spark.sql(f"optimize {self.qualified_name} vorder")
|
|
417
|
-
|
|
418
|
-
else:
|
|
419
|
-
DEFAULT_LOGGER.debug("optimize", extra={"job": self})
|
|
420
|
-
self.spark.sql(f"optimize {self.qualified_name}")
|
|
421
|
-
|
|
422
439
|
def analyze(self):
|
|
423
440
|
assert self.is_registered, f"{self} not registered"
|
|
424
441
|
|
|
@@ -658,18 +675,25 @@ class Table(DbObject):
|
|
|
658
675
|
df = self.spark.sql(f"describe history {self.qualified_name}")
|
|
659
676
|
return df
|
|
660
677
|
|
|
661
|
-
def enable_liquid_clustering(self, columns: Union[str, List[str]]):
|
|
678
|
+
def enable_liquid_clustering(self, columns: Optional[Union[str, List[str]]] = None, auto: Optional[bool] = False):
|
|
662
679
|
assert self.is_registered, f"{self} not registered"
|
|
663
680
|
|
|
664
|
-
if
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
cols = ", ".join(columns)
|
|
668
|
-
DEFAULT_LOGGER.info(f"cluster by {cols}", extra={"job": self})
|
|
681
|
+
if auto:
|
|
682
|
+
DEFAULT_LOGGER.info("cluster by auto", extra={"job": self})
|
|
683
|
+
self.spark.sql(f"alter table {self.qualified_name} cluster by automatic")
|
|
669
684
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
685
|
+
else:
|
|
686
|
+
assert columns, "at least one clustering column must be specified"
|
|
687
|
+
|
|
688
|
+
if isinstance(columns, str):
|
|
689
|
+
columns = [columns]
|
|
690
|
+
columns = [f"`{c}`" for c in columns]
|
|
691
|
+
cols = ", ".join(columns)
|
|
692
|
+
|
|
693
|
+
DEFAULT_LOGGER.info(f"cluster by {cols}", extra={"job": self})
|
|
694
|
+
self.spark.sql(
|
|
695
|
+
f"""
|
|
696
|
+
alter table {self.qualified_name}
|
|
697
|
+
cluster by ({cols})
|
|
698
|
+
"""
|
|
699
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fabricks"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.5"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "BMS DWH Team", email = "bi_support@bmsuisse.ch" },
|
|
@@ -13,6 +13,7 @@ dependencies = [
|
|
|
13
13
|
"azure-storage-blob >=12.14.1",
|
|
14
14
|
"azure-storage-queue >=12.10.0,<13",
|
|
15
15
|
"databricks-sdk >=0.20.0",
|
|
16
|
+
"importlib-metadata>=8.6.1",
|
|
16
17
|
"jinja2 >=2.11.3",
|
|
17
18
|
"pydantic>=1.10.21",
|
|
18
19
|
"pydantic-settings",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
select `id` as id, `name` as monarch, `doubleField` as value from silver.monarch_scd1__current
|