def addAdditionalOptions(self): """ Add additional options to the optFlags and optParams lists. These will be defined by 'opt_foo' methods of the Options subclass @return: C{None} """ methodsDict = {} reflect.accumulateMethods(self.options, methodsDict, 'opt_') methodToShort = {} for name in methodsDict.copy(): if len(name) == 1: methodToShort[methodsDict[name]] = name del methodsDict[name] for methodName, methodObj in methodsDict.items(): long = methodName.replace('_', '-') # t.p.usage does this # if this option is already defined by the optFlags or # optParameters then we don't want to override that data if long in self.optAll_d: continue descr = self.getDescription(long) short = None if methodObj in methodToShort: short = methodToShort[methodObj] reqArgs = methodObj.im_func.func_code.co_argcount if reqArgs == 2: self.optParams.append([long, short, None, descr]) self.optParams_d[long] = [short, None, descr] self.optAll_d[long] = [short, None, descr] elif reqArgs == 1: self.optFlags.append([long, short, descr]) self.optFlags_d[long] = [short, descr] self.optAll_d[long] = [short, None, descr] else: raise TypeError, '%r has wrong number ' \ 'of arguments' % (methodObj,)
def addAdditionalOptions(self): """ Add additional options to the optFlags and optParams lists. These will be defined by 'opt_foo' methods of the Options subclass @return: C{None} """ methodsDict = {} reflect.accumulateMethods(self.options, methodsDict, "opt_") methodToShort = {} for name in methodsDict.copy(): if len(name) == 1: methodToShort[methodsDict[name]] = name del methodsDict[name] for methodName, methodObj in methodsDict.items(): long = methodName.replace("_", "-") # t.p.usage does this # if this option is already defined by the optFlags or # optParameters then we don't want to override that data if long in self.optAll_d: continue descr = self.getDescription(long) short = None if methodObj in methodToShort: short = methodToShort[methodObj] reqArgs = methodObj.im_func.func_code.co_argcount if reqArgs == 2: self.optParams.append([long, short, None, descr]) self.optParams_d[long] = [short, None, descr] self.optAll_d[long] = [short, None, descr] elif reqArgs == 1: self.optFlags.append([long, short, descr]) self.optFlags_d[long] = [short, descr] self.optAll_d[long] = [short, None, descr] else: raise TypeError, "%r has wrong number " "of arguments" % (methodObj,)
def autoRegister(self, obj): from lib.twisted.python import reflect d = {} reflect.accumulateMethods(obj, d, self.prefix) for k,v in d.items(): self.registerHandler(k, v)
def autoRegister(self, obj): from lib.twisted.python import reflect d = {} reflect.accumulateMethods(obj, d, self.prefix) for k, v in d.items(): self.registerHandler(k, v)