Beispiel #1
0
 def take_action(self, action, dest, opt, value, values, parser):
     actup = self._addactions.get(action)
     if actup:
         actup[0](self, dest, opt, value, values, parser, actup[1],
                  *actup[2:])
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #2
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'extend':
         split_value = value.split(',')
         ensure_value(qconfig, dest, []).extend(split_value)
     else:
         Option.take_action(
             self, action, dest, opt, value, qconfig, parser)
Beispiel #3
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         lvalue = value.split(",")
         values.ensure_value(dest, []).extend(lvalue)
     else:
         Option.take_action(
             self, action, dest, opt, value, values, parser)
Beispiel #4
0
	def take_action(self, action, dest, opt, value, values, parser):

		if action == "pubsub":

			# read the subscriber and publisher arguments
			value += " "
			for arg in parser.rargs:
				if arg[:2] == "--" and len(arg) > 2: break
				if arg[:1] == "-" and len(arg) > 1: break
				value += arg + " "
			subpubArray = [ x.strip() for x in value.split(",") if x.strip() ] 

			# verify that argument meets requirements
			if len(subpubArray) == 2:
				values.ensure_value(dest, []).append({"name": subpubArray[0], "type": subpubArray[1]})
			else:
				if opt == '-s': exitWithError(ERROR.SUBSCRIBER_MISSING, len(subpubArray))
				if opt == '-p': exitWithError(ERROR.PUBLISHER_MISING, len(subpubArray))

		elif action == "strspaces":

			# read the subscriber and publisher arguments
			for arg in parser.rargs:
				if arg[:2] == "--" and len( arg ) > 2: break
				if arg[:1] == "-" and len( arg ) > 1: break
				value += " " + arg

			setattr(values, dest, value )

		else:
			Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #5
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "map":
         values.ensure_value(dest, parser.map[opt.lstrip('-')])
     elif action == "map_extend":
         values.ensure_value(dest, []).extend(parser.map[opt.lstrip('-')])
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #6
0
            def take_action(self, action, dest, opt, value, values, parser):
                def exchangeValue(lvalue, dest, values):
                    for idx, m in enumerate(lvalue):
                        if m != "":
                            vals = getattr(values, dest)
                            vals[idx] = lvalue[idx]
                            setattr(values, dest, vals)

                if action == "multistore":
                    lvalue = value.split(",")
                    if (len(lvalue) > 1 and len(lvalue) <= 2):
                        exchangeValue(lvalue, dest, values)
                    else:
                        raise OptionValueError("option: %s to 2 values." %
                                               dest)
                elif action == "quatrostore":
                    lvalue = value.split(",")
                    if (len(lvalue) > 1 and len(lvalue) <= 4):
                        exchangeValue(lvalue, dest, values)
                    else:
                        raise OptionValueError("option: %s to 2 values." %
                                               dest)
                elif action == "doublestore":
                    lvalue = value.split(",")
                    if (len(lvalue) == 2 and lvalue[0] != ""
                            and lvalue[1] != ""):
                        exchangeValue(lvalue, dest, values)
                    else:
                        raise OptionValueError(
                            "option: %s necessary 2 values." % dest)
                else:
                    Option.take_action(self, action, dest, opt, value, values,
                                       parser)
Beispiel #7
0
	def take_action(self, action, dest, opt, value, values, parser):

		if action == "pubsub":

			# read the subscriber and publisher arguments
			value += " "
			for arg in parser.rargs:
				if arg[:2] == "--" and len(arg) > 2: break
				if arg[:1] == "-" and len(arg) > 1: break
				value += arg + " "
			subpubArray = [ x.strip() for x in value.split(",") if x.strip() ] 

			# verify that argument meets requirements
			if len(subpubArray) == 2:
				values.ensure_value(dest, []).append({"name": subpubArray[0], "type": subpubArray[1]})
			else:
				if opt == '-s': exitWithError(ERROR_OPT.SUBSCRIBER_MISSING, len(subpubArray))
				if opt == '-p': exitWithError(ERROR_OPT.PUBLISHER_MISING, len(subpubArray))

		elif action == "strspaces":

			# read the subscriber and publisher arguments
			for arg in parser.rargs:
				if arg[:2] == "--" and len( arg ) > 2: break
				if arg[:1] == "-" and len( arg ) > 1: break
				value += " " + arg

			setattr(values, dest, value )

		else:
			Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #8
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'extend':
         split_value = value.split(',')
         ensure_value(qconfig, dest, []).extend(split_value)
     else:
         Option.take_action(
             self, action, dest, opt, value, qconfig, parser)
