mirror of
https://github.com/dbt-labs/dbt-core
synced 2025-12-21 07:41:27 +00:00
Compare commits
60 Commits
enable-pos
...
7444/spike
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8b1bc9745 | ||
|
|
e38e0c8813 | ||
|
|
7471b2f349 | ||
|
|
a0611a47fd | ||
|
|
f12e9b6e50 | ||
|
|
f705d26759 | ||
|
|
6369410694 | ||
|
|
552b623952 | ||
|
|
b81157fdac | ||
|
|
3fc17fe059 | ||
|
|
97f1fc9385 | ||
|
|
1589c754c6 | ||
|
|
a256083a36 | ||
|
|
fce5c070ca | ||
|
|
2aad937740 | ||
|
|
325415478c | ||
|
|
acfae95cf6 | ||
|
|
0425c3bcf6 | ||
|
|
4fdfb2b475 | ||
|
|
f286af2fdb | ||
|
|
6b01773ca3 | ||
|
|
2e938e3317 | ||
|
|
dac9fa8ce8 | ||
|
|
bac92eadf2 | ||
|
|
41364be1d8 | ||
|
|
719ab9a52b | ||
|
|
34b813a93b | ||
|
|
9e2284c1dd | ||
|
|
e9d5a4c9aa | ||
|
|
3f54bb0ea6 | ||
|
|
c4db8c0857 | ||
|
|
a5429cc389 | ||
|
|
fcd545b3b6 | ||
|
|
3054aed817 | ||
|
|
942f7120eb | ||
|
|
a43327df80 | ||
|
|
5bd828e396 | ||
|
|
f7202ae894 | ||
|
|
0dd963a34a | ||
|
|
22cb844228 | ||
|
|
fb12f7cd0b | ||
|
|
c3c2940568 | ||
|
|
17542fb587 | ||
|
|
c96c2a2b1d | ||
|
|
bd652a7cba | ||
|
|
babaf6a7d5 | ||
|
|
22d6e851e3 | ||
|
|
f8a7bfdf8e | ||
|
|
6a9c06dd66 | ||
|
|
800934946e | ||
|
|
86045ca67a | ||
|
|
ede647ac55 | ||
|
|
8dcc2b5cac | ||
|
|
6bb6e5767b | ||
|
|
77d2a5ba00 | ||
|
|
9add2a61f2 | ||
|
|
8ba476abe3 | ||
|
|
7ffadafe10 | ||
|
|
6d511ebe06 | ||
|
|
0daea9fb5a |
@@ -568,11 +568,11 @@ class MacroMethods:
|
|||||||
|
|
||||||
return candidates.last()
|
return candidates.last()
|
||||||
|
|
||||||
def find_generate_macro_by_name(
|
def find_default_generate_macro_by_name(
|
||||||
self, component: str, root_project_name: str
|
self, component: str, root_project_name: str
|
||||||
) -> Optional[Macro]:
|
) -> Optional[Macro]:
|
||||||
"""
|
"""
|
||||||
The `generate_X_name` macros are similar to regular ones, but ignore
|
The default `generate_X_name` macros are similar to regular ones, and ignore
|
||||||
imported packages.
|
imported packages.
|
||||||
- if there is a `generate_{component}_name` macro in the root
|
- if there is a `generate_{component}_name` macro in the root
|
||||||
project, return it
|
project, return it
|
||||||
@@ -591,6 +591,21 @@ class MacroMethods:
|
|||||||
)
|
)
|
||||||
return candidates.last()
|
return candidates.last()
|
||||||
|
|
||||||
|
def find_package_generate_macros_by_name(
|
||||||
|
self, component: str, root_project_name: str
|
||||||
|
) -> List[Macro]:
|
||||||
|
"""
|
||||||
|
Return any `generate_X_name` macros defined in imported packages
|
||||||
|
"""
|
||||||
|
|
||||||
|
def filter(candidate: MacroCandidate) -> bool:
|
||||||
|
return candidate.locality == Locality.Imported
|
||||||
|
|
||||||
|
candidates: CandidateList = self._find_macros_by_name(
|
||||||
|
name=f"generate_{component}_name", root_project_name=root_project_name, filter=filter
|
||||||
|
)
|
||||||
|
return [candidate.macro for candidate in candidates]
|
||||||
|
|
||||||
def _find_macros_by_name(
|
def _find_macros_by_name(
|
||||||
self,
|
self,
|
||||||
name: str,
|
name: str,
|
||||||
|
|||||||
@@ -71,20 +71,43 @@ class Parser(BaseParser[FinalValue], Generic[FinalValue]):
|
|||||||
|
|
||||||
class RelationUpdate:
|
class RelationUpdate:
|
||||||
def __init__(self, config: RuntimeConfig, manifest: Manifest, component: str) -> None:
|
def __init__(self, config: RuntimeConfig, manifest: Manifest, component: str) -> None:
|
||||||
macro = manifest.find_generate_macro_by_name(
|
default_macro = manifest.find_default_generate_macro_by_name(
|
||||||
component=component,
|
component=component,
|
||||||
root_project_name=config.project_name,
|
root_project_name=config.project_name,
|
||||||
)
|
)
|
||||||
if macro is None:
|
|
||||||
|
package_macros = manifest.find_package_generate_macros_by_name(
|
||||||
|
component=component,
|
||||||
|
root_project_name=config.project_name,
|
||||||
|
)
|
||||||
|
|
||||||
|
if default_macro is None:
|
||||||
raise DbtInternalError(f"No macro with name generate_{component}_name found")
|
raise DbtInternalError(f"No macro with name generate_{component}_name found")
|
||||||
|
|
||||||
root_context = generate_generate_name_macro_context(macro, config, manifest)
|
default_macro_context = generate_generate_name_macro_context(
|
||||||
self.updater = MacroGenerator(macro, root_context)
|
default_macro, config, manifest
|
||||||
|
)
|
||||||
|
self.default_updater = MacroGenerator(default_macro, default_macro_context)
|
||||||
|
|
||||||
|
package_updaters = {}
|
||||||
|
for package_macro in package_macros:
|
||||||
|
imported_macro_context = generate_generate_name_macro_context(
|
||||||
|
package_macro, config, manifest
|
||||||
|
)
|
||||||
|
package_updaters[package_macro.package_name] = MacroGenerator(
|
||||||
|
package_macro, imported_macro_context
|
||||||
|
)
|
||||||
|
|
||||||
|
self.package_updaters = package_updaters
|
||||||
self.component = component
|
self.component = component
|
||||||
|
|
||||||
def __call__(self, parsed_node: Any, config_dict: Dict[str, Any]) -> None:
|
def __call__(self, parsed_node: Any, config_dict: Dict[str, Any]) -> None:
|
||||||
override = config_dict.get(self.component)
|
override = config_dict.get(self.component)
|
||||||
new_value = self.updater(override, parsed_node)
|
if parsed_node.package_name in self.package_updaters:
|
||||||
|
new_value = self.package_updaters[parsed_node.package_name](override, parsed_node)
|
||||||
|
else:
|
||||||
|
new_value = self.default_updater(override, parsed_node)
|
||||||
|
|
||||||
if isinstance(new_value, str):
|
if isinstance(new_value, str):
|
||||||
new_value = new_value.strip()
|
new_value = new_value.strip()
|
||||||
setattr(parsed_node, self.component, new_value)
|
setattr(parsed_node, self.component, new_value)
|
||||||
|
|||||||
Reference in New Issue
Block a user