home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import sys
- import os
- import tempfile
- from calibre.ebooks.rtf2xml import copy
-
- class Header:
-
- def __init__(self, in_file, bug_handler, copy = None, run_level = 1):
- self._Header__file = in_file
- self._Header__bug_handler = bug_handler
- self._Header__copy = copy
- self._Header__write_to = tempfile.mktemp()
- self._Header__found_a_header = 0
-
-
- def __in_header_func(self, line):
- if self._Header__cb_count == self._Header__header_bracket_count:
- self._Header__in_header = 0
- self._Header__write_obj.write(line)
- self._Header__write_to_head_obj.write('mi<mk<head___clo\n')
- self._Header__write_to_head_obj.write('mi<tg<close_____<header-or-footer\n')
- self._Header__write_to_head_obj.write('mi<mk<header-clo\n')
- else:
- self._Header__write_to_head_obj.write(line)
-
-
- def __found_header(self, line):
- self._Header__found_a_header = 1
- self._Header__in_header = 1
- self._Header__header_count += 1
- self._Header__cb_count = 0
- self._Header__header_bracket_count = self._Header__ob_count
- self._Header__write_obj.write('mi<mk<header-ind<%04d\n' % self._Header__header_count)
- self._Header__write_to_head_obj.write('mi<mk<header-ope<%04d\n' % self._Header__header_count)
- info = line[6:16]
- type = self._Header__head_dict.get(info)
- if type:
- self._Header__write_to_head_obj.write('mi<tg<open-att__<header-or-footer<type>%s\n' % type)
- else:
- sys.stderr.write('module is header\n')
- sys.stderr.write('method is __found_header\n')
- sys.stderr.write('no dict entry\n')
- sys.stderr.write('line is %s' % line)
- self._Header__write_to_head_obj.write('mi<tg<open-att__<header-or-footer<type>none\n')
-
-
- def __default_sep(self, line):
- if self._Header__token_info[3:5] == 'hf':
- self._Header__found_header(line)
-
- self._Header__write_obj.write(line)
-
-
- def __initiate_sep_values(self):
- self._Header__bracket_count = 0
- self._Header__ob_count = 0
- self._Header__cb_count = 0
- self._Header__header_bracket_count = 0
- self._Header__in_header = 0
- self._Header__header_count = 0
- self._Header__head_dict = {
- 'head-left_': 'header-left',
- 'head-right': 'header-right',
- 'foot-left_': 'footer-left',
- 'foot-right': 'footer-right',
- 'head-first': 'header-first',
- 'foot-first': 'footer-first',
- 'header____': 'header',
- 'footer____': 'footer' }
-
-
- def separate_headers(self):
- self._Header__initiate_sep_values()
- read_obj = open(self._Header__file)
- self._Header__write_obj = open(self._Header__write_to, 'w')
- self._Header__header_holder = tempfile.mktemp()
- self._Header__write_to_head_obj = open(self._Header__header_holder, 'w')
- line_to_read = 1
- while line_to_read:
- line_to_read = read_obj.readline()
- line = line_to_read
- self._Header__token_info = line[:16]
- if self._Header__token_info == 'ob<nu<open-brack':
- self._Header__ob_count = line[-5:-1]
-
- if self._Header__token_info == 'cb<nu<clos-brack':
- self._Header__cb_count = line[-5:-1]
-
- if self._Header__in_header:
- self._Header__in_header_func(line)
- continue
- self._Header__default_sep(line)
- self._Header__write_obj.close()
- read_obj.close()
- self._Header__write_to_head_obj.close()
- read_obj = open(self._Header__header_holder, 'r')
- write_obj = open(self._Header__write_to, 'a')
- write_obj.write('mi<mk<header-beg\n')
- line = 1
- while line:
- line = read_obj.readline()
- write_obj.write(line)
- write_obj.write('mi<mk<header-end\n')
- read_obj.close()
- write_obj.close()
- os.remove(self._Header__header_holder)
- copy_obj = copy.Copy(bug_handler = self._Header__bug_handler)
- if self._Header__copy:
- copy_obj.copy_file(self._Header__write_to, 'header_separate.info')
-
- copy_obj.rename(self._Header__write_to, self._Header__file)
- os.remove(self._Header__write_to)
-
-
- def update_info(self, file, copy):
- self._Header__file = file
- self._Header__copy = copy
-
-
- def __get_head_body_func(self, line):
- if self._Header__token_info == 'mi<mk<header-beg':
- self._Header__state = 'head'
- else:
- self._Header__write_obj.write(line)
-
-
- def __get_head_head_func(self, line):
- if self._Header__token_info == 'mi<mk<header-end':
- self._Header__state = 'body'
- else:
- self._Header__write_to_head_obj.write(line)
-
-
- def __get_headers(self):
- read_obj = open(self._Header__file)
- self._Header__write_obj = open(self._Header__write_to, 'w')
- self._Header__write_to_head_obj = open(self._Header__header_holder, 'w')
- line = 1
- while line:
- line = read_obj.readline()
- self._Header__token_info = line[:16]
- if self._Header__state == 'body':
- self._Header__get_head_body_func(line)
- continue
- if self._Header__state == 'head':
- self._Header__get_head_head_func(line)
- continue
- read_obj.close()
- self._Header__write_obj.close()
- self._Header__write_to_head_obj.close()
-
-
- def __get_head_from_temp(self, num):
- look_for = 'mi<mk<header-ope<' + num + '\n'
- found_head = 0
- string_to_return = ''
- line = 1
- while line:
- line = self._Header__read_from_head_obj.readline()
- if found_head:
- if line == 'mi<mk<header-clo\n':
- return string_to_return
- string_to_return = string_to_return + line
- continue
- line == 'mi<mk<header-clo\n'
- if line == look_for:
- found_head = 1
- continue
-
-
- def __join_from_temp(self):
- self._Header__read_from_head_obj = open(self._Header__header_holder, 'r')
- read_obj = open(self._Header__write_to, 'r')
- self._Header__write_obj = open(self._Header__write_to2, 'w')
- line = 1
- while line:
- line = read_obj.readline()
- if line[:16] == 'mi<mk<header-ind':
- line = self._Header__get_head_from_temp(line[17:-1])
-
- self._Header__write_obj.write(line)
- read_obj.close()
-
-
- def join_headers(self):
- if not self._Header__found_a_header:
- return None
- self._Header__write_to2 = tempfile.mktemp()
- self._Header__state = 'body'
- self._Header__get_headers()
- self._Header__join_from_temp()
- self._Header__write_obj.close()
- self._Header__read_from_head_obj.close()
- copy_obj = copy.Copy(bug_handler = self._Header__bug_handler)
- if self._Header__copy:
- copy_obj.copy_file(self._Header__write_to, 'header_join.data')
-
- copy_obj.rename(self._Header__write_to, self._Header__file)
- os.remove(self._Header__write_to)
- os.remove(self._Header__header_holder)
-
-
-