|
10 | 10 | from sqlglot.optimizer.normalize_identifiers import normalize_identifiers |
11 | 11 |
|
12 | 12 | from sqlmesh.core import dialect as d |
13 | | -from sqlmesh.core.dialect import normalize_model_name |
| 13 | +from sqlmesh.core.dialect import normalize_model_name, extract_audit |
14 | 14 | from sqlmesh.core.model.common import ( |
15 | 15 | bool_validator, |
16 | 16 | default_catalog_validator, |
@@ -85,32 +85,12 @@ class ModelMeta(_Node): |
85 | 85 |
|
86 | 86 | @field_validator("audits", mode="before") |
87 | 87 | def _audits_validator(cls, v: t.Any) -> t.Any: |
88 | | - def extract(v: exp.Expression) -> t.Tuple[str, t.Dict[str, exp.Expression]]: |
89 | | - kwargs = {} |
90 | | - |
91 | | - if isinstance(v, exp.Anonymous): |
92 | | - func = v.name |
93 | | - args = v.expressions |
94 | | - elif isinstance(v, exp.Func): |
95 | | - func = v.sql_name() |
96 | | - args = list(v.args.values()) |
97 | | - else: |
98 | | - return v.name.lower(), {} |
99 | | - |
100 | | - for arg in args: |
101 | | - if not isinstance(arg, (exp.PropertyEQ, exp.EQ)): |
102 | | - raise ConfigError( |
103 | | - f"Function '{func}' must be called with key-value arguments like {func}(arg := value)." |
104 | | - ) |
105 | | - kwargs[arg.left.name.lower()] = arg.right |
106 | | - return func.lower(), kwargs |
107 | | - |
108 | 88 | if isinstance(v, (exp.Tuple, exp.Array)): |
109 | | - return [extract(i) for i in v.expressions] |
| 89 | + return [extract_audit(i) for i in v.expressions] |
110 | 90 | if isinstance(v, exp.Paren): |
111 | | - return [extract(v.this)] |
| 91 | + return [extract_audit(v.this)] |
112 | 92 | if isinstance(v, exp.Expression): |
113 | | - return [extract(v)] |
| 93 | + return [extract_audit(v)] |
114 | 94 | if isinstance(v, list): |
115 | 95 | audits = [] |
116 | 96 |
|
|
0 commit comments