import sys, os from optparse import OptionParser class MakeDictParser: def __init__(self): self.dict_info = { 'full_name': '', 'lang_from': '', 'lang_to': '', 'type': '', 'description': '' } self.f=None self.parser_info = { 'version': '', 'dict_name': '', 'format': '' } def __del__(self): if self.f: self.f.close() def set_dict_info(self, key, data): self.dict_info[key]=data def begin(self): print "" print "\n" \ "\n" def end(self): print "" def info(self): print "\n" \ " "+self.dict_info["full_name"]+"\n" \ " "+self.dict_info["description"]+"\n" \ def abbrs_begin(self): print "" def abbrs_end(self): print "" def start(self): def input_format(option, opt, value, parser): print self.parser_info['format'] sys.exit(0) def store_value(option, opt_str, value, parser): setattr(parser.values, option.dest, value) parser = OptionParser(usage="%prog path/to/"+self.parser_info['dict_name'], version="%prog "+self.parser_info['version']) parser.add_option("-i", "--input-format", action="callback", callback=input_format, help="output supported input format and exit") parser.add_option("--is-your-format", action="callback", callback=store_value, type="string", nargs=1, dest="is_my_format") (options, args) = parser.parse_args() if options.is_my_format: if os.path.basename(options.is_my_format)==self.parser_info['dict_name']: sys.exit(0) else: sys.exit(1) if len(args) != 1: parser.error("incorrect number of arguments") self.f = open(args[0], 'r') #md=MakeDictParser() #md.parser_info['version']='0.1' #md.parser_info['dict_name']='Mueller7GPL.koi' #md.parser_info['format']='mueller7' #md.start()