Skip to content

Commit 3384035

Browse files
committed
PR feedback: simplify model builtin global
1 parent 74cf391 commit 3384035

File tree

3 files changed

+8
-21
lines changed

3 files changed

+8
-21
lines changed

sqlmesh/dbt/basemodel.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
DbtConfig,
2323
Dependencies,
2424
GeneralConfig,
25+
RAW_CODE_KEY,
2526
SqlStr,
2627
sql_str_validator,
2728
)
2829
from sqlmesh.dbt.relation import Policy, RelationType
2930
from sqlmesh.dbt.test import TestConfig
30-
from sqlmesh.dbt.util import DBT_VERSION
3131
from sqlmesh.utils import AttributeDict
3232
from sqlmesh.utils.errors import ConfigError
3333
from sqlmesh.utils.pydantic import field_validator
@@ -385,11 +385,9 @@ def _model_jinja_context(
385385
filter(lambda kv: kv[0] in dependencies.model_attrs.attrs, attributes.items())
386386
)
387387

388-
raw_code_key = "raw_code" if DBT_VERSION >= (1, 3, 0) else "raw_sql" # type: ignore
389-
390388
# We exclude the raw SQL code to reduce the payload size. It's still accessible through
391389
# the JinjaQuery instance stored in the resulting SQLMesh model's `query` field.
392-
model_node.pop(raw_code_key, None)
390+
model_node.pop(RAW_CODE_KEY, None)
393391
else:
394392
model_node = AttributeDict({})
395393

sqlmesh/dbt/builtin.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from sqlmesh.core.engine_adapter import EngineAdapter
1919
from sqlmesh.core.snapshot.definition import DeployabilityIndex
2020
from sqlmesh.dbt.adapter import BaseAdapter, ParsetimeAdapter, RuntimeAdapter
21+
from sqlmesh.dbt.common import RAW_CODE_KEY
2122
from sqlmesh.dbt.relation import Policy
2223
from sqlmesh.dbt.target import TARGET_TYPE_TO_CONFIG_CLASS
2324
from sqlmesh.dbt.util import DBT_VERSION
@@ -308,21 +309,6 @@ def source(package: str, name: str) -> t.Optional[BaseRelation]:
308309
return source
309310

310311

311-
def generate_model(model: AttributeDict, raw_code: str) -> Model:
312-
class Model:
313-
def __init__(self, model: AttributeDict) -> None:
314-
self._model = model
315-
self._raw_code_key = "raw_code" if DBT_VERSION >= (1, 3, 0) else "raw_sql" # type: ignore
316-
317-
def __getattr__(self, key: str) -> t.Any:
318-
if key == self._raw_code_key:
319-
return raw_code
320-
321-
return getattr(self._model, key)
322-
323-
return Model(model)
324-
325-
326312
def return_val(val: t.Any) -> None:
327313
raise MacroReturnVal(val)
328314

@@ -499,7 +485,8 @@ def create_builtin_globals(
499485
)
500486

501487
if (model := jinja_globals.pop("model", None)) is not None:
502-
builtin_globals["model"] = generate_model(model, jinja_globals.pop("model", ""))
488+
raw_code = jinja_globals.pop("raw_code", "")
489+
builtin_globals["model"] = AttributeDict({**model, RAW_CODE_KEY: raw_code})
503490

504491
if engine_adapter is not None:
505492
builtin_globals["flags"] = Flags(which="run")

sqlmesh/dbt/common.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,20 @@
88
from ruamel.yaml.constructor import DuplicateKeyError
99
from sqlglot.helper import ensure_list
1010

11+
from sqlmesh.dbt.util import DBT_VERSION
1112
from sqlmesh.core.config.base import BaseConfig, UpdateStrategy
13+
from sqlmesh.core.config.common import DBT_PROJECT_FILENAME
1214
from sqlmesh.utils import AttributeDict
1315
from sqlmesh.utils.conversions import ensure_bool, try_str_to_bool
1416
from sqlmesh.utils.errors import ConfigError
1517
from sqlmesh.utils.jinja import MacroReference
1618
from sqlmesh.utils.pydantic import PydanticModel, field_validator
1719
from sqlmesh.utils.yaml import load
18-
from sqlmesh.core.config.common import DBT_PROJECT_FILENAME
1920

2021
T = t.TypeVar("T", bound="GeneralConfig")
2122

2223
PROJECT_FILENAME = DBT_PROJECT_FILENAME
24+
RAW_CODE_KEY = "raw_code" if DBT_VERSION >= (1, 3, 0) else "raw_sql" # type: ignore
2325

2426
JINJA_ONLY = {
2527
"adapter",

0 commit comments

Comments
 (0)