Skip to content

xnano.core.exceptions

xnano.core.exceptions

xnano.core.exceptions


Errors raised by runtimes, hooks, fields, and optional components.

Classes:

Exit

Bases: BaseException

Request that the active runtime stop.

HookError

HookError(hook_name: str, cause: BaseException)

Bases: RuntimeError

Report a hook failure while preserving its original cause.

Source code in xnano/core/exceptions.py
def __init__(self, hook_name: str, cause: BaseException) -> None:
    self.hook_name = hook_name
    self.cause = cause
    super().__init__(f"Hook {hook_name!r} raised: {cause!r}")
    self.__cause__ = cause

FieldValidationError

FieldValidationError(
    field_name: str,
    validation_error: "PydanticValidationError",
)

Bases: ValueError

Report strict validation failure for a grid field.

Source code in xnano/core/exceptions.py
def __init__(
    self,
    field_name: str,
    validation_error: "PydanticValidationError",
) -> None:
    super().__init__(
        f"Field {field_name!r} failed validation: "
        f"{validation_error.errors()}"
    )

TerminalNotActiveError

TerminalNotActiveError()

Bases: RuntimeError

Report an operation that requires an active live runtime.

Source code in xnano/core/exceptions.py
def __init__(self) -> None:
    super().__init__("This operation requires an active live runtime.")

ExtraNotInstalledError

ExtraNotInstalledError(extra: str)

Bases: RuntimeError

Report a missing optional dependency.

Source code in xnano/core/exceptions.py
def __init__(self, extra: str) -> None:
    if extra == "images":
        message = (
            "Image rendering requires Pillow. Install `xnano[images]` "
            "or `pillow`."
        )
    elif extra == "requests":
        message = "HTTP request hooks use the standard library."
    else:
        raise ValueError(f"Unknown extra: {extra}")
    super().__init__(message)