This repository was archived by the owner on May 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 281
/
Copy pathdbt_config_validators.py
65 lines (52 loc) · 1.72 KB
/
dbt_config_validators.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from enum import Enum
from typing import List, Dict, Optional, Any
from pydantic import BaseModel, Field
class ManifestJsonConfig(BaseModel):
class Metadata(BaseModel):
dbt_version: str = Field(..., regex=r"^\d+\.\d+\.\d+([a-zA-Z0-9]+)?$")
project_id: Optional[str]
user_id: Optional[str]
class Nodes(BaseModel):
class Config(BaseModel):
database: Optional[str]
schema_: Optional[str] = Field(..., alias="schema")
tags: List[str]
class Column(BaseModel):
meta: Dict[str, Any]
tags: List[str]
class TestMetadata(BaseModel):
name: str
kwargs: Dict[str, Any]
class DependsOn(BaseModel):
macros: List[str] = []
nodes: List[str] = []
unique_id: str
resource_type: str
name: str
alias: str
database: Optional[str]
schema_: str = Field(..., alias="schema")
columns: Optional[Dict[str, Column]]
meta: Dict[str, Any]
config: Config
tags: List[str]
test_metadata: Optional[TestMetadata]
depends_on: DependsOn
metadata: Metadata
nodes: Dict[str, Nodes]
class RunResultsJsonConfig(BaseModel):
class Metadata(BaseModel):
dbt_version: str = Field(..., regex=r"^\d+\.\d+\.\d+([a-zA-Z0-9]+)?$")
class Results(BaseModel):
class Status(Enum):
success = "success"
error = "error"
skipped = "skipped"
pass_ = "pass"
fail = "fail"
warn = "warn"
runtime_error = "runtime error"
status: Status
unique_id: str = Field("...")
metadata: Metadata
results: List[Results]