Skip to content

Commit

Permalink
Support manifest v10 beta toward dbt-core 1.6 (#48)
Browse files Browse the repository at this point in the history
  • Loading branch information
yu-iskw committed Jul 5, 2023
1 parent 96eca06 commit cdc9125
Show file tree
Hide file tree
Showing 8 changed files with 7,165 additions and 3 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Those are the classes to parse dbt artifacts.
- [ManifestV7](dbt_artifacts_parser/parsers/manifest/manifest_v7.py) for manifest.json v7
- [ManifestV8](dbt_artifacts_parser/parsers/manifest/manifest_v8.py) for manifest.json v8
- [ManifestV9](dbt_artifacts_parser/parsers/manifest/manifest_v9.py) for manifest.json v9
- [ManifestV10](dbt_artifacts_parser/parsers/manifest/manifest_v10.py) for manifest.json v10

### Run Results
- [RunResultsV1](dbt_artifacts_parser/parsers/manifest/manifest_v1.py) for run_results.json v1
Expand Down Expand Up @@ -137,6 +138,9 @@ with open("path/to/manifest.json", "r") as fp:
# parse manifest.json v9
from dbt_artifacts_parser.parser import parse_manifest_v9

# parse manifest.json v10
from dbt_artifacts_parser.parser import parse_manifest_v10

with open("path/to/manifest.json", "r") as fp:
manifest_dict = json.load(fp)
manifest_obj = parse_manifest_v9(manifest=manifest_dict)
Expand Down
2 changes: 1 addition & 1 deletion dbt_artifacts_parser/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
"""
A dbt artifacts parser in python
"""
__version__ = "0.3.2"
__version__ = "0.4.0-rc1"
12 changes: 11 additions & 1 deletion dbt_artifacts_parser/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from dbt_artifacts_parser.parsers.manifest.manifest_v7 import ManifestV7
from dbt_artifacts_parser.parsers.manifest.manifest_v8 import ManifestV8
from dbt_artifacts_parser.parsers.manifest.manifest_v9 import ManifestV9
from dbt_artifacts_parser.parsers.manifest.manifest_v10 import ManifestV10
from dbt_artifacts_parser.parsers.run_results.run_results_v1 import RunResultsV1
from dbt_artifacts_parser.parsers.run_results.run_results_v2 import RunResultsV2
from dbt_artifacts_parser.parsers.run_results.run_results_v3 import RunResultsV3
Expand Down Expand Up @@ -69,7 +70,7 @@ def parse_catalog_v1(catalog: dict) -> CatalogV1:
def parse_manifest(
manifest: dict
) -> Union[ManifestV1, ManifestV2, ManifestV3, ManifestV4, ManifestV5,
ManifestV6, ManifestV7, ManifestV8, ManifestV9]:
ManifestV6, ManifestV7, ManifestV8, ManifestV9, ManifestV10]:
"""Parse manifest.json
Args:
Expand Down Expand Up @@ -97,6 +98,8 @@ def parse_manifest(
return ManifestV8(**manifest)
elif dbt_schema_version == ArtifactTypes.MANIFEST_V9.value.dbt_schema_version:
return ManifestV9(**manifest)
elif dbt_schema_version == ArtifactTypes.MANIFEST_V10.value.dbt_schema_version:
return ManifestV10(**manifest)
raise ValueError("Not a soft of manifest.json")


Expand Down Expand Up @@ -171,6 +174,13 @@ def parse_manifest_v9(manifest: dict) -> ManifestV6:
return ManifestV9(**manifest)
raise ValueError("Not a manifest.json v9")

def parse_manifest_v10(manifest: dict) -> ManifestV6:
"""Parse manifest.json ver.10"""
dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
if dbt_schema_version == ArtifactTypes.MANIFEST_V10.value.dbt_schema_version:
return ManifestV10(**manifest)
raise ValueError("Not a manifest.json v10")


#
# run-results
Expand Down
Loading

0 comments on commit cdc9125

Please sign in to comment.