Beispiel #9
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "map":
         values.ensure_value(dest, parser.map[opt.lstrip('-')])
     elif action == "map_extend":
         values.ensure_value(dest, []).extend(parser.map[opt.lstrip('-')])
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self,action,dest,opt,value,values,parser):
     log.debug('take_action: %s',action)
     if action in custom_actions:
         custom_actions.get(action)(dest,value,values)
     else:
         Option.take_action(self,action,dest,opt,value,values,parser)
     log.debug('values: %s',values)
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         if not hasattr(self, '_extended'):
             self.__extended = False
             self.__count = 0
         self.__count += 1
         if self.__extended and self.__count > 4:
             values.ensure_value(dest, []).append(value)
         else:
             data = vars(values)[dest]
             temp = self.__SPLITREGEX.split(value)
             for item in temp:
                 if self.__PRESSUREREGEX.search(item):
                     data[0] = ':'.join(
                         self.__PRESSUREREGEX.search(item).groups())
                 elif self.__TEMPERATUREREGEX.search(item):
                     data[1] = ':'.join(
                         self.__TEMPERATUREREGEX.search(item).groups())
                 elif self.__HUMIDITYREGEX.search(item):
                     data[2] = ':'.join(
                         self.__HUMIDITYREGEX.search(item).groups())
                 elif self.__DEWPOINTREGEX.search(item):
                     data[3] = self.__DEWPOINTREGEX.sub(r'\1', item)
             values._update_careful({dest: data})
         self.__extended = True
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #12
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         lvalue = value.split(",")
         values.ensure_value(dest, []).extend(lvalue)
     else:
         Option.take_action(
             self, action, dest, opt, value, values, parser)
    def take_action(self, action, dest, opt, value, values, parser):
        "Extended to handle generation a config file"
        if action == "generate_config":
            parser.generate_and_print_config_file()
            parser.exit()

        Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #14
0
    def take_action(self, action, dest, opt, value, values, parser):
        """
        This function is a wrapper to take certain options passed on command
        prompt and wrap them into an Array.

        @param action: The type of action that will be taken. For example:
        "store_true", "store_false", "extend".
        @type action: String
        @param dest: The name of the variable that will be used to store the
        option.
        @type dest: String/Boolean/Array
        @param opt: The option string that triggered the action.
        @type opt: String
        @param value: The value of opt(option) if it takes a
        value, if not then None.
        @type value:
        @param values: All the opt(options) in a dictionary.
        @type values: Dictionary
        @param parser: The option parser that was orginally called.
        @type parser: OptionParser
        """
        if (action == "extend") :
            value_list = []
            try:
                for v in value.split(","):
                    # Need to add code for dealing with paths if there is option for paths.
                    new_value = value.strip().rstrip()
                    if (len(new_value) > 0):
                        value_list.append(new_value)
            except:
                pass
            else:
                values.ensure_value(dest, []).extend(value_list)
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #15
0
    def take_action(self, action, dest, opt, value, values, parser):
        """overridden method to check the given options and split them."""

        if action == "extend":
            lvalue = value.split(',')
            values.ensure_value(dest, []).extend(lvalue)
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #16
0
 def take_action(self, action, dest, opt, val, vals, parser):
     if action == 'setitem':
         key = opt.strip('-')
         vals.ensure_value(dest, {})[key] = val
     elif action == 'setitem2':
         key, val = val
         vals.ensure_value(dest, {})[key] = val
     else:
         Opt.take_action(self, action, dest, opt, val, vals, parser)
Beispiel #17
0
 def take_action(self, action, dest, opt, val, vals, parser):
     if action == 'setitem':
         key = opt.strip('-')
         vals.ensure_value(dest, {})[key] = val
     elif action == 'setitem2':
         key, val = val
         vals.ensure_value(dest, {})[key] = val
     else:
         Opt.take_action(self, action, dest, opt, val, vals, parser)
Beispiel #18
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         lvalue = value.split(",")
         for token in lvalue:
             token = token.strip()
             if token:
                 values.ensure_value(dest, []).append(token)
     else:
         Option.take_action(
             self, action, dest, opt, value, values, parser)
