Пример #1
0
	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
Пример #2
0
	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
Пример #3
0
	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