<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def process(*args, **kwargs):
 """Runs the decorated function in a concurrent process, taking care of the result and error management. Decorated functions will return a concurrent.futures.Future object once called. The timeout parameter will set a maximum execution time for the decorated function. If the execution exceeds the timeout, the process will be stopped and the Future will raise TimeoutError. """

    timeout = kwargs.get('timeout')

    # decorator without parameters
    if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
        return _process_wrapper(args[0], timeout)
    else:
        # decorator with parameters
        if timeout is not None and not isinstance(timeout, (int, float)):
            raise TypeError('Timeout expected to be None or integer or float')

        def decorating_function(function):
            return _process_wrapper(function, timeout)

        return decorating_function