def METHOD_NAME(*args, capture=False, **kwargs):
    if usage["Runnable"]:
        command_and_args = [executable]
        command_and_args.extend(scope)
        # FIXME: how to proceed with non-parameter arguments?
        # for arg in args:
        #     command_and_args.append("--" + arg)
        for key, value in kwargs.items():
            # get(key, default...) won't work, as we cannot diff not exists and None
            if key in defaults and value == defaults[key]:
                continue
            if not isinstance(value, str):
                value = json.dumps(value)
            command_and_args.append("--%s=%s" % (arguments.get(key, key), value))
        logger.debug('Executing: %s', ' '.join(command_and_args))
        parameters = {
            'args': command_and_args,
            'universal_newlines': True,
            'encoding': "utf-8",
            'errors': "ignore",
            'shell': False,
        }
        if capture:
            output = subprocess.check_output(
                **parameters,
            )
            if output:
                output = output.strip()
            return output
        else:
            return subprocess.check_call(
                **parameters,
                bufsize=1,
                stderr=subprocess.STDOUT,
            )