From a8aaf0d7681203a1df235357976f11b3e8739ff0 Mon Sep 17 00:00:00 2001 From: Jacob Beck Date: Thu, 16 Apr 2020 12:59:26 -0600 Subject: [PATCH] Fix some mypy issues Split up hooks to expose the hook dict Remove some odd imports --- core/dbt/contracts/connection.py | 1 - core/dbt/hooks.py | 8 -------- core/dbt/parser/base.py | 10 +++++++--- core/dbt/task/run.py | 9 ++++++++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/core/dbt/contracts/connection.py b/core/dbt/contracts/connection.py index afc9b57ed24..eba8fe64b30 100644 --- a/core/dbt/contracts/connection.py +++ b/core/dbt/contracts/connection.py @@ -3,7 +3,6 @@ from dataclasses import dataclass, field from typing import ( Any, ClassVar, Dict, Tuple, Iterable, Optional, NewType, List, Callable, - TypeVar ) from typing_extensions import Protocol diff --git a/core/dbt/hooks.py b/core/dbt/hooks.py index a5d47f01f67..26403226e3b 100644 --- a/core/dbt/hooks.py +++ b/core/dbt/hooks.py @@ -1,8 +1,6 @@ from hologram.helpers import StrEnum import json -from dbt.contracts.graph.parsed import Hook - from typing import Union, Dict, Any @@ -21,9 +19,3 @@ def get_hook_dict(source: Union[str, Dict[str, Any]]) -> Dict[str, Any]: return json.loads(source) except ValueError: return {'sql': source} - - -def get_hook(source, index): - hook_dict = get_hook_dict(source) - hook_dict.setdefault('index', index) - return Hook.from_dict(hook_dict) diff --git a/core/dbt/parser/base.py b/core/dbt/parser/base.py index e24a0c30d73..03ed3a8a1ab 100644 --- a/core/dbt/parser/base.py +++ b/core/dbt/parser/base.py @@ -162,13 +162,17 @@ def default_schema(self): def default_database(self): return self.root_project.credentials.database + def get_fqn_prefix(self, path: str) -> List[str]: + no_ext = os.path.splitext(path)[0] + fqn = [self.project.project_name] + fqn.extend(dbt.utils.split_path(no_ext)[:-1]) + return fqn + def get_fqn(self, path: str, name: str) -> List[str]: """Get the FQN for the node. This impacts node selection and config application. """ - no_ext = os.path.splitext(path)[0] - fqn = [self.project.project_name] - fqn.extend(dbt.utils.split_path(no_ext)[:-1]) + fqn = self.get_fqn_prefix(path) fqn.append(name) return fqn diff --git a/core/dbt/task/run.py b/core/dbt/task/run.py index 5e633f6194d..40ad51585a3 100644 --- a/core/dbt/task/run.py +++ b/core/dbt/task/run.py @@ -16,7 +16,7 @@ import dbt.exceptions import dbt.flags -from dbt.hooks import get_hook +from dbt.hooks import get_hook_dict from dbt.ui.printer import \ print_hook_start_line, \ print_hook_end_line, \ @@ -26,6 +26,7 @@ from dbt.compilation import compile_node from dbt.contracts.graph.compiled import CompileResultNode +from dbt.contracts.graph.model_config import Hook from dbt.contracts.graph.parsed import ParsedHookNode from dbt.task.compile import CompileTask @@ -76,6 +77,12 @@ def get_hooks_by_tags( return matched_nodes +def get_hook(source, index): + hook_dict = get_hook_dict(source) + hook_dict.setdefault('index', index) + return Hook.from_dict(hook_dict) + + class RunTask(CompileTask): def __init__(self, args, config): super().__init__(args, config)