Beispiel #19
0
	def take_action(self,action,dest,opt,value,values,parser):
		if action=="dic":
			vals=value.split(",")
			d={}
			for val in vals:
				p=val.split("]")
				k=p[0][1:]
				v=p[1]
				d[k]=v
			setattr(values,dest,d)
		else: Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #20
0
 def take_action(self, action, dest, opt, value, values, parser):
     """ Performs list extension on plugins """
     if action == "extend":
         try:
             lvalue = value.split(",")
         except:
             pass
         else:
             values.ensure_value(dest, deque()).extend(lvalue)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #21
0
    def take_action(self, action, dest, opt, value, values, parser):
        if action == "extend":
            values.ensure_value(dest, []).append(value)
            for a in parser.rargs[:]:
                if a.startswith("-"):
                    break
                else:
                    values.ensure_value(dest, []).append(a)
                    parser.rargs.remove(a)

        else:
            Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #22
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         values.ensure_value(dest, []).append(value)
     else:
         Option.take_action(
             self,
             action,
             dest,
             opt,
             value,
             values,
             parser)
Beispiel #23
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "dic":
         vals = value.split(",")
         d = {}
         for val in vals:
             p = val.split("]")
             k = p[0][1:]
             v = p[1]
             d[k] = v
         setattr(values, dest, d)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #24
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         values.ensure_value(dest, []).append(value)
     else:
         Option.take_action(
             self,
             action,
             dest,
             opt,
             value,
             values,
             parser)
Beispiel #25
0
    def take_action(self, action, dest, opt, value, values, parser):
        if action == "store_list":
            value = value.strip()
            lvalue = value.split(",")
            size = len(lvalue)
            if size > 0 and lvalue[size - 1] == "":
              lvalue.pop()

            values.ensure_value(dest, []).extend(lvalue)
        else:
            Option.take_action(
                self, action, dest, opt, value, values, parser)
Beispiel #26
0
 def take_action(self, action, dest, opt, value, values, parser):
     """Uses 'store_const_once' or standard actions.
     """
     if action == "store_const_once":
         # ----- store_const_once
         if not hasattr(values, dest) or not getattr(values, dest):
             setattr(values, dest, getattr(self, 'const'))
         else:
             raise OptionValueError("%r is invalid because '%s' previously occurs" \
                     % (getattr(self, 'const'), dest))
     else:
         # ----- standard actions
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #27
0
 def take_action(self, action, dest, opt, value, values, parser):
     if (action == "extend"):
         valueList = []
         try:
             for v in value.split(","):
                 newValue = v.strip().rstrip()
                 if (len(newValue) > 0):
                     valueList.append(newValue)
         except:
             pass
         else:
             values.ensure_value(dest, []).extend(valueList)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #28
0
 def take_action(self, action, dest, opt, value, values, parser):
     if (action == "extend") :
         valueList = []
         try:
             for v in value.split(","):
                 newValue = v.strip().rstrip()
                 if (len(newValue) > 0):
                     valueList.append(newValue)
         except:
             pass
         else:
             values.ensure_value(dest, []).extend(valueList)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self, action, dest, opt, value, values, parser):
     ui = 'ui'
     if action == 'runtest':
         action = 'import'
         value = 'test'
         dest = 'ui'
         ui = ''
     if action == 'import':
         environ = {}
         exec("from shop import %s%s as module" % (value, ui), environ)
         setattr(values, dest, environ['module'])
     elif action == 'dir':
         setattr(values, dest, os.path.abspath(value))
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self, action, dest, opt, value, values, parser):
     ui = 'ui'
     if action == 'runtest':
         action = 'import'
         value = 'test'
         dest = 'ui'
         ui = ''
     if action == 'import':
         environ = {}
         exec("from shop import %s%s as module" % (value,ui), environ)
         setattr(values, dest, environ['module'])
     elif action == 'dir':
         setattr(values, dest, os.path.abspath(value))
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #31
0
 def take_action(self, action, dest, opt, value, values, parser):
     if (action == "extend") :
         valueList = []
         try:
             for v in value.split(","):
                 # Need to add code for dealing with paths if there is option for paths.
                 newValue = value.strip().rstrip()
                 if (len(newValue) > 0):
                     valueList.append(newValue)
         except:
             pass
         else:
             values.ensure_value(dest, []).extend(valueList)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #32
