fabricks 3.0.12__tar.gz → 3.0.13__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.12 → fabricks-3.0.13}/PKG-INFO +1 -1
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/helpers.py +16 -39
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/extenders.py +2 -7
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/generator.py +1 -1
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/get_parser.py +2 -7
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/steps/base.py +16 -8
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/azure_table.py +23 -22
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/helpers.py +18 -2
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/path.py +8 -2
- {fabricks-3.0.12 → fabricks-3.0.13}/format.sh +23 -17
- {fabricks-3.0.12 → fabricks-3.0.13}/pyproject.toml +1 -1
- fabricks-3.0.13/tests/integration/README.md +16 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/uv.lock +1 -1
- {fabricks-3.0.12 → fabricks-3.0.13}/.gitignore +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/.gitkeep +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/.python-version +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/README.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/databricks.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/helpers/init.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/helpers/job.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/helpers/runtime.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/helpers/schedule.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/helpers/step.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/index.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/introduction/layers.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/introduction/overview.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/reference/cdc.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/reference/checks-data-quality.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/reference/extenders-udfs-parsers.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/reference/table-options.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/steps/BRONZE.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/steps/GOLD.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/docs/steps/SILVER.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/cdc/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/cdc/nocdc.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/cdc/scd1.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/cdc/scd2.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/context.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/core.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/deploy.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/exceptions.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/extenders.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/job_schema.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/log.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/masks.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/metastore/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/metastore/database.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/metastore/table.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/metastore/view.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/cluster.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/initialize.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/process.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/notebooks/terminate.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/parsers.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/schedules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/udfs.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/version.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/api/views.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/cdc.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/configurator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/generator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/merger.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/base/processor.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/cdc.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/nocdc.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/scd.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/scd1.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/scd2.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/base.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/current.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/deduplicate_hash.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/deduplicate_key.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/rectify.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/ctes/slice.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/filter.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/filters/final.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/filters/latest.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/filters/update.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/macros/bactick.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/macros/hash.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/merge.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/merges/nocdc.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/merges/scd1.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/merges/scd2.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/context.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/final.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/nocdc/complete.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/nocdc/update.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/scd1.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/queries/scd2.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/cdc/templates/query.sql.jinja +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/config.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/log.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/runtime.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/secret.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/spark_session.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/context/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/base.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/generator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/log.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/processor.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/terminator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/dags/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/job_schema.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/checker.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/configurator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/exception.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/invoker.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/job.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/base/processor.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/bronze.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_job.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_job_conf.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_job_id.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_jobs.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/get_schedules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/gold.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/jobs/silver.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/masks.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/base.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/decorator.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/parsers/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/diagrams.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/generate.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/get_schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/get_schedules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/process.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/terminate.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/schedules/views.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/steps/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/steps/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/steps/get_step.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/steps/get_step_conf.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/udfs.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/core/views.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/masks.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/notebooks.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/schedules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/tables.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/udfs.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/deploy/views.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/README.md +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/database.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/dbobject.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/pyproject.toml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/table.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/utils.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/metastore/view.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/azure_queue.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/console.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/fdict.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/log.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/mermaid.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/pip.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/pydantic.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/read/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/read/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/read/read.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/read/read_excel.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/read/read_yaml.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/schema/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/schema/get_json_schema_for_type.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/schema/get_schema_for_type.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/spark.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/sqlglot.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/write/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/write/delta.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/fabricks/utils/write/stream.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/mkdocs.sh +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/mkdocs.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/_types.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/add_missing_modules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/armageddon.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/compare.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/king/2022/01/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/king/2022/01/02/0001/king_202201020001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/king__deletelog/2022/02/01/0001/king_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/prince/2022/01/01/0001/prince_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/princess/2022/01/01/0001/princess_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/queen/2022/01/01/0001/queen_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/queen/2022/01/02/0001/queen_202201020001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/queen/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/queen__deletelog/2022/01/03/0001/queen_202201030001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/queen__deletelog/2022/01/04/0001/queen_202201040001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job1/too_many_columns/2022/01/01/0001/sample_202201010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job10/king/2022/10/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job10/king/2022/10/02/0001/king_202210020001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job10/king/2022/10/02/0002/king_202210020002.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job10/king/2022/10/03/0001/king_202210030001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job10/queen__deletelog/2022/10/01/0001/queen_202210010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job11/king/2022/11/01/0001/king_202210010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job11/king__deletelog/2022/11/01/0001/king_202211010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job2/king/2022/02/05/0001/king_202202050001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job2/prince__deletelog/2022/02/01/0001/prince_202202010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job2/princess/2022/02/05/0001/princess_202202050001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job2/queen/2022/02/05/0001/queen_202202050001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job3/king/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job3/king__deletelog/2022/03/01/001234/king_20220301001234.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job3/queen/2022/03/05/001234/queen_20220305001234.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job3/queen/2022/03/06/0001/queen_202203060001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job4/king/2022/04/01/0001/king_202204010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job4/monarch/2022/04/01/0001/monarch_202204010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job4/queen/2022/04/01/0001/queen_202204010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job4/regent/2022/04/01/0001/regent_202204010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job5/king/2022/05/01/0001/king_202205010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job5/queen/2022/05/01/0001/queen_202205010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job6/king/2022/06/01/0001/king_202206010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job6/queen/2022/06/01/0001/queen_202206010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job7/king/2022/07/01/0001/king_202207010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job7/queen/2022/07/01/0001/queen_202207010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job8/king/2022/08/01/0001/king_202208010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job8/queen/2022/08/01/0001/queen_202208010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king/2022/09/01/0001/king_202209010001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king/2022/09/03/0001/king_202209030001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king/2022/09/03/0002/king_202209030002.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king/2022/09/08/0001/king_202209080001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king__deletelog/2022/09/02/0001/king_202209020001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king__deletelog/2022/09/04/0001/king_202209040001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king__deletelog/2022/09/04/0005/king_202209040005.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/king__deletelog/2022/09/04/0009/king_202209040009.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/queen/2022/09/08/0001/queen_202209080001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/data/job9/queen__deletelog/2022/09/01/0001/queen_202209030001.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job01.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job02.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job03.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job04.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job05.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job06.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job07.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job08.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job09.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job10.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd1/job11.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job01.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job02.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job03.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job04.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job05.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job06.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job07.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job08.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job09.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job10.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/gold/scd2/job11.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job01.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job02.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job03.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job04.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job05.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job06.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job07.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job08.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job09.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job10.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd1/job11.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job01.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job02.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job03.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job04.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job05.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job06.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job07.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job08.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job09.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job10.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/expected/silver/scd2/job11.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/fabricksconfig.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/init.sh +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/initialize.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_cdc.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_check.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_dependency.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_gold.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_invoke.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_overwrite.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_semantic.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job1/test_silver.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job2/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job2/test_gold.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job2/test_run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job2/test_semantic.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job2/test_silver.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job3/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job3/test_gold.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job3/test_run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job3/test_silver.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job4/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job4/test_gold.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job4/test_run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job5/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/jobs/job5/test_step.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/reset.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runjobs.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtests.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/.gitignore +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/bronze/_config.regents.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/conf.fabricks.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/conf.uc.fabricks.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/extenders/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/extenders/add_country.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/extenders/drop__cols.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/extenders/force_reload.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/extenders/monarch.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/masks/dummy.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/add_missing_modules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/cluster.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/initialize.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/process.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/notebooks/terminate.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/parsers/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/parsers/delete_log.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/parsers/monarch.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/requirements.txt +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/schedules/schedule.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/udfs/__init__.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/udfs/addition.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/udfs/identity.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/udfs/key.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/udfs/parse_phone_number.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/fabricks/views/monarch.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/_config.check.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/count_must_equal.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/duplicate_identity.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/duplicate_key.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/fail.pre_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/fail.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/max_rows.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/min_rows.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/skip.skip.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/skip.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/warning.post_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/check/warning.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/dim/_config.dim.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/dim/date.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/dim/identity.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/dim/overwrite.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/dim/time.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/_config.fact.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/add_missing_modules.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/append.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/deduplicate.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/dependency_notebook.ipynb +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/dependency_sql.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/foreign_keys.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/manual.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/masker_and_commenter.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/memory.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/no_drop.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/notebook.ipynb +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/optimize_vacuum.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/option.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/order_duplicate.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/overwrite.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/primary_key.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/fact/udf.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/_config.invoke.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/failed_pre_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/notebook.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/notebook_without_argument.ipynb +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/notebooks.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/notebooks_failed_pre_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/post_run/exe.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/post_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/pre_run/exe.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/pre_run/exe_2.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/timedout.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/invoke/timedout_pre_run.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/nocdc/_config.nocdc.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/nocdc/deduplicate.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/nocdc/update.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/_config.scd1.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/complete.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/identity.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/last_timestamp.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/memory.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/special_char.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd1/update.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/_config.scd2.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/complete.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/correct_valid_from.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/last_timestamp.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/memory.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/scd2/update.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/type_widening/_config.type_widening.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/type_widening/merge.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/gold/type_widening/overwrite.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/transf/fact/_config.transf.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/transf/fact/memory.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/gold/transf/post_run.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/job-schema.json +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/dim/_config.semantic.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/dim/complex_query.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/_config.semantic.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/job_option.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/powerbi.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/schema_drift.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/step_option.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/semantic/fact/zstd.sql +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.kings_and_queens.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.memory.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.monarchs.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.princes.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.princesses.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/silver/_config.regents.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.kings.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.memory.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.monarchs.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.princes.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.princesses.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.queens.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/runtime/uc/bronze/_config.regents.yml +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/schedule.py +0 -0
- {fabricks-3.0.12 → fabricks-3.0.13}/tests/integration/utils.py +0 -0
|
@@ -1,59 +1,36 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import pathlib
|
|
1
3
|
from typing import List
|
|
2
4
|
|
|
3
5
|
from fabricks.utils.path import Path
|
|
4
6
|
|
|
5
7
|
|
|
6
|
-
def
|
|
7
|
-
import os
|
|
8
|
-
import pathlib
|
|
9
|
-
import sys
|
|
10
|
-
|
|
11
|
-
if sys.version_info >= (3, 11):
|
|
12
|
-
import tomllib
|
|
13
|
-
else:
|
|
14
|
-
import tomli as tomllib # type: ignore
|
|
15
|
-
|
|
8
|
+
def get_config_from_file():
|
|
16
9
|
path = pathlib.Path(os.getcwd())
|
|
17
|
-
while path is not None and not (path / "pyproject.toml").exists():
|
|
18
|
-
if path == path.parent:
|
|
19
|
-
break
|
|
20
|
-
path = path.parent
|
|
21
|
-
|
|
22
|
-
if (path / "pyproject.toml").exists():
|
|
23
|
-
with open((path / "pyproject.toml"), "rb") as f:
|
|
24
|
-
config = tomllib.load(f)
|
|
25
|
-
return path, config.get("tool", {}).get("fabricks", {})
|
|
26
10
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def get_config_from_json():
|
|
31
|
-
import json
|
|
32
|
-
import os
|
|
33
|
-
import pathlib
|
|
34
|
-
|
|
35
|
-
path = pathlib.Path(os.getcwd())
|
|
36
|
-
while path is not None and not (path / "fabricksconfig.json").exists():
|
|
11
|
+
while path is not None and (not (path / "pyproject.toml").exists() or (path / "fabricksconfig.json").exists()):
|
|
37
12
|
if path == path.parent:
|
|
38
13
|
break
|
|
39
14
|
path = path.parent
|
|
40
15
|
|
|
41
16
|
if (path / "fabricksconfig.json").exists():
|
|
17
|
+
import json
|
|
18
|
+
|
|
42
19
|
with open((path / "fabricksconfig.json"), "r") as f:
|
|
43
20
|
config = json.load(f)
|
|
44
|
-
return path, config
|
|
45
|
-
|
|
46
|
-
return None, {}
|
|
21
|
+
return path, config, "json"
|
|
47
22
|
|
|
23
|
+
if (path / "pyproject.toml").exists():
|
|
24
|
+
import sys
|
|
48
25
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
26
|
+
if sys.version_info >= (3, 11):
|
|
27
|
+
import tomllib
|
|
28
|
+
else:
|
|
29
|
+
import tomli as tomllib # type: ignore
|
|
53
30
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
31
|
+
with open((path / "pyproject.toml"), "rb") as f:
|
|
32
|
+
config = tomllib.load(f)
|
|
33
|
+
return path, config.get("tool", {}).get("fabricks", {}), "pyproject"
|
|
57
34
|
|
|
58
35
|
return None, {}, None
|
|
59
36
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
from importlib.util import module_from_spec, spec_from_file_location
|
|
2
1
|
from typing import Callable
|
|
3
2
|
|
|
4
3
|
from fabricks.context import IS_UNITY_CATALOG, PATH_EXTENDERS
|
|
5
4
|
from fabricks.context.log import DEFAULT_LOGGER
|
|
5
|
+
from fabricks.utils.helpers import load_module_from_path
|
|
6
6
|
|
|
7
7
|
EXTENDERS: dict[str, Callable] = {}
|
|
8
8
|
|
|
@@ -14,12 +14,7 @@ def get_extender(name: str) -> Callable:
|
|
|
14
14
|
else:
|
|
15
15
|
DEFAULT_LOGGER.debug(f"could not check if extender exists ({path.string})")
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
assert spec, "no valid extender found in {path.string}"
|
|
19
|
-
assert spec.loader is not None
|
|
20
|
-
|
|
21
|
-
mod = module_from_spec(spec)
|
|
22
|
-
spec.loader.exec_module(mod)
|
|
17
|
+
load_module_from_path(name, path)
|
|
23
18
|
e = EXTENDERS[name]
|
|
24
19
|
|
|
25
20
|
return e
|
|
@@ -339,7 +339,7 @@ class Generator(Configurator):
|
|
|
339
339
|
self.table.add_table_comment(comment=comment)
|
|
340
340
|
|
|
341
341
|
else:
|
|
342
|
-
DEFAULT_LOGGER.debug("table exists,
|
|
342
|
+
DEFAULT_LOGGER.debug("table already exists, skipped creation", extra={"label": self})
|
|
343
343
|
|
|
344
344
|
def _update_schema(
|
|
345
345
|
self,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
from importlib.util import module_from_spec, spec_from_file_location
|
|
2
1
|
from typing import Optional
|
|
3
2
|
|
|
4
3
|
from fabricks.context import PATH_PARSERS
|
|
5
4
|
from fabricks.core.parsers._types import ParserOptions
|
|
6
5
|
from fabricks.core.parsers.base import PARSERS, BaseParser
|
|
6
|
+
from fabricks.utils.helpers import load_module_from_path
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def get_parser(name: str, parser_options: Optional[ParserOptions] = None) -> BaseParser:
|
|
@@ -11,12 +11,7 @@ def get_parser(name: str, parser_options: Optional[ParserOptions] = None) -> Bas
|
|
|
11
11
|
path = PATH_PARSERS.joinpath(name).append(".py")
|
|
12
12
|
assert path.exists(), f"parser not found ({path})"
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
assert spec, f"parser not found ({path})"
|
|
16
|
-
assert spec.loader is not None
|
|
17
|
-
|
|
18
|
-
mod = module_from_spec(spec)
|
|
19
|
-
spec.loader.exec_module(mod)
|
|
14
|
+
load_module_from_path(name, path)
|
|
20
15
|
parser = PARSERS[name](parser_options)
|
|
21
16
|
|
|
22
17
|
else:
|
|
@@ -228,15 +228,22 @@ class BaseStep:
|
|
|
228
228
|
DEFAULT_LOGGER.exception("fail to get jobs", extra={"label": self})
|
|
229
229
|
raise e
|
|
230
230
|
|
|
231
|
-
def create_db_objects(
|
|
231
|
+
def create_db_objects(
|
|
232
|
+
self,
|
|
233
|
+
retry: Optional[bool] = True,
|
|
234
|
+
update_lists: Optional[bool] = True,
|
|
235
|
+
incremental: Optional[bool] = False,
|
|
236
|
+
) -> List[Dict]:
|
|
232
237
|
DEFAULT_LOGGER.info("create db objects", extra={"label": self})
|
|
233
238
|
|
|
234
239
|
df = self.get_jobs()
|
|
235
|
-
table_df = self.database.get_tables()
|
|
236
|
-
view_df = self.database.get_views()
|
|
237
240
|
|
|
238
|
-
|
|
239
|
-
|
|
241
|
+
if incremental:
|
|
242
|
+
table_df = self.database.get_tables()
|
|
243
|
+
view_df = self.database.get_views()
|
|
244
|
+
|
|
245
|
+
df = df.join(table_df, "job_id", how="left_anti")
|
|
246
|
+
df = df.join(view_df, "job_id", how="left_anti")
|
|
240
247
|
|
|
241
248
|
if df:
|
|
242
249
|
results = run_in_parallel(
|
|
@@ -248,15 +255,16 @@ class BaseStep:
|
|
|
248
255
|
loglevel=logging.CRITICAL,
|
|
249
256
|
)
|
|
250
257
|
|
|
251
|
-
|
|
252
|
-
|
|
258
|
+
if update_lists:
|
|
259
|
+
self.update_tables_list()
|
|
260
|
+
self.update_views_list()
|
|
253
261
|
|
|
254
262
|
errors = [res for res in results if res.get("error")]
|
|
255
263
|
|
|
256
264
|
if errors:
|
|
257
265
|
if retry:
|
|
258
266
|
DEFAULT_LOGGER.warning("retry to create jobs", extra={"label": self})
|
|
259
|
-
return self.create_db_objects(retry=False)
|
|
267
|
+
return self.create_db_objects(retry=False, update_lists=update_lists, incremental=incremental)
|
|
260
268
|
|
|
261
269
|
return errors
|
|
262
270
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
from typing import TYPE_CHECKING, List, Optional, Union
|
|
1
|
+
from typing import TYPE_CHECKING, Any, List, Optional, Union
|
|
3
2
|
|
|
4
3
|
from azure.data.tables import TableClient, TableServiceClient
|
|
5
4
|
from pyspark.sql import DataFrame
|
|
@@ -99,27 +98,29 @@ class AzureTable:
|
|
|
99
98
|
if self._table_client is not None:
|
|
100
99
|
self._table_client.close()
|
|
101
100
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
self.
|
|
101
|
+
@retry(
|
|
102
|
+
stop=stop_after_attempt(3),
|
|
103
|
+
wait=wait_exponential(multiplier=1, min=1, max=10),
|
|
104
|
+
retry=retry_if_exception_type((Exception)),
|
|
105
|
+
reraise=True,
|
|
106
|
+
)
|
|
107
|
+
def _submit_with_retry(self, data: Any):
|
|
108
|
+
self.table.submit_transaction(data)
|
|
109
|
+
|
|
110
|
+
def submit(self, operations: List):
|
|
111
|
+
partitions = set()
|
|
112
|
+
for d in operations:
|
|
113
|
+
partitions.add(d[1]["PartitionKey"])
|
|
114
|
+
|
|
115
|
+
for p in partitions:
|
|
116
|
+
_operations = [d for d in operations if d[1].get("PartitionKey") == p]
|
|
117
|
+
t = 50
|
|
118
|
+
if len(_operations) < t:
|
|
119
|
+
self._submit_with_retry(_operations)
|
|
121
120
|
else:
|
|
122
|
-
|
|
121
|
+
transactions = [_operations[i : i + t] for i in range(0, len(_operations), t)]
|
|
122
|
+
for transaction in transactions:
|
|
123
|
+
self._submit_with_retry(transaction)
|
|
123
124
|
|
|
124
125
|
def delete(self, data: Union[List, DataFrame, dict]):
|
|
125
126
|
if isinstance(data, DataFrameLike):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import sys
|
|
2
3
|
from functools import reduce
|
|
3
4
|
from queue import Queue
|
|
4
5
|
from typing import Any, Callable, Iterable, List, Literal, Optional, Union
|
|
@@ -216,13 +217,28 @@ def run_notebook(path: Path, timeout: Optional[int] = None, **kwargs):
|
|
|
216
217
|
dbutils.notebook.run(path.get_notebook_path(), timeout, {**kwargs}) # type: ignore
|
|
217
218
|
|
|
218
219
|
|
|
219
|
-
def xxhash64(s: Any):
|
|
220
|
+
def xxhash64(s: Any) -> int:
|
|
220
221
|
df = spark.sql(f"select xxhash64(cast('{s}' as string)) as xxhash64")
|
|
221
222
|
return df.collect()[0][0]
|
|
222
223
|
|
|
223
224
|
|
|
224
|
-
def md5(s: Any):
|
|
225
|
+
def md5(s: Any) -> str:
|
|
225
226
|
from hashlib import md5
|
|
226
227
|
|
|
227
228
|
md5 = md5(str(s).encode())
|
|
228
229
|
return md5.hexdigest()
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def load_module_from_path(name: str, path: Path):
|
|
233
|
+
from importlib.util import module_from_spec, spec_from_file_location
|
|
234
|
+
|
|
235
|
+
sys.path.append(str(path.parent))
|
|
236
|
+
|
|
237
|
+
spec = spec_from_file_location(name, path.string)
|
|
238
|
+
assert spec, f"no valid module found in {path.string}"
|
|
239
|
+
assert spec.loader is not None
|
|
240
|
+
|
|
241
|
+
textwrap_module = module_from_spec(spec)
|
|
242
|
+
spec.loader.exec_module(textwrap_module)
|
|
243
|
+
|
|
244
|
+
return textwrap_module
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import posixpath
|
|
2
3
|
from pathlib import Path as PathlibPath
|
|
3
4
|
from typing import List, Optional, Union
|
|
4
5
|
|
|
@@ -120,8 +121,13 @@ class Path:
|
|
|
120
121
|
return False
|
|
121
122
|
|
|
122
123
|
def joinpath(self, *other):
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
parts = [str(o) for o in other]
|
|
125
|
+
base = self.string
|
|
126
|
+
|
|
127
|
+
joined = posixpath.join(base, *parts)
|
|
128
|
+
new = posixpath.normpath(joined)
|
|
129
|
+
|
|
130
|
+
return Path(path=new, assume_git=self.assume_git)
|
|
125
131
|
|
|
126
132
|
def append(self, other: str):
|
|
127
133
|
new_path = self.string + other
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
then
|
|
3
|
-
source ./.venv/bin/activate
|
|
4
|
-
elif [[ "$OSTYPE" == "darwin23" ]]
|
|
5
|
-
then
|
|
6
|
-
source ./.venv/bin/activate
|
|
7
|
-
else
|
|
8
|
-
source ./.venv/Scripts/activate
|
|
9
|
-
fi
|
|
1
|
+
#!/bin/bash
|
|
10
2
|
|
|
11
|
-
while getopts :f:p:s:y:g:c:a option
|
|
3
|
+
while getopts :f:p:s:y:g:c:a:b option
|
|
12
4
|
do
|
|
13
5
|
case $option in
|
|
14
6
|
a) all="true";;
|
|
@@ -17,6 +9,7 @@ do
|
|
|
17
9
|
s) sql="true";;
|
|
18
10
|
y) yaml="true";;
|
|
19
11
|
g) git="true";;
|
|
12
|
+
b) build="true";;
|
|
20
13
|
esac
|
|
21
14
|
done
|
|
22
15
|
|
|
@@ -50,13 +43,18 @@ then
|
|
|
50
43
|
git="true"
|
|
51
44
|
fi
|
|
52
45
|
|
|
46
|
+
if [ -z "$build" ]
|
|
47
|
+
then
|
|
48
|
+
build="true"
|
|
49
|
+
fi
|
|
50
|
+
|
|
53
51
|
if [ "$all" = "true" ] || [ "$python" = "true" ]
|
|
54
52
|
then
|
|
55
|
-
echo "
|
|
53
|
+
echo "🖌️ autoflake(ing) 🖌️"
|
|
56
54
|
uv run autoflake -r -i .
|
|
57
|
-
echo "
|
|
55
|
+
echo "🖌️ isort(ing) 🖌️"
|
|
58
56
|
uv run isort .
|
|
59
|
-
echo "
|
|
57
|
+
echo "🖌️ pycln(ing) 🖌️"
|
|
60
58
|
uv run pycln .
|
|
61
59
|
fi
|
|
62
60
|
|
|
@@ -69,24 +67,32 @@ fi
|
|
|
69
67
|
|
|
70
68
|
if [ "$all" = "true" ] || [ "$python" = "true" ]
|
|
71
69
|
then
|
|
72
|
-
echo "
|
|
70
|
+
echo "🔎 pyright(ing) 🔎"
|
|
73
71
|
uv run pyright .
|
|
74
72
|
fi
|
|
75
73
|
|
|
76
74
|
if [ "$all" = "true" ] || [ "$sql" = "true" ]
|
|
77
75
|
then
|
|
78
|
-
echo "
|
|
76
|
+
echo "🧼 sqlfmt(ing) 🧼"
|
|
79
77
|
uv run sqlfmt .
|
|
80
78
|
fi
|
|
81
79
|
|
|
82
80
|
if [ "$all" = "true" ] || [ "$yaml" = "true" ]
|
|
83
81
|
then
|
|
84
|
-
echo "
|
|
82
|
+
echo "🧼 yamlfix(ing) 🧼"
|
|
85
83
|
uv run yamlfix . --exclude .venv --exclude .dev --exclude .idea --include *.yml
|
|
86
84
|
fi
|
|
87
85
|
|
|
88
86
|
if [ "$all" = "true" ] || [ "$git" = "true" ]
|
|
89
87
|
then
|
|
90
|
-
echo "
|
|
88
|
+
echo "✅ git add(ing) ✅"
|
|
91
89
|
git add .
|
|
92
90
|
fi
|
|
91
|
+
|
|
92
|
+
if [ "$all" = "true" ] || [ "$build" = "true" ]
|
|
93
|
+
then
|
|
94
|
+
echo "🏗️ build wheel 🏗️"
|
|
95
|
+
uv build
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
echo "🎉 All done 🎉"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Integration tests — Databricks runbook
|
|
2
|
+
|
|
3
|
+
This document describes how to build the `fabricks` wheel from the `framework` package, upload it to Databricks (DBFS), install it on a cluster, and run notebooks or integration tests on Databricks.
|
|
4
|
+
|
|
5
|
+
**Prerequisites**
|
|
6
|
+
- Python 3.9–3.10 (matches `pyproject.toml`).
|
|
7
|
+
- `uv` installed (for building): `pip install uv`.
|
|
8
|
+
|
|
9
|
+
**How to proceed ?**
|
|
10
|
+
1) Build the wheel
|
|
11
|
+
- From the repository root (where `framework/pyproject.toml` lives) run `uv build`.
|
|
12
|
+
- The wheel will be written to `dist/` (e.g. `dist/fabricks-3.0.12-py3-none-any.whl`).
|
|
13
|
+
|
|
14
|
+
2) Upload wheel to DBFS
|
|
15
|
+
|
|
16
|
+
3) Install the wheel on a cluster
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|