dvt-core 1.11.0b5__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.
- dvt_core-1.11.0b5/MANIFEST.in +8 -0
- dvt_core-1.11.0b5/PKG-INFO +252 -0
- dvt_core-1.11.0b5/README.md +201 -0
- dvt_core-1.11.0b5/dvt/__init__.py +7 -0
- dvt_core-1.11.0b5/dvt/_pydantic_shim.py +26 -0
- dvt_core-1.11.0b5/dvt/adapters/__init__.py +16 -0
- dvt_core-1.11.0b5/dvt/adapters/multi_adapter_manager.py +268 -0
- dvt_core-1.11.0b5/dvt/adapters/unified.py +257 -0
- dvt_core-1.11.0b5/dvt/artifacts/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/exceptions/__init__.py +1 -0
- dvt_core-1.11.0b5/dvt/artifacts/exceptions/schemas.py +31 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/__init__.py +116 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/base.py +68 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/types.py +93 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/analysis.py +10 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/catalog.py +23 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/components.py +275 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/config.py +300 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/documentation.py +11 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/exposure.py +52 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/function.py +53 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/generic_test.py +32 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/group.py +22 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/hook.py +11 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/macro.py +30 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/metric.py +173 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/model.py +146 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/owner.py +10 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/saved_query.py +112 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/seed.py +42 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/semantic_layer_components.py +72 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/semantic_model.py +315 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/singular_test.py +14 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/snapshot.py +92 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/source_definition.py +97 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/sql_operation.py +10 -0
- dvt_core-1.11.0b5/dvt/artifacts/resources/v1/unit_test_definition.py +78 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/base.py +191 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/batch_results.py +24 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/__init__.py +12 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/v1/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/catalog/v1/catalog.py +60 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/__init__.py +1 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/v3/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/freshness/v3/freshness.py +159 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/__init__.py +2 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/v12/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/manifest/v12/manifest.py +212 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/results.py +148 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/run/__init__.py +2 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/run/v5/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/run/v5/run.py +184 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/__init__.py +4 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/upgrade_manifest.py +174 -0
- dvt_core-1.11.0b5/dvt/artifacts/schemas/upgrades/upgrade_manifest_dbt_version.py +2 -0
- dvt_core-1.11.0b5/dvt/artifacts/utils/validation.py +153 -0
- dvt_core-1.11.0b5/dvt/cli/__init__.py +1 -0
- dvt_core-1.11.0b5/dvt/cli/context.py +16 -0
- dvt_core-1.11.0b5/dvt/cli/exceptions.py +56 -0
- dvt_core-1.11.0b5/dvt/cli/flags.py +559 -0
- dvt_core-1.11.0b5/dvt/cli/main.py +1012 -0
- dvt_core-1.11.0b5/dvt/cli/option_types.py +121 -0
- dvt_core-1.11.0b5/dvt/cli/options.py +79 -0
- dvt_core-1.11.0b5/dvt/cli/params.py +803 -0
- dvt_core-1.11.0b5/dvt/cli/requires.py +478 -0
- dvt_core-1.11.0b5/dvt/cli/resolvers.py +32 -0
- dvt_core-1.11.0b5/dvt/cli/types.py +40 -0
- dvt_core-1.11.0b5/dvt/clients/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/clients/checked_load.py +82 -0
- dvt_core-1.11.0b5/dvt/clients/git.py +164 -0
- dvt_core-1.11.0b5/dvt/clients/jinja.py +206 -0
- dvt_core-1.11.0b5/dvt/clients/jinja_static.py +245 -0
- dvt_core-1.11.0b5/dvt/clients/registry.py +192 -0
- dvt_core-1.11.0b5/dvt/clients/yaml_helper.py +68 -0
- dvt_core-1.11.0b5/dvt/compilation.py +833 -0
- dvt_core-1.11.0b5/dvt/compute/__init__.py +26 -0
- dvt_core-1.11.0b5/dvt/compute/base.py +290 -0
- dvt_core-1.11.0b5/dvt/compute/data_extractor.py +210 -0
- dvt_core-1.11.0b5/dvt/compute/engines/__init__.py +13 -0
- dvt_core-1.11.0b5/dvt/compute/engines/duckdb_engine.py +307 -0
- dvt_core-1.11.0b5/dvt/compute/engines/spark_engine.py +290 -0
- dvt_core-1.11.0b5/dvt/compute/query_analyzer.py +347 -0
- dvt_core-1.11.0b5/dvt/compute/router.py +530 -0
- dvt_core-1.11.0b5/dvt/config/__init__.py +4 -0
- dvt_core-1.11.0b5/dvt/config/catalogs.py +95 -0
- dvt_core-1.11.0b5/dvt/config/compute_config.py +406 -0
- dvt_core-1.11.0b5/dvt/config/profile.py +411 -0
- dvt_core-1.11.0b5/dvt/config/profiles_v2.py +464 -0
- dvt_core-1.11.0b5/dvt/config/project.py +893 -0
- dvt_core-1.11.0b5/dvt/config/renderer.py +232 -0
- dvt_core-1.11.0b5/dvt/config/runtime.py +491 -0
- dvt_core-1.11.0b5/dvt/config/selectors.py +209 -0
- dvt_core-1.11.0b5/dvt/config/utils.py +78 -0
- dvt_core-1.11.0b5/dvt/connectors/.gitignore +6 -0
- dvt_core-1.11.0b5/dvt/connectors/README.md +306 -0
- dvt_core-1.11.0b5/dvt/connectors/catalog.yml +217 -0
- dvt_core-1.11.0b5/dvt/connectors/download_connectors.py +300 -0
- dvt_core-1.11.0b5/dvt/constants.py +29 -0
- dvt_core-1.11.0b5/dvt/context/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/context/base.py +746 -0
- dvt_core-1.11.0b5/dvt/context/configured.py +136 -0
- dvt_core-1.11.0b5/dvt/context/context_config.py +350 -0
- dvt_core-1.11.0b5/dvt/context/docs.py +82 -0
- dvt_core-1.11.0b5/dvt/context/exceptions_jinja.py +179 -0
- dvt_core-1.11.0b5/dvt/context/macro_resolver.py +195 -0
- dvt_core-1.11.0b5/dvt/context/macros.py +171 -0
- dvt_core-1.11.0b5/dvt/context/manifest.py +73 -0
- dvt_core-1.11.0b5/dvt/context/providers.py +2198 -0
- dvt_core-1.11.0b5/dvt/context/query_header.py +14 -0
- dvt_core-1.11.0b5/dvt/context/secret.py +59 -0
- dvt_core-1.11.0b5/dvt/context/target.py +74 -0
- dvt_core-1.11.0b5/dvt/contracts/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/contracts/files.py +413 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/manifest.py +1904 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/metrics.py +98 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/model_config.py +71 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/node_args.py +42 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/nodes.py +1806 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/semantic_manifest.py +233 -0
- dvt_core-1.11.0b5/dvt/contracts/graph/unparsed.py +812 -0
- dvt_core-1.11.0b5/dvt/contracts/project.py +417 -0
- dvt_core-1.11.0b5/dvt/contracts/results.py +53 -0
- dvt_core-1.11.0b5/dvt/contracts/selection.py +23 -0
- dvt_core-1.11.0b5/dvt/contracts/sql.py +86 -0
- dvt_core-1.11.0b5/dvt/contracts/state.py +69 -0
- dvt_core-1.11.0b5/dvt/contracts/util.py +46 -0
- dvt_core-1.11.0b5/dvt/deprecations.py +347 -0
- dvt_core-1.11.0b5/dvt/deps/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/deps/base.py +153 -0
- dvt_core-1.11.0b5/dvt/deps/git.py +196 -0
- dvt_core-1.11.0b5/dvt/deps/local.py +80 -0
- dvt_core-1.11.0b5/dvt/deps/registry.py +131 -0
- dvt_core-1.11.0b5/dvt/deps/resolver.py +149 -0
- dvt_core-1.11.0b5/dvt/deps/tarball.py +121 -0
- dvt_core-1.11.0b5/dvt/docs/source/_ext/dbt_click.py +118 -0
- dvt_core-1.11.0b5/dvt/docs/source/conf.py +32 -0
- dvt_core-1.11.0b5/dvt/env_vars.py +64 -0
- dvt_core-1.11.0b5/dvt/event_time/event_time.py +40 -0
- dvt_core-1.11.0b5/dvt/event_time/sample_window.py +60 -0
- dvt_core-1.11.0b5/dvt/events/__init__.py +16 -0
- dvt_core-1.11.0b5/dvt/events/base_types.py +37 -0
- dvt_core-1.11.0b5/dvt/events/core_types_pb2.py +2 -0
- dvt_core-1.11.0b5/dvt/events/logging.py +109 -0
- dvt_core-1.11.0b5/dvt/events/types.py +2547 -0
- dvt_core-1.11.0b5/dvt/exceptions.py +1487 -0
- dvt_core-1.11.0b5/dvt/flags.py +89 -0
- dvt_core-1.11.0b5/dvt/graph/__init__.py +11 -0
- dvt_core-1.11.0b5/dvt/graph/cli.py +248 -0
- dvt_core-1.11.0b5/dvt/graph/graph.py +172 -0
- dvt_core-1.11.0b5/dvt/graph/queue.py +213 -0
- dvt_core-1.11.0b5/dvt/graph/selector.py +375 -0
- dvt_core-1.11.0b5/dvt/graph/selector_methods.py +976 -0
- dvt_core-1.11.0b5/dvt/graph/selector_spec.py +223 -0
- dvt_core-1.11.0b5/dvt/graph/thread_pool.py +18 -0
- dvt_core-1.11.0b5/dvt/hooks.py +21 -0
- dvt_core-1.11.0b5/dvt/include/README.md +49 -0
- dvt_core-1.11.0b5/dvt/include/__init__.py +3 -0
- dvt_core-1.11.0b5/dvt/include/global_project.py +4 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/.gitignore +4 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/README.md +15 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/__init__.py +3 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/analyses/.gitkeep +0 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/dvt_project.yml +36 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/macros/.gitkeep +0 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/models/example/my_first_dbt_model.sql +27 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/models/example/my_second_dbt_model.sql +6 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/models/example/schema.yml +21 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/seeds/.gitkeep +0 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/snapshots/.gitkeep +0 -0
- dvt_core-1.11.0b5/dvt/include/starter_project/tests/.gitkeep +0 -0
- dvt_core-1.11.0b5/dvt/internal_deprecations.py +27 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/__init__.py +3 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/jsonschemas.py +309 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/project/0.0.110.json +4717 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/project/0.0.85.json +2015 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/resources/0.0.110.json +2636 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/resources/0.0.85.json +2536 -0
- dvt_core-1.11.0b5/dvt/jsonschemas/resources/latest.json +6773 -0
- dvt_core-1.11.0b5/dvt/links.py +4 -0
- dvt_core-1.11.0b5/dvt/materializations/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/materializations/incremental/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/materializations/incremental/microbatch.py +235 -0
- dvt_core-1.11.0b5/dvt/mp_context.py +8 -0
- dvt_core-1.11.0b5/dvt/node_types.py +37 -0
- dvt_core-1.11.0b5/dvt/parser/__init__.py +23 -0
- dvt_core-1.11.0b5/dvt/parser/analysis.py +21 -0
- dvt_core-1.11.0b5/dvt/parser/base.py +549 -0
- dvt_core-1.11.0b5/dvt/parser/common.py +267 -0
- dvt_core-1.11.0b5/dvt/parser/docs.py +52 -0
- dvt_core-1.11.0b5/dvt/parser/fixtures.py +51 -0
- dvt_core-1.11.0b5/dvt/parser/functions.py +30 -0
- dvt_core-1.11.0b5/dvt/parser/generic_test.py +100 -0
- dvt_core-1.11.0b5/dvt/parser/generic_test_builders.py +334 -0
- dvt_core-1.11.0b5/dvt/parser/hooks.py +119 -0
- dvt_core-1.11.0b5/dvt/parser/macros.py +137 -0
- dvt_core-1.11.0b5/dvt/parser/manifest.py +2204 -0
- dvt_core-1.11.0b5/dvt/parser/models.py +574 -0
- dvt_core-1.11.0b5/dvt/parser/partial.py +1179 -0
- dvt_core-1.11.0b5/dvt/parser/read_files.py +445 -0
- dvt_core-1.11.0b5/dvt/parser/schema_generic_tests.py +423 -0
- dvt_core-1.11.0b5/dvt/parser/schema_renderer.py +111 -0
- dvt_core-1.11.0b5/dvt/parser/schema_yaml_readers.py +936 -0
- dvt_core-1.11.0b5/dvt/parser/schemas.py +1467 -0
- dvt_core-1.11.0b5/dvt/parser/search.py +149 -0
- dvt_core-1.11.0b5/dvt/parser/seeds.py +28 -0
- dvt_core-1.11.0b5/dvt/parser/singular_test.py +20 -0
- dvt_core-1.11.0b5/dvt/parser/snapshots.py +44 -0
- dvt_core-1.11.0b5/dvt/parser/sources.py +557 -0
- dvt_core-1.11.0b5/dvt/parser/sql.py +63 -0
- dvt_core-1.11.0b5/dvt/parser/unit_tests.py +622 -0
- dvt_core-1.11.0b5/dvt/plugins/__init__.py +20 -0
- dvt_core-1.11.0b5/dvt/plugins/contracts.py +10 -0
- dvt_core-1.11.0b5/dvt/plugins/exceptions.py +2 -0
- dvt_core-1.11.0b5/dvt/plugins/manager.py +164 -0
- dvt_core-1.11.0b5/dvt/plugins/manifest.py +21 -0
- dvt_core-1.11.0b5/dvt/profiler.py +20 -0
- dvt_core-1.11.0b5/dvt/py.typed +1 -0
- dvt_core-1.11.0b5/dvt/runners/__init__.py +2 -0
- dvt_core-1.11.0b5/dvt/runners/exposure_runner.py +7 -0
- dvt_core-1.11.0b5/dvt/runners/no_op_runner.py +46 -0
- dvt_core-1.11.0b5/dvt/runners/saved_query_runner.py +7 -0
- dvt_core-1.11.0b5/dvt/selected_resources.py +8 -0
- dvt_core-1.11.0b5/dvt/task/__init__.py +0 -0
- dvt_core-1.11.0b5/dvt/task/base.py +504 -0
- dvt_core-1.11.0b5/dvt/task/build.py +197 -0
- dvt_core-1.11.0b5/dvt/task/clean.py +57 -0
- dvt_core-1.11.0b5/dvt/task/clone.py +162 -0
- dvt_core-1.11.0b5/dvt/task/compile.py +151 -0
- dvt_core-1.11.0b5/dvt/task/compute.py +512 -0
- dvt_core-1.11.0b5/dvt/task/debug.py +650 -0
- dvt_core-1.11.0b5/dvt/task/deps.py +280 -0
- dvt_core-1.11.0b5/dvt/task/docs/__init__.py +3 -0
- dvt_core-1.11.0b5/dvt/task/docs/generate.py +408 -0
- dvt_core-1.11.0b5/dvt/task/docs/index.html +250 -0
- dvt_core-1.11.0b5/dvt/task/docs/serve.py +28 -0
- dvt_core-1.11.0b5/dvt/task/freshness.py +323 -0
- dvt_core-1.11.0b5/dvt/task/function.py +122 -0
- dvt_core-1.11.0b5/dvt/task/group_lookup.py +46 -0
- dvt_core-1.11.0b5/dvt/task/init.py +374 -0
- dvt_core-1.11.0b5/dvt/task/list.py +237 -0
- dvt_core-1.11.0b5/dvt/task/printer.py +176 -0
- dvt_core-1.11.0b5/dvt/task/profile_register.py +430 -0
- dvt_core-1.11.0b5/dvt/task/profiles.py +256 -0
- dvt_core-1.11.0b5/dvt/task/retry.py +175 -0
- dvt_core-1.11.0b5/dvt/task/run.py +1146 -0
- dvt_core-1.11.0b5/dvt/task/run_operation.py +142 -0
- dvt_core-1.11.0b5/dvt/task/runnable.py +817 -0
- dvt_core-1.11.0b5/dvt/task/seed.py +104 -0
- dvt_core-1.11.0b5/dvt/task/show.py +150 -0
- dvt_core-1.11.0b5/dvt/task/snapshot.py +57 -0
- dvt_core-1.11.0b5/dvt/task/sql.py +111 -0
- dvt_core-1.11.0b5/dvt/task/test.py +464 -0
- dvt_core-1.11.0b5/dvt/tests/fixtures/__init__.py +1 -0
- dvt_core-1.11.0b5/dvt/tests/fixtures/project.py +620 -0
- dvt_core-1.11.0b5/dvt/tests/util.py +651 -0
- dvt_core-1.11.0b5/dvt/tracking.py +529 -0
- dvt_core-1.11.0b5/dvt/utils/__init__.py +3 -0
- dvt_core-1.11.0b5/dvt/utils/artifact_upload.py +151 -0
- dvt_core-1.11.0b5/dvt/utils/utils.py +408 -0
- dvt_core-1.11.0b5/dvt/version.py +249 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/PKG-INFO +252 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/SOURCES.txt +529 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/dependency_links.txt +1 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/entry_points.txt +3 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/not-zip-safe +1 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/requires.txt +25 -0
- dvt_core-1.11.0b5/dvt_core.egg-info/top_level.txt +1 -0
- dvt_core-1.11.0b5/pyproject.toml +120 -0
- dvt_core-1.11.0b5/setup.cfg +4 -0
- dvt_core-1.11.0b5/setup.py +26 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Include DVT package data
|
|
2
|
+
recursive-include dvt/include *.py *.sql *.yml *.html *.md .gitkeep .gitignore
|
|
3
|
+
include dvt/py.typed
|
|
4
|
+
recursive-include dvt/task/docs *.html
|
|
5
|
+
recursive-include dvt/jsonschemas *.json
|
|
6
|
+
|
|
7
|
+
# Exclude all JARs (no longer needed - using dbt adapters)
|
|
8
|
+
global-exclude *.jar
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dvt-core
|
|
3
|
+
Version: 1.11.0b5
|
|
4
|
+
Summary: DVT (Data Virtualization Tool) - An all-in-one ELT solution for data transformation and virtualization, built on dbt-core foundations.
|
|
5
|
+
Author: DVT Core Contributors
|
|
6
|
+
Maintainer: DVT Core Contributors
|
|
7
|
+
License-Expression: Apache-2.0
|
|
8
|
+
Project-URL: Homepage, https://github.com/hex/dvt-core
|
|
9
|
+
Project-URL: Repository, https://github.com/hex/dvt-core.git
|
|
10
|
+
Project-URL: Issues, https://github.com/hex/dvt-core/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/hex/dvt-core/blob/main/CHANGELOG.md
|
|
12
|
+
Keywords: data,virtualization,ELT,transformation,analytics
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
16
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
Requires-Dist: agate<1.10,>=1.7.0
|
|
27
|
+
Requires-Dist: Jinja2<4,>=3.1.3
|
|
28
|
+
Requires-Dist: mashumaro[msgpack]<3.15,>=3.9
|
|
29
|
+
Requires-Dist: click<9.0,>=8.0.2
|
|
30
|
+
Requires-Dist: jsonschema<5.0,>=4.19.1
|
|
31
|
+
Requires-Dist: networkx<4.0,>=2.3
|
|
32
|
+
Requires-Dist: protobuf<7.0,>=6.0
|
|
33
|
+
Requires-Dist: requests<3.0.0
|
|
34
|
+
Requires-Dist: snowplow-tracker<2.0,>=1.0.2
|
|
35
|
+
Requires-Dist: pathspec<0.13,>=0.9
|
|
36
|
+
Requires-Dist: sqlparse<0.6.0,>=0.5.0
|
|
37
|
+
Requires-Dist: dbt-extractor<=0.6,>=0.5.0
|
|
38
|
+
Requires-Dist: dbt-semantic-interfaces<0.10,>=0.9.0
|
|
39
|
+
Requires-Dist: dbt-common<2.0,>=1.27.0
|
|
40
|
+
Requires-Dist: dbt-adapters<2.0,>=1.15.5
|
|
41
|
+
Requires-Dist: dbt-protos<2.0,>=1.0.375
|
|
42
|
+
Requires-Dist: pydantic<3
|
|
43
|
+
Requires-Dist: duckdb<2.0,>=0.9.0
|
|
44
|
+
Requires-Dist: pyspark<4.0,>=3.4.0
|
|
45
|
+
Requires-Dist: pyarrow>=14.0.0
|
|
46
|
+
Requires-Dist: packaging>20.9
|
|
47
|
+
Requires-Dist: pytz>=2015.7
|
|
48
|
+
Requires-Dist: pyyaml>=6.0
|
|
49
|
+
Requires-Dist: daff>=1.3.46
|
|
50
|
+
Requires-Dist: typing-extensions>=4.4
|
|
51
|
+
|
|
52
|
+
# DVT (Data Virtualization Tool)
|
|
53
|
+
|
|
54
|
+
**DVT** is an all-in-one ELT solution that adds comprehensive data virtualization capabilities to dbt-core foundations.
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
### Installation
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Install DVT with all features (includes PySpark, DuckDB, and 20 JDBC connectors)
|
|
62
|
+
pip install dvt-core
|
|
63
|
+
|
|
64
|
+
# Verify installation
|
|
65
|
+
dvt --version
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**What's included:**
|
|
69
|
+
- ✅ Core DVT + all dbt functionality
|
|
70
|
+
- ✅ DuckDB compute engine (~10MB)
|
|
71
|
+
- ✅ PySpark compute engine (~250MB)
|
|
72
|
+
- ✅ 20 JDBC connectors (~200MB) for Spark cross-database queries
|
|
73
|
+
- ✅ Complete documentation and examples
|
|
74
|
+
|
|
75
|
+
**Total install size:** ~450-500MB
|
|
76
|
+
|
|
77
|
+
### Create Your First Project
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Initialize new project
|
|
81
|
+
dvt init my_analytics_project
|
|
82
|
+
cd my_analytics_project
|
|
83
|
+
|
|
84
|
+
# Configure profiles in ~/.dvt/profiles.yml
|
|
85
|
+
# Add multiple database connections
|
|
86
|
+
|
|
87
|
+
# Test connections
|
|
88
|
+
dvt profiles test --all
|
|
89
|
+
|
|
90
|
+
# Run your models
|
|
91
|
+
dvt run
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## What is DVT?
|
|
95
|
+
|
|
96
|
+
DVT enables you to:
|
|
97
|
+
|
|
98
|
+
- **Query across databases**: Join PostgreSQL, MySQL, Snowflake, and 20+ other databases in a single SQL query
|
|
99
|
+
- **Maintain dbt compatibility**: 100% backwards compatible with existing dbt projects
|
|
100
|
+
- **Use intelligent query routing**: Automatic optimization between pushdown and compute layer execution
|
|
101
|
+
- **Manage multiple connections**: Support multiple database profiles in a single project
|
|
102
|
+
- **Choose your compute engine**: Use DuckDB for fast analytics or Spark for distributed processing
|
|
103
|
+
|
|
104
|
+
## Key Features
|
|
105
|
+
|
|
106
|
+
### Cross-Database Queries
|
|
107
|
+
|
|
108
|
+
```sql
|
|
109
|
+
-- Join PostgreSQL customers with MySQL orders
|
|
110
|
+
select
|
|
111
|
+
c.customer_id,
|
|
112
|
+
c.name,
|
|
113
|
+
count(o.order_id) as order_count
|
|
114
|
+
from {{ source('postgres_prod', 'customers') }} c
|
|
115
|
+
left join {{ source('mysql_legacy', 'orders') }} o
|
|
116
|
+
on c.customer_id = o.customer_id
|
|
117
|
+
group by c.customer_id, c.name
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
DVT automatically detects heterogeneous sources and routes execution to the appropriate compute engine.
|
|
121
|
+
|
|
122
|
+
### Multi-Profile Support
|
|
123
|
+
|
|
124
|
+
Configure multiple database connections:
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
# profiles.yml
|
|
128
|
+
postgres_prod:
|
|
129
|
+
adapter: postgres
|
|
130
|
+
host: prod-db.example.com
|
|
131
|
+
# ...
|
|
132
|
+
|
|
133
|
+
mysql_legacy:
|
|
134
|
+
adapter: mysql
|
|
135
|
+
host: legacy-db.example.com
|
|
136
|
+
# ...
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Reference profiles in source definitions:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
# sources.yml
|
|
143
|
+
sources:
|
|
144
|
+
- name: postgres_prod
|
|
145
|
+
profile: postgres_prod
|
|
146
|
+
tables:
|
|
147
|
+
- name: customers
|
|
148
|
+
|
|
149
|
+
- name: mysql_legacy
|
|
150
|
+
profile: mysql_legacy
|
|
151
|
+
tables:
|
|
152
|
+
- name: orders
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Included JDBC Connectors
|
|
156
|
+
|
|
157
|
+
DVT bundles 20 JDBC connectors (~200MB) for Spark:
|
|
158
|
+
|
|
159
|
+
**Relational Databases:**
|
|
160
|
+
- PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, DB2
|
|
161
|
+
|
|
162
|
+
**Cloud Data Warehouses:**
|
|
163
|
+
- Snowflake, BigQuery, Redshift, Athena
|
|
164
|
+
|
|
165
|
+
**Analytics & MPP:**
|
|
166
|
+
- ClickHouse, Vertica, Presto, Trino
|
|
167
|
+
|
|
168
|
+
**Other:**
|
|
169
|
+
- H2, SQLite, Derby, Hive, InfluxDB, TimescaleDB
|
|
170
|
+
|
|
171
|
+
**Note:** Phoenix connector (149MB) exceeds PyPI limits and can be downloaded separately:
|
|
172
|
+
```bash
|
|
173
|
+
dvt connectors download --connector=phoenix
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## DVT Commands
|
|
177
|
+
|
|
178
|
+
### Standard dbt Commands (100% Compatible)
|
|
179
|
+
|
|
180
|
+
All dbt commands work identically:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
dvt run # Run models
|
|
184
|
+
dvt test # Run tests
|
|
185
|
+
dvt build # Run + test models
|
|
186
|
+
dvt compile # Compile SQL
|
|
187
|
+
dvt docs generate # Generate documentation
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### DVT Extensions
|
|
191
|
+
|
|
192
|
+
**Profile Management:**
|
|
193
|
+
```bash
|
|
194
|
+
dvt profiles list # List all configured profiles
|
|
195
|
+
dvt profiles show postgres_prod
|
|
196
|
+
dvt profiles test --all # Test all profile connections
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Compute Layer:**
|
|
200
|
+
```bash
|
|
201
|
+
dvt compute show # Show compute configuration
|
|
202
|
+
dvt compute engines # List available engines
|
|
203
|
+
dvt compute test --all # Test compute engines
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Enhanced Debug:**
|
|
207
|
+
```bash
|
|
208
|
+
dvt debug --all-profiles # Test all profiles (not just target)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Documentation
|
|
212
|
+
|
|
213
|
+
For complete documentation, see:
|
|
214
|
+
|
|
215
|
+
- **[Sample Project Guide](../docs/sample-project-guide.md)** - Complete walkthrough building a real DVT project
|
|
216
|
+
- **[DVT Architecture](../docs/DVT_ARCHITECTURE.md)** - Detailed architecture overview
|
|
217
|
+
- **[Migration Guide](../docs/migration-guide.md)** - Migrate from dbt to DVT
|
|
218
|
+
- **[CLI Reference](../docs/cli-reference.md)** - Complete command reference
|
|
219
|
+
- **[Connector Catalog](connectors/README.md)** - JDBC connector documentation
|
|
220
|
+
|
|
221
|
+
## Migration from dbt
|
|
222
|
+
|
|
223
|
+
DVT is 100% backwards compatible with dbt:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Install DVT
|
|
227
|
+
pip install dvt-core
|
|
228
|
+
|
|
229
|
+
# Replace dbt commands with dvt
|
|
230
|
+
dvt run # instead of: dbt run
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
That's it! Your existing dbt project works as-is.
|
|
234
|
+
|
|
235
|
+
## Requirements
|
|
236
|
+
|
|
237
|
+
- Python 3.10, 3.11, 3.12, or 3.13
|
|
238
|
+
- Database adapters for your databases (e.g., `dbt-postgres`, `dbt-snowflake`)
|
|
239
|
+
|
|
240
|
+
## License
|
|
241
|
+
|
|
242
|
+
Apache License 2.0 - Same as dbt-core
|
|
243
|
+
|
|
244
|
+
## Support
|
|
245
|
+
|
|
246
|
+
- **Repository**: https://github.com/hex/dvt-core
|
|
247
|
+
- **Issues**: https://github.com/hex/dvt-core/issues
|
|
248
|
+
- **Documentation**: See `/docs` directory in repository
|
|
249
|
+
|
|
250
|
+
## Acknowledgments
|
|
251
|
+
|
|
252
|
+
DVT is built on top of [dbt-core](https://github.com/dbt-labs/dbt-core) and maintains deep compatibility with the dbt ecosystem.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# DVT (Data Virtualization Tool)
|
|
2
|
+
|
|
3
|
+
**DVT** is an all-in-one ELT solution that adds comprehensive data virtualization capabilities to dbt-core foundations.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Install DVT with all features (includes PySpark, DuckDB, and 20 JDBC connectors)
|
|
11
|
+
pip install dvt-core
|
|
12
|
+
|
|
13
|
+
# Verify installation
|
|
14
|
+
dvt --version
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**What's included:**
|
|
18
|
+
- ✅ Core DVT + all dbt functionality
|
|
19
|
+
- ✅ DuckDB compute engine (~10MB)
|
|
20
|
+
- ✅ PySpark compute engine (~250MB)
|
|
21
|
+
- ✅ 20 JDBC connectors (~200MB) for Spark cross-database queries
|
|
22
|
+
- ✅ Complete documentation and examples
|
|
23
|
+
|
|
24
|
+
**Total install size:** ~450-500MB
|
|
25
|
+
|
|
26
|
+
### Create Your First Project
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Initialize new project
|
|
30
|
+
dvt init my_analytics_project
|
|
31
|
+
cd my_analytics_project
|
|
32
|
+
|
|
33
|
+
# Configure profiles in ~/.dvt/profiles.yml
|
|
34
|
+
# Add multiple database connections
|
|
35
|
+
|
|
36
|
+
# Test connections
|
|
37
|
+
dvt profiles test --all
|
|
38
|
+
|
|
39
|
+
# Run your models
|
|
40
|
+
dvt run
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## What is DVT?
|
|
44
|
+
|
|
45
|
+
DVT enables you to:
|
|
46
|
+
|
|
47
|
+
- **Query across databases**: Join PostgreSQL, MySQL, Snowflake, and 20+ other databases in a single SQL query
|
|
48
|
+
- **Maintain dbt compatibility**: 100% backwards compatible with existing dbt projects
|
|
49
|
+
- **Use intelligent query routing**: Automatic optimization between pushdown and compute layer execution
|
|
50
|
+
- **Manage multiple connections**: Support multiple database profiles in a single project
|
|
51
|
+
- **Choose your compute engine**: Use DuckDB for fast analytics or Spark for distributed processing
|
|
52
|
+
|
|
53
|
+
## Key Features
|
|
54
|
+
|
|
55
|
+
### Cross-Database Queries
|
|
56
|
+
|
|
57
|
+
```sql
|
|
58
|
+
-- Join PostgreSQL customers with MySQL orders
|
|
59
|
+
select
|
|
60
|
+
c.customer_id,
|
|
61
|
+
c.name,
|
|
62
|
+
count(o.order_id) as order_count
|
|
63
|
+
from {{ source('postgres_prod', 'customers') }} c
|
|
64
|
+
left join {{ source('mysql_legacy', 'orders') }} o
|
|
65
|
+
on c.customer_id = o.customer_id
|
|
66
|
+
group by c.customer_id, c.name
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
DVT automatically detects heterogeneous sources and routes execution to the appropriate compute engine.
|
|
70
|
+
|
|
71
|
+
### Multi-Profile Support
|
|
72
|
+
|
|
73
|
+
Configure multiple database connections:
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
# profiles.yml
|
|
77
|
+
postgres_prod:
|
|
78
|
+
adapter: postgres
|
|
79
|
+
host: prod-db.example.com
|
|
80
|
+
# ...
|
|
81
|
+
|
|
82
|
+
mysql_legacy:
|
|
83
|
+
adapter: mysql
|
|
84
|
+
host: legacy-db.example.com
|
|
85
|
+
# ...
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Reference profiles in source definitions:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
# sources.yml
|
|
92
|
+
sources:
|
|
93
|
+
- name: postgres_prod
|
|
94
|
+
profile: postgres_prod
|
|
95
|
+
tables:
|
|
96
|
+
- name: customers
|
|
97
|
+
|
|
98
|
+
- name: mysql_legacy
|
|
99
|
+
profile: mysql_legacy
|
|
100
|
+
tables:
|
|
101
|
+
- name: orders
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Included JDBC Connectors
|
|
105
|
+
|
|
106
|
+
DVT bundles 20 JDBC connectors (~200MB) for Spark:
|
|
107
|
+
|
|
108
|
+
**Relational Databases:**
|
|
109
|
+
- PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, DB2
|
|
110
|
+
|
|
111
|
+
**Cloud Data Warehouses:**
|
|
112
|
+
- Snowflake, BigQuery, Redshift, Athena
|
|
113
|
+
|
|
114
|
+
**Analytics & MPP:**
|
|
115
|
+
- ClickHouse, Vertica, Presto, Trino
|
|
116
|
+
|
|
117
|
+
**Other:**
|
|
118
|
+
- H2, SQLite, Derby, Hive, InfluxDB, TimescaleDB
|
|
119
|
+
|
|
120
|
+
**Note:** Phoenix connector (149MB) exceeds PyPI limits and can be downloaded separately:
|
|
121
|
+
```bash
|
|
122
|
+
dvt connectors download --connector=phoenix
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## DVT Commands
|
|
126
|
+
|
|
127
|
+
### Standard dbt Commands (100% Compatible)
|
|
128
|
+
|
|
129
|
+
All dbt commands work identically:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
dvt run # Run models
|
|
133
|
+
dvt test # Run tests
|
|
134
|
+
dvt build # Run + test models
|
|
135
|
+
dvt compile # Compile SQL
|
|
136
|
+
dvt docs generate # Generate documentation
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### DVT Extensions
|
|
140
|
+
|
|
141
|
+
**Profile Management:**
|
|
142
|
+
```bash
|
|
143
|
+
dvt profiles list # List all configured profiles
|
|
144
|
+
dvt profiles show postgres_prod
|
|
145
|
+
dvt profiles test --all # Test all profile connections
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Compute Layer:**
|
|
149
|
+
```bash
|
|
150
|
+
dvt compute show # Show compute configuration
|
|
151
|
+
dvt compute engines # List available engines
|
|
152
|
+
dvt compute test --all # Test compute engines
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Enhanced Debug:**
|
|
156
|
+
```bash
|
|
157
|
+
dvt debug --all-profiles # Test all profiles (not just target)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Documentation
|
|
161
|
+
|
|
162
|
+
For complete documentation, see:
|
|
163
|
+
|
|
164
|
+
- **[Sample Project Guide](../docs/sample-project-guide.md)** - Complete walkthrough building a real DVT project
|
|
165
|
+
- **[DVT Architecture](../docs/DVT_ARCHITECTURE.md)** - Detailed architecture overview
|
|
166
|
+
- **[Migration Guide](../docs/migration-guide.md)** - Migrate from dbt to DVT
|
|
167
|
+
- **[CLI Reference](../docs/cli-reference.md)** - Complete command reference
|
|
168
|
+
- **[Connector Catalog](connectors/README.md)** - JDBC connector documentation
|
|
169
|
+
|
|
170
|
+
## Migration from dbt
|
|
171
|
+
|
|
172
|
+
DVT is 100% backwards compatible with dbt:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# Install DVT
|
|
176
|
+
pip install dvt-core
|
|
177
|
+
|
|
178
|
+
# Replace dbt commands with dvt
|
|
179
|
+
dvt run # instead of: dbt run
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
That's it! Your existing dbt project works as-is.
|
|
183
|
+
|
|
184
|
+
## Requirements
|
|
185
|
+
|
|
186
|
+
- Python 3.10, 3.11, 3.12, or 3.13
|
|
187
|
+
- Database adapters for your databases (e.g., `dbt-postgres`, `dbt-snowflake`)
|
|
188
|
+
|
|
189
|
+
## License
|
|
190
|
+
|
|
191
|
+
Apache License 2.0 - Same as dbt-core
|
|
192
|
+
|
|
193
|
+
## Support
|
|
194
|
+
|
|
195
|
+
- **Repository**: https://github.com/hex/dvt-core
|
|
196
|
+
- **Issues**: https://github.com/hex/dvt-core/issues
|
|
197
|
+
- **Documentation**: See `/docs` directory in repository
|
|
198
|
+
|
|
199
|
+
## Acknowledgments
|
|
200
|
+
|
|
201
|
+
DVT is built on top of [dbt-core](https://github.com/dbt-labs/dbt-core) and maintains deep compatibility with the dbt ecosystem.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# N.B.
|
|
2
|
+
# This will add to the package’s __path__ all subdirectories of directories on sys.path named after the package which effectively combines both modules into a single namespace (dbt.adapters)
|
|
3
|
+
# The matching statement is in plugins/postgres/dbt/__init__.py
|
|
4
|
+
|
|
5
|
+
from pkgutil import extend_path
|
|
6
|
+
|
|
7
|
+
__path__ = extend_path(__path__, __name__)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# type: ignore
|
|
2
|
+
|
|
3
|
+
"""Shim to allow support for both Pydantic 1 and Pydantic 2.
|
|
4
|
+
|
|
5
|
+
dbt-core must support both major versions of Pydantic because dbt-core users might be using an environment with
|
|
6
|
+
either version, and we can't restrict them to one or the other. Here, we essentially import all Pydantic objects
|
|
7
|
+
from version 1 that we use. Throughout the repo, we import these objects from this file instead of from Pydantic
|
|
8
|
+
directly, meaning that we essentially only use Pydantic 1 in dbt-core currently, but without forcing that restriction
|
|
9
|
+
on dbt users. The development environment for this repo should be pinned to Pydantic 1 to ensure devs get appropriate
|
|
10
|
+
type hints.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from importlib.metadata import version
|
|
14
|
+
|
|
15
|
+
pydantic_version = version("pydantic")
|
|
16
|
+
# Pydantic uses semantic versioning, i.e. <major>.<minor>.<patch>, and we need to know the major
|
|
17
|
+
pydantic_major = pydantic_version.split(".")[0]
|
|
18
|
+
|
|
19
|
+
if pydantic_major == "1":
|
|
20
|
+
from pydantic import BaseSettings # noqa: F401
|
|
21
|
+
elif pydantic_major == "2":
|
|
22
|
+
from pydantic.v1 import BaseSettings # noqa: F401
|
|
23
|
+
else:
|
|
24
|
+
raise RuntimeError(
|
|
25
|
+
f"Currently only pydantic 1 and 2 are supported, found pydantic {pydantic_version}"
|
|
26
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DVT adapter management extensions.
|
|
3
|
+
|
|
4
|
+
This module extends dbt's adapter system to support multi-profile
|
|
5
|
+
source connections and compute layer integration.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from dvt.adapters.multi_adapter_manager import (
|
|
9
|
+
MultiAdapterManager,
|
|
10
|
+
create_multi_adapter_manager,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"MultiAdapterManager",
|
|
15
|
+
"create_multi_adapter_manager",
|
|
16
|
+
]
|