Solución

@maiquez·hace 3dTypeScript
solution.tsTypeScript
from contextlib import contextmanager


@contextmanager
def transaction():
    # Context manager que simula una transacción
    state = {"committed": False, "ops": []}
    try:
        yield state
        # Si llega aquí sin excepción, confirma la transacción
        state["committed"] = True
    except ValueError:
        # Si hay error, committed permanece False
        pass


def transactional(operations: list) -> dict:
    # Usa el context manager 'transaction' y procesa cada operación
    with transaction() as state:
        for op in operations:
            # Si op es None, lanza ValueError; si no, añádela a state["ops"]
            if op is None:
                raise ValueError("Value Error")
            else:
                state["ops"].append(op)
    return state
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.