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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import tempfile
  6. from calibre.ebooks.rtf2xml import copy
  7.  
  8. class CombineBorders:
  9.     
  10.     def __init__(self, in_file, bug_handler, copy = None, run_level = 1):
  11.         self._CombineBorders__file = in_file
  12.         self._CombineBorders__bug_handler = bug_handler
  13.         self._CombineBorders__copy = copy
  14.         self._CombineBorders__write_to = tempfile.mktemp()
  15.         self._CombineBorders__state = 'default'
  16.         self._CombineBorders__bord_pos = 'default'
  17.         self._CombineBorders__bord_att = []
  18.  
  19.     
  20.     def found_bd(self, line):
  21.         self._CombineBorders__state = 'border'
  22.         self._CombineBorders__bord_pos = line[6:16]
  23.  
  24.     
  25.     def __default_func(self, line):
  26.         if self._CombineBorders__first_five == 'cw<bd':
  27.             self.found_bd(line)
  28.             return ''
  29.         return line
  30.  
  31.     
  32.     def end_border(self, line, write_obj):
  33.         joiner = '|'
  34.         border_string = joiner.join(self._CombineBorders__bord_att)
  35.         self._CombineBorders__bord_att = []
  36.         write_obj.write('cw<bd<%s<nu<%s\n' % (self._CombineBorders__bord_pos, border_string))
  37.         self._CombineBorders__state = 'default'
  38.         self._CombineBorders__bord_string = ''
  39.         if self._CombineBorders__first_five == 'cw<bd':
  40.             self.found_bd(line)
  41.         else:
  42.             write_obj.write(line)
  43.  
  44.     
  45.     def add_to_border_desc(self, line):
  46.         border_desc = line[6:16]
  47.         num = line[20:-1]
  48.         if num == 'true':
  49.             num = ''
  50.         else:
  51.             num = ':' + num
  52.         self._CombineBorders__bord_att.append(border_desc + num)
  53.  
  54.     
  55.     def __border_func(self, line, write_obj):
  56.         if self._CombineBorders__first_five != 'cw<bt':
  57.             self.end_border(line, write_obj)
  58.         else:
  59.             self.add_to_border_desc(line)
  60.  
  61.     
  62.     def combine_borders(self):
  63.         read_obj = open(self._CombineBorders__file, 'r')
  64.         write_obj = open(self._CombineBorders__write_to, 'w')
  65.         line_to_read = 'dummy'
  66.         while line_to_read:
  67.             line_to_read = read_obj.readline()
  68.             line = line_to_read
  69.             self._CombineBorders__first_five = line[0:5]
  70.             if self._CombineBorders__state == 'border':
  71.                 self._CombineBorders__border_func(line, write_obj)
  72.                 continue
  73.             to_print = self._CombineBorders__default_func(line)
  74.             write_obj.write(to_print)
  75.         read_obj.close()
  76.         write_obj.close()
  77.         copy_obj = copy.Copy(bug_handler = self._CombineBorders__bug_handler)
  78.         if self._CombineBorders__copy:
  79.             copy_obj.copy_file(self._CombineBorders__write_to, 'combine_borders.data')
  80.         
  81.         copy_obj.rename(self._CombineBorders__write_to, self._CombineBorders__file)
  82.         os.remove(self._CombineBorders__write_to)
  83.  
  84.  
  85.