home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1117 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  4.8 KB  |  125 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4.  
  5. class OverrideTable:
  6.     
  7.     def __init__(self, list_of_lists, run_level = 1):
  8.         self._OverrideTable__list_of_lists = list_of_lists
  9.         self._OverrideTable__initiate_values()
  10.         self._OverrideTable__run_level = run_level
  11.  
  12.     
  13.     def __initiate_values(self):
  14.         self._OverrideTable__override_table_final = ''
  15.         self._OverrideTable__state = 'default'
  16.         self._OverrideTable__override_list = []
  17.         self._OverrideTable__state_dict = {
  18.             'default': self._OverrideTable__default_func,
  19.             'override': self._OverrideTable__override_func,
  20.             'unsure_ob': self._OverrideTable__after_bracket_func }
  21.         self._OverrideTable__override_dict = {
  22.             'cw<ls<lis-tbl-id': 'list-table-id',
  23.             'cw<ls<list-id___': 'list-id' }
  24.  
  25.     
  26.     def __override_func(self, line):
  27.         if self._OverrideTable__token_info == 'cb<nu<clos-brack' and self._OverrideTable__cb_count == self._OverrideTable__override_ob_count:
  28.             self._OverrideTable__state = 'default'
  29.             self._OverrideTable__parse_override_dict()
  30.         else:
  31.             att = self._OverrideTable__override_dict.get(self._OverrideTable__token_info)
  32.             if att:
  33.                 value = line[20:]
  34.                 self._OverrideTable__override_list[-1][att] = value
  35.             
  36.  
  37.     
  38.     def __parse_override_dict(self):
  39.         override_dict = self._OverrideTable__override_list[-1]
  40.         list_id = override_dict.get('list-id')
  41.         if list_id == None and self._OverrideTable__level > 3:
  42.             msg = 'This override does not appear to have a list-id\n'
  43.             raise self._OverrideTable__bug_handler, msg
  44.         self._OverrideTable__level > 3
  45.         current_table_id = override_dict.get('list-table-id')
  46.         if current_table_id == None and self._OverrideTable__run_level > 3:
  47.             msg = 'This override does not appear to have a list-table-id\n'
  48.             raise self._OverrideTable__bug_handler, msg
  49.         self._OverrideTable__run_level > 3
  50.         counter = 0
  51.         for list in self._OverrideTable__list_of_lists:
  52.             info_dict = list[0]
  53.             old_table_id = info_dict.get('list-table-id')
  54.             if old_table_id == current_table_id:
  55.                 self._OverrideTable__list_of_lists[counter][0]['list-id'].append(list_id)
  56.                 break
  57.             
  58.             counter += 1
  59.         
  60.  
  61.     
  62.     def __parse_lines(self, line):
  63.         lines = line.split('\n')
  64.         self._OverrideTable__ob_count = 0
  65.         self._OverrideTable__ob_group = 0
  66.         for line in lines:
  67.             self._OverrideTable__token_info = line[:16]
  68.             if self._OverrideTable__token_info == 'ob<nu<open-brack':
  69.                 self._OverrideTable__ob_count = line[-4:]
  70.                 self._OverrideTable__ob_group += 1
  71.             
  72.             if self._OverrideTable__token_info == 'cb<nu<clos-brack':
  73.                 self._OverrideTable__cb_count = line[-4:]
  74.                 self._OverrideTable__ob_group -= 1
  75.             
  76.             action = self._OverrideTable__state_dict.get(self._OverrideTable__state)
  77.             if action == None:
  78.                 print self._OverrideTable__state
  79.             
  80.             action(line)
  81.         
  82.         self._OverrideTable__write_final_string()
  83.  
  84.     
  85.     def __default_func(self, line):
  86.         if self._OverrideTable__token_info == 'ob<nu<open-brack':
  87.             self._OverrideTable__state = 'unsure_ob'
  88.         
  89.  
  90.     
  91.     def __after_bracket_func(self, line):
  92.         if self._OverrideTable__token_info == 'cw<ls<lis-overid':
  93.             self._OverrideTable__state = 'override'
  94.             self._OverrideTable__override_ob_count = self._OverrideTable__ob_count
  95.             the_dict = { }
  96.             self._OverrideTable__override_list.append(the_dict)
  97.         elif self._OverrideTable__run_level > 3:
  98.             msg = 'No matching token after open bracket\n'
  99.             msg += 'token is "%s\n"' % line
  100.             raise self._OverrideTable__bug_handler, msg
  101.         
  102.  
  103.     
  104.     def __write_final_string(self):
  105.         self._OverrideTable__override_table_final = 'mi<mk<over_beg_\n'
  106.         self._OverrideTable__override_table_final += 'mi<tg<open______<override-table\n' + 'mi<mk<overbeg__\n' + self._OverrideTable__override_table_final
  107.         for the_dict in self._OverrideTable__override_list:
  108.             self._OverrideTable__override_table_final += 'mi<tg<empty-att_<override-list'
  109.             the_keys = the_dict.keys()
  110.             for the_key in the_keys:
  111.                 self._OverrideTable__override_table_final += '<%s>%s' % (the_key, the_dict[the_key])
  112.             
  113.             self._OverrideTable__override_table_final += '\n'
  114.         
  115.         self._OverrideTable__override_table_final += '\n'
  116.         self._OverrideTable__override_table_final += 'mi<mk<overri-end\n' + 'mi<tg<close_____<override-table\n'
  117.         self._OverrideTable__override_table_final += 'mi<mk<overribend_\n'
  118.  
  119.     
  120.     def parse_override_table(self, line):
  121.         self._OverrideTable__parse_lines(line)
  122.         return (self._OverrideTable__override_table_final, self._OverrideTable__list_of_lists)
  123.  
  124.  
  125.