# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.av.envtype import envtype from bu4.evaluation.constructs.eexception import EException from bu4.evaluation.constructs.evaluable import Evaluable from bu4.indexing.constructs.iexception import IException from bu4.indexing.constructs.indexed import Indexed from bu4.linking.constructs.linked import Linked from bu4.transform.states.transformfinished import TransformFinished from bu4.transform.states.transformstate import TransformState __all__ = ('LException',) class LException(Linked): def __init__(self, name: bytes): self.name = name self.future = set() self.multifuture = set() def attach(self, env: envtype) -> Evaluable: return EException(self.name) def index(self, promise: list[bytes]) -> TransformState[Indexed]: return TransformFinished(IException(self.name)) def __str__(self): return f'«{self.name.decode()}»'