Skip to content
Snippets Groups Projects
controller.py 36.2 KiB
Newer Older
  • Learn to ignore specific revisions
  •     "non": NonRedeemer.make,
        "dummy": DummyRedeemer.make,
        "double-spend": DoubleSpendRedeemer.make,
        "unpaid": UnpaidRedeemer.make,
        "error": ErrorRedeemer.make,
        "ristretto": RistrettoRedeemer.make,
    
    
    
    @inlineCallbacks
    def bracket(first, last, between):
        """
        Invoke an action between two other actions.
    
        :param first: A no-argument function that may return a Deferred.  It is
            called first.
    
        :param last: A no-argument function that may return a Deferred.  It is
            called last.
    
        :param between: A no-argument function that may return a Deferred.  It is
            called after ``first`` is done and completes before ``last`` is called.
    
        :return Deferred: A ``Deferred`` which fires with the result of
            ``between``.
        """
        yield first()
        try:
            result = yield between()
        except GeneratorExit:
            raise
        except:
            yield last()
    
        else:
            yield last()
            returnValue(result)