home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sys
- import os
- import tempfile
- import re
- from calibre.ebooks.rtf2xml import copy
-
- class GroupBorders:
-
- def __init__(self, in_file, bug_handler, copy = None, run_level = 1, wrap = 0):
- self._GroupBorders__file = in_file
- self._GroupBorders__bug_handler = bug_handler
- self._GroupBorders__copy = copy
- self._GroupBorders__run_level = run_level
- self._GroupBorders__write_to = tempfile.mktemp()
- self._GroupBorders__wrap = wrap
-
-
- def __initiate_values(self):
- self._GroupBorders__state = 'default'
- self._GroupBorders__left_indent = 0
- self._GroupBorders__border_num = 0
- self._GroupBorders__list_type = 'not-defined'
- self._GroupBorders__pard_def = ''
- self._GroupBorders__all_lists = []
- self._GroupBorders__list_chunk = ''
- self._GroupBorders__state_dict = {
- 'default': self._GroupBorders__default_func,
- 'in_pard': self._GroupBorders__in_pard_func,
- 'after_pard': self._GroupBorders__after_pard_func }
- self._GroupBorders__end_list = [
- 'mi<mk<sect-close',
- 'mi<mk<sect-start',
- 'mi<mk<tabl-start',
- 'mi<mk<fldbk-end_',
- 'mi<mk<fldbkstart',
- 'mi<mk<close_cell',
- 'mi<tg<item_end__',
- 'mi<mk<foot___clo',
- 'mi<mk<footnt-ope',
- 'mi<mk<header-beg',
- 'mi<mk<header-end',
- 'mi<mk<head___clo',
- 'mi<tg<item_end__',
- 'mi<tg<item_end__',
- 'mi<mk<list_startmi<mk<style-grp_',
- 'mi<mk<style_grp_',
- 'mi<mk<style_gend',
- 'mi<mk<stylegend_']
- self._GroupBorders__name_regex = re.compile('(<name>[^<]+)')
- self._GroupBorders__border_regex = re.compile('border-paragraph')
- self._GroupBorders__found_appt = 0
- self._GroupBorders__line_num = 0
- self._GroupBorders__border_regex = re.compile('(<border-paragraph[^<]+|<border-for-every-paragraph[^<]+)')
- self._GroupBorders__last_border_string = ''
-
-
- def __in_pard_func(self, line):
- if self._GroupBorders__token_info == 'mi<tg<close_____' and line[17:-1] == 'paragraph-definition':
- self._GroupBorders__state = 'after_pard'
- else:
- self._GroupBorders__write_obj.write(line)
-
-
- def __after_pard_func(self, line):
- if self._GroupBorders__token_info == 'mi<tg<open-att__' and line[17:37] == 'paragraph-definition':
- self._GroupBorders__pard_after_par_def_func(line)
- elif self._GroupBorders__token_info == 'mi<tg<close_____' and line[17:-1] == 'paragraph-definition':
- sys.stderr.write('Wrong flag in __after_pard_func\n')
- if self._GroupBorders__run_level > 2:
- msg = 'wrong flag'
- raise self._GroupBorders__bug_handler, msg
- self._GroupBorders__run_level > 2
- elif self._GroupBorders__token_info in self._GroupBorders__end_list:
- self._GroupBorders__write_obj.write('mi<tg<close_____<paragraph-definition\n')
- self._GroupBorders__write_end_border_tag()
- self._GroupBorders__write_obj.write(self._GroupBorders__list_chunk)
- self._GroupBorders__list_chunk = ''
- self._GroupBorders__state = 'default'
- self._GroupBorders__write_obj.write(line)
- else:
- self._GroupBorders__list_chunk += line
-
-
- def __close_pard_(self, line):
- self._GroupBorders__write_obj.write(self._GroupBorders__list_chunk)
- self._GroupBorders__write_obj.write('mi<tg<close_____<paragraph-definition\n')
- self._GroupBorders__write_end_wrap()
- self._GroupBorders__list_chunk = ''
- self._GroupBorders__state = 'default'
-
-
- def __pard_after_par_def_func(self, line):
- is_border = self._GroupBorders__is_border_func(line)
- if not is_border:
- self._GroupBorders__write_obj.write('mi<tg<close_____<paragraph-definition\n')
- self._GroupBorders__write_end_border_tag()
- self._GroupBorders__write_obj.write(self._GroupBorders__list_chunk)
- self._GroupBorders__write_obj.write(line)
- self._GroupBorders__state = 'default'
- self._GroupBorders__list_chunk = ''
- else:
- (border_string, pard_string) = self._GroupBorders__parse_pard_with_border(line)
- if self._GroupBorders__last_border_string == border_string:
- self._GroupBorders__write_obj.write('mi<tg<close_____<paragraph-definition\n')
- self._GroupBorders__write_obj.write(self._GroupBorders__list_chunk)
- self._GroupBorders__list_chunk = ''
- self._GroupBorders__state = 'in_pard'
- self._GroupBorders__write_obj.write(pard_string)
- else:
- self._GroupBorders__write_obj.write('mi<tg<close_____<paragraph-definition\n')
- self._GroupBorders__write_end_border_tag()
- self._GroupBorders__write_obj.write(self._GroupBorders__list_chunk)
- self._GroupBorders__write_start_border_tag(border_string)
- self._GroupBorders__write_obj.write(pard_string)
- self._GroupBorders__state = 'in_pard'
- self._GroupBorders__last_border_string = border_string
- self._GroupBorders__list_chunk = ''
-
-
- def __default_func(self, line):
- if self._GroupBorders__token_info == 'mi<tg<open-att__' and line[17:37] == 'paragraph-definition':
- contains_border = self._GroupBorders__is_border_func(line)
- if contains_border:
- (border_string, pard_string) = self._GroupBorders__parse_pard_with_border(line)
- self._GroupBorders__write_start_border_tag(border_string)
- self._GroupBorders__write_obj.write(pard_string)
- self._GroupBorders__last_border_string = border_string
- self._GroupBorders__state = 'in_pard'
- else:
- self._GroupBorders__write_obj.write(line)
- else:
- self._GroupBorders__write_obj.write(line)
-
-
- def __write_start_border_tag(self, the_string):
- self._GroupBorders__write_obj.write('mi<mk<start-brdg\n')
- self._GroupBorders__border_num += 1
- num = '%04d' % self._GroupBorders__border_num
- num_string = 's%s' % num
- the_string += '<num>%s' % num_string
- self._GroupBorders__write_obj.write('mi<tg<open-att__<border-group%s\n' % the_string)
-
-
- def __write_end_border_tag(self):
- self._GroupBorders__write_obj.write('mi<mk<end-brdg__\n')
- self._GroupBorders__write_obj.write('mi<tg<close_____<border-group\n')
-
-
- def __is_border_func(self, line):
- line = re.sub(self._GroupBorders__name_regex, '', line)
- index = line.find('border-paragraph')
- if index > -1:
- return 1
- return 0
-
-
- def __parse_pard_with_border(self, line):
- border_string = ''
- pard_string = ''
- tokens = re.split(self._GroupBorders__border_regex, line)
- for token in tokens:
- if token[0:17] == '<border-paragraph':
- border_string += token
- continue
- pard_string += token
-
- return (border_string, pard_string)
-
-
- def __write_pard_with_border(self, line):
- border_string = ''
- pard_string = ''
- tokens = re.split(self._GroupBorders__border_regex, line)
- for token in tokens:
- if token[0:17] == '<border-paragraph':
- border_string += token
- continue
- pard_string += token
-
- self._GroupBorders__write_start_border_tag(border_string)
- self._GroupBorders__write_obj.write(pard_string)
-
-
- def __get_style_name(self, line):
- if self._GroupBorders__token_info == 'mi<mk<style-name':
- self._GroupBorders__style_name = line[17:-1]
-
-
-
- def group_borders(self):
- self._GroupBorders__initiate_values()
- read_obj = open(self._GroupBorders__file, 'r')
- self._GroupBorders__write_obj = open(self._GroupBorders__write_to, 'w')
- line_to_read = 1
- while line_to_read:
- line_to_read = read_obj.readline()
- line = line_to_read
- self._GroupBorders__token_info = line[:16]
- self._GroupBorders__get_style_name(line)
- action = self._GroupBorders__state_dict.get(self._GroupBorders__state)
- action(line)
- read_obj.close()
- self._GroupBorders__write_obj.close()
- copy_obj = copy.Copy(bug_handler = self._GroupBorders__bug_handler)
- if self._GroupBorders__copy:
- copy_obj.copy_file(self._GroupBorders__write_to, 'group_borders.data')
-
- copy_obj.rename(self._GroupBorders__write_to, self._GroupBorders__file)
- os.remove(self._GroupBorders__write_to)
-
-
-