This documentation is for an older version (1.4.7) of Dagster. You can view the version of this page from our latest release below.
import warnings
from abc import ABC
from typing import Any, Mapping, Optional, Sequence
from dagster import (
DagsterInvariantViolationError,
Failure,
MetadataValue,
_check as check,
)
[docs]class DagsterDbtCliUnexpectedOutputError(DagsterDbtError):
"""Represents an error when parsing the output of a dbt CLI command."""
invalid_line_nos: Sequence[int]
def __init__(self, invalid_line_nos: Sequence[int]):
check.sequence_param(invalid_line_nos, "invalid_line_nos", int)
line_nos_str = ", ".join(map(str, invalid_line_nos))
description = f"dbt CLI emitted unexpected output on lines {line_nos_str}"
metadata = {
"Invalid CLI Output Line Numbers": MetadataValue.json({"line_nos": invalid_line_nos})
}
super().__init__(description, metadata=metadata)
self.invalid_line_nos = invalid_line_nos
[docs]class DagsterDbtCliRuntimeError(DagsterDbtError, ABC):
"""Represents an error while executing a dbt CLI command."""
def __init__(
self,
description: str,
logs: Optional[Sequence[Mapping[str, Any]]] = None,
raw_output: Optional[str] = None,
messages: Optional[Sequence[str]] = None,
):
if logs is not None:
warnings.warn(
"`logs` is a deprecated argument to DagsterDbtCliRuntimeError and will be discarded"
)
if raw_output is not None:
warnings.warn(
"`raw_output` is a deprecated argument to DagsterDbtCliRuntimeError and will be"
" discarded"
)
metadata = {"Parsed CLI Messages": "\n".join(messages or [])}
super().__init__(description, metadata=metadata)
[docs]class DagsterDbtCliHandledRuntimeError(DagsterDbtCliRuntimeError):
"""Represents a model error reported by the dbt CLI at runtime (return code 1)."""
def __init__(
self,
logs: Optional[Sequence[Mapping[str, Any]]] = None,
raw_output: Optional[str] = None,
messages: Optional[Sequence[str]] = None,
):
super().__init__("Handled error in the dbt CLI (return code 1)", logs, raw_output, messages)
[docs]class DagsterDbtCliFatalRuntimeError(DagsterDbtCliRuntimeError):
"""Represents a fatal error in the dbt CLI (return code 2)."""
def __init__(
self,
logs: Optional[Sequence[Mapping[str, Any]]] = None,
raw_output: Optional[str] = None,
messages: Optional[Sequence[str]] = None,
):
super().__init__(
"Fatal error in the dbt CLI (return code 2): " + " ".join(messages or []),
logs,
raw_output,
messages,
)
[docs]class DagsterDbtCliOutputsNotFoundError(DagsterDbtError):
"""Represents a problem in finding the ``target/run_results.json`` artifact when executing a dbt
CLI command.
For more details on ``target/run_results.json``, see
https://docs.getdbt.com/reference/dbt-artifacts#run_resultsjson.
"""
def __init__(self, path: str):
super().__init__(f"Expected to find file at path {path}")
class DagsterDbtCloudJobInvariantViolationError(DagsterDbtError, DagsterInvariantViolationError):
"""Represents an error when a dbt Cloud job is not supported by the ``dagster-dbt`` library."""