pythonwhat/tasks.py
def process_task(f):
    """Decorator to (optionally) run function in a process."""
    sig = inspect.signature(f)

    @wraps(f)
    def wrapper(*args, **kwargs):
        # get bound arguments for call
        ba = sig.bind_partial(*args, **kwargs)
        # when process is specified, remove from args and use to execute
        process = ba.arguments.get("process")
        if process:
            ba.arguments["process"] = None
            # partial function since shell argument may have been left
            # unspecified, as it will be passed when the process executes
            pf = partial(wrapper, *ba.args, **ba.kwargs)
            return process.executeTask(pf)
        # otherwise, run original function
        return f(*ba.args, **ba.kwargs)

    return wrapper
def process_task(f):
    """Decorator to (optionally) run function in a process."""
    sig = inspect.signature(f)

    @wraps(f)
    def wrapper(*args, **kwargs):
        # get bound arguments for call
        ba = sig.bind_partial(*args, **kwargs)
        # when process is specified, remove from args and use to execute
        process = ba.arguments.get("process")
        if process:
            ba.arguments["process"] = None
            # partial function since shell argument may have been left
            # unspecified, as it will be passed when the process executes
            pf = partial(wrapper, *ba.args, **ba.kwargs)
            return process.executeTask(pf)
        # otherwise, run original function
        return f(*ba.args, **ba.kwargs)

    return wrapper
def process_task ( f ) : sig = inspect . signature ( f ) @ wraps ( f ) def wrapper ( * args , * * kwargs ) : # get bound arguments for call ba = sig . bind_partial ( * args , * * kwargs ) # when process is specified, remove from args and use to execute process = ba . arguments . get ( "process" ) if process : ba . arguments [ "process" ] = None # partial function since shell argument may have been left # unspecified, as it will be passed when the process executes pf = partial ( wrapper , * ba . args , * * ba . kwargs ) return process . executeTask ( pf ) # otherwise, run original function return f ( * ba . args , * * ba . kwargs ) return wrapper
Decorator to (optionally) run function in a process.
Decorator to ( optionally ) run function in a process .