def parse_long_option ( self, p_argv, p_parameters, p_args ): #---------------------------------------------------------------------- l_long = p_argv.pop(0)[2:] l_long_def = p_parameters.get_long_option(l_long) if not l_long_def: logging.output('Unknow option: --' + l_long) return False l_type = l_long_def.get_type() if l_type == TYPE_BOOL: l_value = not l_long_def.get_default() elif not p_argv: logging.output('Option --' + l_long + ' need an argument.') return False else: l_arg = p_argv.pop(0) l_value = self.__from_string(l_type, l_arg) p_args[l_long_def.get_name()] = l_value return True
def parse_short_options ( self, p_argv, p_parameters, p_args ): #---------------------------------------------------------------------- l_string = p_argv.pop(0)[1:] l_has_arg = False for l_short in l_string: l_short_def = p_parameters.get_short_option(l_short) if not l_short_def: logging.output('Unknow option: -' + l_short) return False l_type = l_short_def.get_type() if l_type == TYPE_BOOL: l_value = not l_short_def.get_default() elif not p_argv: logging.output('Option -' + l_short + ' need an argument.') return False elif l_has_arg: logging.output('Invalid option string: ' + l_string) return False else: l_arg = p_argv.pop(0) l_value = self.__from_string(l_type, l_arg) l_has_arg = True p_args[l_short_def.get_name()] = l_value return True
def parse_argument ( self, p_argv, p_parameters, p_index, p_args ): #---------------------------------------------------------------------- l_arg = p_argv.pop(0) l_arg_def = p_parameters.get_argument(p_index) if not l_arg_def: logging.output('Unexpected argument: ' + l_arg) return False l_name = l_arg_def.get_name() l_value = self.__from_string(l_arg_def.get_type(), l_arg) if p_args.has_key(l_name): if isinstance(p_args[l_name], list): p_args[l_name].append(l_value) else: p_args[l_name] = [p_args[l_name], l_value] else: p_args[l_name] = l_value return True