0
 def take_action(self, action, dest, opt, value, values, parser):
     if (action == "extend") :
         valueList = []
         try:
             for v in value.split(","):
                 # Need to add code for dealing with paths if there is option for paths.
                 newValue = value.strip().rstrip()
                 if (len(newValue) > 0):
                     valueList.append(newValue)
         except:
             pass
         else:
             values.ensure_value(dest, []).extend(valueList)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #33
0
 def take_action(self, action, dest, opt, value, values, parser):
     """Executes `action`"""
     if action == 'license':
         parser.print_license()
         parser.exit()
     elif action == 'copyright':
         parser.print_copyright()
         parser.exit()
     elif action == 'authors':
         parser.print_authors()
         parser.exit()
     elif action == 'print_fields':
         parser.print_fields()
         parser.exit()
     elif action == 'command':
         if hasattr(parser.values, 'command'):
             # raise error if two exlusive commands appeared
             msg = _('Please specify only one command option')
             raise OptionValueError(msg)
         values.command = opt.lstrip('-').replace('-', '_')
         values.command_values = value
         values.args = self.args
     else:
         return Option.take_action(self, action, dest, opt, value,
                                   values, parser)
     return True
Beispiel #34
0
    def take_action(self, action, dest, opt, value, values, parser):
        """extended take_action"""
        orig_action = action  # keep copy

        if action == 'shorthelp':
            parser.print_shorthelp()
            parser.exit()
        elif action in ('store_true', 'store_false', 'store_debuglog'):
            if action == 'store_debuglog':
                action = 'store_true'

            if opt.startswith("--%s-" % self.ENABLE):
                # keep action
                pass
            elif opt.startswith("--%s-" % self.DISABLE):
                # reverse action
                if action in ('store_true', 'store_debuglog'):
                    action = 'store_false'
                elif action in ('store_false', ):
                    action = 'store_true'

            if orig_action == 'store_debuglog' and action == 'store_true':
                setLogLevelDebug()

            Option.take_action(self, action, dest, opt, value, values, parser)
        elif action in self.EXTOPTION_EXTRA_OPTIONS:
            if action == "extend":
                # comma separated list convert in list
                lvalue = value.split(self.EXTEND_SEPARATOR)
                values.ensure_value(dest, []).extend(lvalue)
            elif action == "date":
                lvalue = date_parser(value)
                setattr(values, dest, lvalue)
            elif action == "datetime":
                lvalue = datetime_parser(value)
                setattr(values, dest, lvalue)
            else:
                raise (Exception(
                    "Unknown extended option action %s (known: %s)" %
                    (action, self.EXTOPTION_EXTRA_OPTIONS)))
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)

        # set flag to mark as passed by action (ie not by default)
        # - distinguish from setting default value through option
        if hasattr(values, '_action_taken'):
            values._action_taken[dest] = True
Beispiel #35
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extendResetDefault":
         if not hasattr(self, 'resetDefault'):
             self.resetDefault = set()
         if dest not in self.resetDefault:
             del values.ensure_value(dest, [])[:]
             self.resetDefault.add(dest)
         values.ensure_value(dest, []).extend(value)
     elif action == "appendResetDefault":
         if not hasattr(self, 'resetDefault'):
             self.resetDefault = set()
         if dest not in self.resetDefault:
             del values.ensure_value(dest, [])[:]
             self.resetDefault.add(dest)
         values.ensure_value(dest, []).append(value)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
    def take_action(self, action, dest, opt, value, values, parser):
        """Extended take_action"""
        orig_action = action  # keep copy

        if action == 'shorthelp':
            parser.print_shorthelp()
            parser.exit()
        elif action in ('store_true', 'store_false',) + self.EXTOPTION_LOG:
            if action in self.EXTOPTION_LOG:
                action = 'store_true'

            if opt.startswith("--%s-" % self.ENABLE):
                # keep action
                pass
            elif opt.startswith("--%s-" % self.DISABLE):
                # reverse action
                if action in ('store_true',) + self.EXTOPTION_LOG:
                    action = 'store_false'
                elif action in ('store_false',):
                    action = 'store_true'

            if orig_action in('store_debuglog', 'store_infolog', 'store_warninglog') and action == 'store_true':
                setLogLevel(orig_action.split('_')[1][:-3].upper())

            Option.take_action(self, action, dest, opt, value, values, parser)
        elif action in self.EXTOPTION_EXTRA_OPTIONS:
            if action == "extend":
                # comma separated list convert in list
                lvalue = value.split(self.EXTEND_SEPARATOR)
                values.ensure_value(dest, []).extend(lvalue)
            elif action == "date":
                lvalue = date_parser(value)
                setattr(values, dest, lvalue)
            elif action == "datetime":
                lvalue = datetime_parser(value)
                setattr(values, dest, lvalue)
            else:
                raise(Exception("Unknown extended option action %s (known: %s)" %
                                (action, self.EXTOPTION_EXTRA_OPTIONS)))
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)

        # set flag to mark as passed by action (ie not by default)
        # - distinguish from setting default value through option
        if hasattr(values, '_action_taken'):
            values._action_taken[dest] = True
