builtup4/bu4/linking/constructs/lexception.py

29 lines
978 B
Python

# Copyright (c) PARRRATE T&V 2021. All rights reserved.
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.linkable.evaluation.elvtype import elvtype
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: elvtype) -> 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()}»'