Skip to content

Commit d5115d3

Browse files
authored
feat: support dbt 1.6 (#31)
* fix: parent child defaults * fix: support for dbt 1.5 and 1.6 * fix: remove 1.5 * fix version
1 parent 03afbfc commit d5115d3

File tree

7 files changed

+469
-3
lines changed

7 files changed

+469
-3
lines changed

docs/features.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dbt
44
project-health
55
--------------
66

7-
The ``project-health`` feature in DataPilot is a comprehensive tool designed to analyze and report on various aspects of your dbt project.
7+
The ``project-health`` feature in DataPilot is a comprehensive tool designed to analyze and report on various aspects of your dbt project. This feature is currently supported for dbt version 1.6 and 1.7.
88

99
How to Use
1010
^^^^^^^^^^
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from dbt_artifacts_parser.parsers.catalog.catalog_v1 import CatalogV1
2+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import ManifestV10
23
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import ManifestV11
34

45
from datapilot.core.platforms.dbt.schemas.manifest import Catalog
56
from datapilot.core.platforms.dbt.schemas.manifest import Manifest
67
from datapilot.core.platforms.dbt.wrappers.catalog.v1.wrapper import CatalogV1Wrapper
8+
from datapilot.core.platforms.dbt.wrappers.manifest.v10.wrapper import ManifestV10Wrapper
79
from datapilot.core.platforms.dbt.wrappers.manifest.v11.wrapper import ManifestV11Wrapper
810
from datapilot.exceptions.exceptions import AltimateNotSupportedError
911

@@ -13,10 +15,12 @@ class DBTFactory:
1315
def get_manifest_wrapper(cls, manifest: Manifest):
1416
if isinstance(manifest, ManifestV11):
1517
return ManifestV11Wrapper(manifest)
16-
raise AltimateNotSupportedError(f"Manifest version {manifest.metadata.dbt_schema_version} not supported")
18+
if isinstance(manifest, ManifestV10):
19+
return ManifestV10Wrapper(manifest)
20+
raise AltimateNotSupportedError(f"dbt version {manifest.metadata.dbt_version} not supported")
1721

1822
@classmethod
1923
def get_catalog_wrapper(cls, catalog: Catalog):
2024
if isinstance(catalog, CatalogV1):
2125
return CatalogV1Wrapper(catalog)
22-
raise AltimateNotSupportedError(f"Catalog version {catalog.metadata.dbt_schema_version} not supported")
26+
raise AltimateNotSupportedError(f"dbt version {catalog.metadata.dbt_version} not supported")

src/datapilot/core/platforms/dbt/wrappers/manifest/v10/__init__.py

Whitespace-only changes.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from typing import Dict
2+
from typing import Type
3+
from typing import Union
4+
5+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import AnalysisNode
6+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import Exposure
7+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import GenericTestNode
8+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import HookNode
9+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import Macro
10+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import ModelNode
11+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import RPCNode
12+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import SeedNode
13+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import SingularTestNode
14+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import SnapshotNode
15+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import SourceDefinition
16+
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import SqlNode
17+
18+
from datapilot.core.platforms.dbt.constants import GENERIC
19+
from datapilot.core.platforms.dbt.constants import SINGULAR
20+
21+
ManifestNode = Union[
22+
AnalysisNode,
23+
SingularTestNode,
24+
HookNode,
25+
ModelNode,
26+
RPCNode,
27+
SqlNode,
28+
GenericTestNode,
29+
SnapshotNode,
30+
SeedNode,
31+
]
32+
33+
SourceNode = SourceDefinition
34+
35+
ExposureNode = Exposure
36+
37+
TestNode = Union[GenericTestNode, SingularTestNode]
38+
39+
MacroNode = Macro
40+
41+
TEST_TYPE_TO_NODE_MAP: Dict[str, Type] = {
42+
GENERIC: [GenericTestNode],
43+
SINGULAR: [SingularTestNode],
44+
}
45+
46+
47+
SeedNodeMap = SeedNode

0 commit comments

Comments
 (0)