Beispiel #37
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "load":
         infile = open(value)
         add_values = (self.convert_value(opt, line.rstrip())
                       for line in infile)
         values.ensure_value(dest, []).extend(add_values)
     elif action == "update":
         key = value[0]
         dict_value = self.convert_value(opt, [value[1]])[0]
         self._update(dest, key, dict_value, values)
     elif action == "update_const":
         self._update(dest, key, self.const, values)
     elif action == "update_true":
         self._update(dest, key, True, values)
     elif action == "update_false":
         self._update(dest, key, False, values)
     else:
         _Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #38
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extendResetDefault":
         if not hasattr(self, 'resetDefault'):
             self.resetDefault = set()
         if dest not in self.resetDefault:
             del values.ensure_value(dest, [])[:]
             self.resetDefault.add(dest)
         values.ensure_value(dest, []).extend(value)
     elif action == "appendResetDefault":
         if not hasattr(self, 'resetDefault'):
             self.resetDefault = set()
         if dest not in self.resetDefault:
             del values.ensure_value(dest, [])[:]
             self.resetDefault.add(dest)
         values.ensure_value(dest, []).append(value)
     else:
         Option.take_action(
             self, action, dest, opt, value, values, parser)
Beispiel #39
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "store_hive":
         if not hasattr(values, dest) or getattr(values, dest) == None:
             if hasattr(self, "subopts_hive") and self.subopts_hive:
                 hive = self.subopts_hive
             else:
                 hive = parser.hive_class()
             setattr(values, dest, hive)
         for o in value.split(self.subsep or ","):
             oo = o.split('=')
             ok = oo[0]
             ov = None
             if (len(oo) > 1):
                 ov = oo[1]
             if ok in self.subopt_map:
                 self.subopt_map[ok].process(ok, ov, values, parser)
             else:
                 getattr(values, dest).add(*oo)
         return
     Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "extend":
         if not hasattr(self,'_extended'):
             self.__extended=False
             self.__count=0
         self.__count+=1
         if self.__extended and self.__count>2:
             values.ensure_value(dest, []).append(value)
         else:
             data=vars(values)[dest]
             temp=self.__SPLITREGEX.split(value)
             for item in temp:
                 if self.__HUMIDITYREGEX.search(item):
                     data[0]=':'.join(self.__HUMIDITYREGEX.search(item).groups())
                 elif self.__DEWPOINTREGEX.search(item):
                     data[1]=self.__DEWPOINTREGEX.sub(r'\1',item)
             values._update_careful({dest: data})
         self.__extended=True
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #41
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "store_hive":
         if not hasattr(values, dest) or getattr(values, dest) == None:
              if hasattr(self, "subopts_hive") and self.subopts_hive:
                  hive = self.subopts_hive
              else:
                  hive = parser.hive_class()
              setattr(values, dest, hive)
         for o in value.split(self.subsep or ","):
             oo = o.split('=')
             ok = oo[0]
             ov = None
             if (len(oo) > 1):
                 ov = oo[1]
             if ok in self.subopt_map:
                 self.subopt_map[ok].process(ok, ov, values, parser)
             else:
                 getattr(values, dest).add(*oo)
         return
     Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #42
