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

43 lines
1.2 KiB
Python
Raw Normal View History

2022-03-22 15:13:27 +00:00
from .run import ModelRunner, RunTask
from .printer import print_snapshot_result_line
from dbt.exceptions import InternalException
from dbt.graph import ResourceTypeSelector
from dbt.node_types import NodeType
class SnapshotRunner(ModelRunner):
def describe_node(self):
return "snapshot {}".format(self.get_node_representation())
def print_result_line(self, result):
print_snapshot_result_line(
result,
self.get_node_representation(),
self.node_index,
self.num_nodes)
class SnapshotTask(RunTask):
def raise_on_first_error(self):
return False
def defer_to_manifest(self, adapter, selected_uids):
# snapshots don't defer
return
def get_node_selector(self):
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.Snapshot],
)
def get_runner_type(self, _):
return SnapshotRunner