# Copyright (c) PARRRATE T&V 2021. All rights reserved. from typing import TypeVar from bu4.transform.states.transformfinished import TransformFinished from bu4.transform.states.transformstate import TransformState __all__ = ('transform',) T = TypeVar('T') def transform(state: TransformState[T]) -> T: while True: if isinstance(state, TransformFinished): return state.transformed state = state.next()