0
    def take_action(self, action, dest, opt, value, values, parser):
        """Perform action.
        """

        # Overridden to provide sample_config option and to handle
        # commalist as a list.
        log.debug("Running an action '%s' for option '%s', value '%s'.",
                  action, opt, value)
        if action == "sample_config":
            log.debug("We'll print the sample config and exit.")
            print parser.sample_config()
            sys.exit(0)
        elif action == "load_config":
            log.debug("We'll read in the project's config file '%s'.",
                      value)
            parser.read_project_configfile(value, values)
        elif action == "append" and self.type == "commalist":
            log.debug("We're a commalist and we have to append value '%s'.",
                      value)
            log.debug("Ensuring that option '%s' exists.",
                      dest)
            values.ensure_value(dest, [])
            original_value = getattr(values, dest)
            log.debug("Before adding, the option's value was '%s'.",
                      original_value)
            if original_value == '':
                # Bloody hack, but can't figure out what's wrong.
                log.debug("Don't know why, but our list is an empty string. "
                          "Resetting it to an empty list. (HACK).")
                setattr(values, dest, [])
            values.ensure_value(dest, []).extend(value)
            log.debug("After adding, the option's value is '%s'.",
                      getattr(values, dest))
        elif action == "deprecationwarning":
            log.warn("Option '%s' isn't in use anymore. Run ArchGenXML with "
                     "--sample-config or --help for assistance. At the end of "
                     "--help you can see what you should use instead.",
                     opt)
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #43
0
    def take_action(self, action, dest, opt, value, values, parser):
        """Perform action.
        """

        # Overridden to provide sample_config option and to handle
        # commalist as a list.
        log.debug("Running an action '%s' for option '%s', value '%s'.",
                  action, opt, value)
        if action == "sample_config":
            log.debug("We'll print the sample config and exit.")
            print parser.sample_config()
            sys.exit(0)
        elif action == "load_config":
            log.debug("We'll read in the project's config file '%s'.", value)
            parser.read_project_configfile(value, values)
        elif action == "append" and self.type == "commalist":
            log.debug("We're a commalist and we have to append value '%s'.",
                      value)
            log.debug("Ensuring that option '%s' exists.", dest)
            values.ensure_value(dest, [])
            original_value = getattr(values, dest)
            log.debug("Before adding, the option's value was '%s'.",
                      original_value)
            if original_value == '':
                # Bloody hack, but can't figure out what's wrong.
                log.debug("Don't know why, but our list is an empty string. "
                          "Resetting it to an empty list. (HACK).")
                setattr(values, dest, [])
            values.ensure_value(dest, []).extend(value)
            log.debug("After adding, the option's value is '%s'.",
                      getattr(values, dest))
        elif action == "deprecationwarning":
            log.warn(
                "Option '%s' isn't in use anymore. Run ArchGenXML with "
                "--sample-config or --help for assistance. At the end of "
                "--help you can see what you should use instead.", opt)
        else:
            Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self, action, dest, opt, value, values, parser):
     if action in ["store_true", "store_false"]:
         _value = (action == "store_true") ^ self.negate
         if value is not None and (self.nargs or self.oargs):
             _value = [_value]
             if isinstance(value, tuple):
                 _value.extend(value)
             else:
                 _value.append(value)
             setattr(values, dest, tuple(_value))
         else:
             setattr(values, dest, _value)
         return 1
     return Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #45
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'help2':
         raise HelpOptionFound()
     else:
         Option.take_action(action, dest, opt, value, values, parser)
Beispiel #46
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'help2':
         raise HelpOptionFound()
     else:
         Option.take_action(action, dest, opt, value, values, parser)
Beispiel #47
0
 def take_action(self, action, dest, opt, value, values, parser):
     actup = self._addactions.get(action)
     if actup:
         actup[0](self, dest, opt, value, values, parser, actup[1], *actup[2:])
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #48
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'extend':
         lvalues = value.split(',')
         values.ensure_value(dest, []).extend(x.strip() for x in lvalues)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
Beispiel #49
0
 def take_action(self, action, dest, opt, value, values, parser):
     if action == "longhelp":
         parser.print_longhelp()
         parser.exit()
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)
 def take_action(self, action, dest, opt, value, values, parser):
     if action == 'decrement':
         setattr(values, dest, values.ensure_value(dest, 0) - 1)
     else:
         Option.take_action(self, action, dest, opt, value, values, parser)