packages feed

moonlight-triangulation-1.4.0.2: ffi/bindings/python/src/moonlight_triangulation/errors.py

from __future__ import annotations

from ._native_generated import _Obstruction


class MoonlightError(RuntimeError):
    def __init__(self, status: int, obstruction: _Obstruction) -> None:
        self.status = status
        self.code = obstruction.code
        self.coordinate_error = obstruction.coordinate_error
        self.input_index = obstruction.input_index
        self.first_index = obstruction.first_index
        self.second_index = obstruction.second_index
        self.first_value = obstruction.first_value
        self.second_value = obstruction.second_value
        self.point = (obstruction.point_x, obstruction.point_y)
        message = bytes(obstruction.message).split(b"\0", 1)[0].decode("utf-8", errors="replace")
        super().__init__(message or f"Moonlight ABI failure {status}:{self.code}")