Executes the actual method with args, kwargs provided.

        This step is broken out of the process_requests flow to
        allow for ease of overriding the call in your subclass of this class.

        In some cases it's preferable to make callee aware of the request_id
        and easily overridable caller method allows for that.

        :param method: A callable registered as JSON-RPC method
        :type method: callable
        :param args: A list of none or more positional args to pass to the method call
        :type args: list
        :param kargs: A dict of none or more named args to pass to the method call
        :type kargs: dict
        :param request_id: None or non-None value of the `id` attribute in JSON-RPC request
        :param context:
            A dict with additional parameters passed to handle_request_string and process_requests
            Allows wrapping code to pass additional parameters deep into parsing stack, override this
            method and fold the parameters as needed into tha method call.
            Imagine capturing authentication / permissions data from headers, converting them into
            actionable / flag objects and putting them into **context.
            Then override this method and fold the arguments into the call
            (which may be a decorated function, where decorator unfolds the params and calls the actual method)
            By default, context is not passed to method call below.
        :return: The value method returns

def process_method(self, method, args, kwargs, request_id=None, **context):
        """
        Executes the actual method with args, kwargs provided.

        This step is broken out of the process_requests flow to
        allow for ease of overriding the call in your subclass of this class.

        In some cases it's preferable to make callee aware of the request_id
        and easily overridable caller method allows for that.

        :param method: A callable registered as JSON-RPC method
        :type method: callable
        :param args: A list of none or more positional args to pass to the method call
        :type args: list
        :param kargs: A dict of none or more named args to pass to the method call
        :type kargs: dict
        :param request_id: None or non-None value of the `id` attribute in JSON-RPC request
        :param context:
            A dict with additional parameters passed to handle_request_string and process_requests
            Allows wrapping code to pass additional parameters deep into parsing stack, override this
            method and fold the parameters as needed into tha method call.
            Imagine capturing authentication / permissions data from headers, converting them into
            actionable / flag objects and putting them into **context.
            Then override this method and fold the arguments into the call
            (which may be a decorated function, where decorator unfolds the params and calls the actual method)
            By default, context is not passed to method call below.
        :return: The value method returns
        """
        return method(*([] if args is None else args), **({} if kwargs is None else kwargs))