Esempio n. 1
0
def define(no_args=NO_ARGS,
           cls=Chain,
           binds=False,
           takes_result=False,
           provides=None):
    """
    Defines a new chain
    """
    def decorator(func):
        chain = cls(func,
                    binds=binds,
                    takes_result=takes_result,
                    provides=provides)
        _chains.append(chain)

        def wrapper(*args, **kwargs):
            # Use __traceback_hide__ which is used by a few libraries
            # to hide internal frames. Django supports this.
            __traceback_hide__ = True  # NOQA
            return chain(*args, **kwargs)

        wrapper._chain = chain
        functools.update_wrapper(wrapper, func)
        return wrapper

    return no_args_decorator(decorator, no_args)
Esempio n. 2
0
def debounced(no_args=NO_ARGS, hashable_args_cb=None):
    def decorator(func):
        def wrapper(*args, **kwargs):
            if debouncer.middleware_enabled:
                debouncer.debounce(
                    func,
                    args,
                    kwargs,
                    hashable_args_cb=hashable_args_cb
                )
            else:
                func(*args, **kwargs)

        functools.update_wrapper(wrapper, func)
        return wrapper

    return no_args_decorator(decorator, no_args)
Esempio n. 3
0
def define(no_args=NO_ARGS, cls=Chain, binds=False, takes_result=False, provides=None):
    """
    Defines a new chain
    """

    def decorator(func):
        chain = cls(func, binds=binds, takes_result=takes_result, provides=provides)
        _chains.append(chain)

        def wrapper(*args, **kwargs):
            # Use __traceback_hide__ which is used by a few libraries
            # to hide internal frames. Django supports this.
            __traceback_hide__ = True # NOQA
            return chain(*args, **kwargs)

        wrapper._chain = chain
        functools.update_wrapper(wrapper, func)
        return wrapper

    return no_args_decorator(decorator, no_args)