dbt-selly/dbt-env/lib/python3.8/site-packages/dbt/task/compile.py

57 lines
1.6 KiB
Python

import threading
from .runnable import GraphRunnableTask
from .base import BaseRunner
from dbt.contracts.results import RunStatus, RunResult
from dbt.exceptions import InternalException
from dbt.graph import ResourceTypeSelector
from dbt.logger import print_timestamped_line
from dbt.node_types import NodeType
class CompileRunner(BaseRunner):
def before_execute(self):
pass
def after_execute(self, result):
pass
def execute(self, compiled_node, manifest):
return RunResult(
node=compiled_node,
status=RunStatus.Success,
timing=[],
thread_id=threading.current_thread().name,
execution_time=0,
message=None,
adapter_response={},
failures=None
)
def compile(self, manifest):
compiler = self.adapter.get_compiler()
return compiler.compile_node(self.node, manifest, {})
class CompileTask(GraphRunnableTask):
def raise_on_first_error(self):
return True
def get_node_selector(self) -> ResourceTypeSelector:
if self.manifest is None or self.graph is None:
raise InternalException(
'manifest and graph must be set to get perform node selection'
)
return ResourceTypeSelector(
graph=self.graph,
manifest=self.manifest,
previous_state=self.previous_state,
resource_types=NodeType.executable(),
)
def get_runner_type(self, _):
return CompileRunner
def task_end_messages(self, results):
print_timestamped_line('Done.')