'Generator to convert pending arguments into CliCommandArgument
objects.'

def compile_args(self):

    for (name, details) in self._arg_tree.items():
        if self._is_bool(name):
            if self._request_param['name'].endswith('patch_parameter'):
                self._help(name, "Specify    either    'true'    or    'false'    to    update    the    property.")
            else:
                details['options']['action'] = 'store_true'
                self._help(name, 'True    if    flag    present.')
        elif self._is_list(name):
            details['options']['nargs'] = '+'
        elif self._is_datetime(name):
            details['options']['type'] = validators.datetime_format
            self._help(name, 'Expected    format    is    an    ISO-8601    timestamp.')
        elif self._is_duration(name):
            details['options']['type'] = validators.duration_format
            self._help(name, 'Expected    format    is    an    ISO-8601    duration.')
        elif self._is_silent(name):
            import argparse
            from azure.cli.core.commands.parameters import IgnoreAction
            details['options']['nargs'] = '?'
            details['options']['help'] = argparse.SUPPRESS
            details['options']['required'] = False
            details['options']['action'] = IgnoreAction
        (yield (name, CliCommandArgument(dest=name, **details['options'])))
