From 79b168374ba04a3af26463b0dbbc8dd66cb86591 Mon Sep 17 00:00:00 2001 From: Adolfo Rodriguez Date: Tue, 12 Nov 2024 07:53:02 -0800 Subject: [PATCH] Add "target_path" configuration to the dbt templater (#6423) Co-authored-by: Danny Jones <51742311+WittierDinosaur@users.noreply.github.com> Co-authored-by: Greg Finley --- .../sqlfluff_templater_dbt/templater.py | 9 +++++++++ plugins/sqlfluff-templater-dbt/test/templater_test.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/plugins/sqlfluff-templater-dbt/sqlfluff_templater_dbt/templater.py b/plugins/sqlfluff-templater-dbt/sqlfluff_templater_dbt/templater.py index a59fbaeb4..6e9a6e294 100644 --- a/plugins/sqlfluff-templater-dbt/sqlfluff_templater_dbt/templater.py +++ b/plugins/sqlfluff-templater-dbt/sqlfluff_templater_dbt/templater.py @@ -56,6 +56,7 @@ class DbtConfigArgs: profiles_dir: Optional[str] = None profile: Optional[str] = None target: Optional[str] = None + target_path: Optional[str] = None threads: int = 1 single_threaded: bool = False # dict in 1.5.x onwards, json string before. @@ -282,6 +283,7 @@ class DbtTemplater(JinjaTemplater): project_dir=self.project_dir, profiles_dir=self.profiles_dir, profile=self._get_profile(), + target_path=self._get_target_path(), vars=cli_vars, threads=1, ), @@ -293,6 +295,7 @@ class DbtTemplater(JinjaTemplater): profiles_dir=self.profiles_dir, profile=self._get_profile(), target=self._get_target(), + target_path=self._get_target_path(), vars=cli_vars, threads=1, ) @@ -435,6 +438,12 @@ class DbtTemplater(JinjaTemplater): (self.templater_selector, self.name, "target") ) + def _get_target_path(self): + """Get a dbt target path from the configuration.""" + return self.sqlfluff_config.get_section( + (self.templater_selector, self.name, "target_path") + ) + def _get_cli_vars(self) -> dict: cli_vars = self.sqlfluff_config.get_section( (self.templater_selector, self.name, "context") diff --git a/plugins/sqlfluff-templater-dbt/test/templater_test.py b/plugins/sqlfluff-templater-dbt/test/templater_test.py index 1568f3c34..463ac6172 100644 --- a/plugins/sqlfluff-templater-dbt/test/templater_test.py +++ b/plugins/sqlfluff-templater-dbt/test/templater_test.py @@ -48,6 +48,7 @@ def test__templater_dbt_profiles_dir_expanded(dbt_templater): "profiles_dir": "~/.dbt", "profile": "default", "target": "dev", + "target_path": "target", } }, }, @@ -59,6 +60,7 @@ def test__templater_dbt_profiles_dir_expanded(dbt_templater): ) assert dbt_templater._get_profile() == "default" assert dbt_templater._get_target() == "dev" + assert dbt_templater._get_target_path() == "target" @pytest.mark.parametrize(