def check_mulchoices(option, opt, value): if value not in option.choices: for val in value.split(","): if val not in option.choices: # Will raises OptionValueError check_choice(option, opt, value) return value
def _parse_args(argv): """ Reconoce las opciones especificadas como argumentos. @type argv: C{list} @param argv: Lista de argumentos del programa. @rtype: C{tuple} @return: Retorna una tupla donde el primer elemento es una estructura que almacena la información acerca de las opciones especificadas y el segundo elemento es una lista con el resto de los argumentos. """ usage = '%prog <tiger-file> --output <output-file> [--output-type <output-type>]' version = '%%prog (PyTiger2C) %s\n' % __version__ authors = '\n'.join( ['Copyright (C) 2009, 2010 %s' % a for a in __authors__]) desc = 'Translates a Tiger program received as argument into a C program ' \ 'and then compiles the C program into an executable using a C compiler. ' \ 'This behavior can be modified using the --output-type option.' parser = optparse.OptionParser(usage=usage, version=version + authors, description=desc, prog=os.path.basename(argv[0])) parser.add_option('-o', '--output', action='store', dest='output', metavar='FILE', help='write the output to FILE') parser.add_option( '-t', '--output-type', action='store', dest='output_type', metavar='TYPE', type='choice', choices=('ast', 'c', 'binary'), help="output type: 'ast', 'c' or 'binary' (default '%default')") parser.set_default('output_type', 'binary') options, args = parser.parse_args(args=argv[1:]) optparse.check_choice(parser.get_option('--output-type'), '--output-type', options.output_type) if not options.output: parser.error('missing required --output option') elif len(args) != 1: parser.error('invalid number of arguments') else: return options, args
def _parse_args(argv): """ Reconoce las opciones especificadas como argumentos. @type argv: C{list} @param argv: Lista de argumentos del programa. @rtype: C{tuple} @return: Retorna una tupla donde el primer elemento es una estructura que almacena la información acerca de las opciones especificadas y el segundo elemento es una lista con el resto de los argumentos. """ usage = '%prog <tiger-file> --output <output-file> [--output-type <output-type>]' version = '%%prog (PyTiger2C) %s\n' % __version__ authors = '\n'.join(['Copyright (C) 2009, 2010 %s' % a for a in __authors__]) desc = 'Translates a Tiger program received as argument into a C program ' \ 'and then compiles the C program into an executable using a C compiler. ' \ 'This behavior can be modified using the --output-type option.' parser = optparse.OptionParser(usage=usage, version=version + authors, description=desc, prog=os.path.basename(argv[0])) parser.add_option('-o', '--output', action='store', dest='output', metavar='FILE', help='write the output to FILE') parser.add_option('-t', '--output-type', action='store', dest='output_type', metavar='TYPE', type='choice', choices=('ast', 'c', 'binary'), help="output type: 'ast', 'c' or 'binary' (default '%default')") parser.set_default('output_type', 'binary') options, args = parser.parse_args(args=argv[1:]) optparse.check_choice(parser.get_option('--output-type'), '--output-type', options.output_type) if not options.output: parser.error('missing required --output option') elif len(args) != 1: parser.error('invalid number of arguments') else: return options, args
def update_event(self, inp=-1): self.set_output_val( 0, optparse.check_choice(self.input(0), self.input(1), self.input(2)))
def check_choice_regignore(option, opt, value): """Check choice with registry independence""" if value.lower() in map(lambda x:x.lower(),option.choices): return value else: return optparse.check_choice(option,opt,value)