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 DeleteInfo:
-
- def __init__(self, in_file, bug_handler, copy = None, run_level = 1):
- self._DeleteInfo__file = in_file
- self._DeleteInfo__bug_handler = bug_handler
- self._DeleteInfo__copy = copy
- self._DeleteInfo__write_to = tempfile.mktemp()
- self._DeleteInfo__bracket_count = 0
- self._DeleteInfo__ob_count = 0
- self._DeleteInfo__cb_count = 0
- self._DeleteInfo__after_asterisk = 0
- self._DeleteInfo__delete = 0
- self._DeleteInfo__initiate_allow()
- self._DeleteInfo__ob = 0
- self._DeleteInfo__write_cb = 0
- self._DeleteInfo__run_level = run_level
- self._DeleteInfo__found_delete = 0
- self._DeleteInfo__list = 0
-
-
- def __initiate_allow(self):
- self._DeleteInfo__allowable = ('cw<ss<char-style', 'cw<it<listtable_', 'cw<it<revi-table', 'cw<ls<list-lev-d', 'cw<fd<field-inst', 'cw<an<book-mk-st', 'cw<an<book-mk-en', 'cw<an<annotation', 'cw<cm<comment___', 'cw<it<lovr-table')
- self._DeleteInfo__not_allowable = ('cw<un<unknown___', 'cw<un<company___', 'cw<ls<list-level', 'cw<fd<datafield_')
- self._DeleteInfo__state = 'default'
- self._DeleteInfo__state_dict = {
- 'default': self._DeleteInfo__default_func,
- 'after_asterisk': self._DeleteInfo__asterisk_func,
- 'delete': self._DeleteInfo__delete_func,
- 'list': self._DeleteInfo__list_func }
-
-
- def __default_func(self, line):
- if self._DeleteInfo__token_info == 'cw<ml<asterisk__':
- self._DeleteInfo__state = 'after_asterisk'
- self._DeleteInfo__delete_count = self._DeleteInfo__ob_count
- elif self._DeleteInfo__token_info == 'ob<nu<open-brack':
- if self._DeleteInfo__ob:
- self._DeleteInfo__write_obj.write(self._DeleteInfo__ob)
-
- self._DeleteInfo__ob = line
- return 0
- if self._DeleteInfo__ob:
- self._DeleteInfo__write_obj.write(self._DeleteInfo__ob)
- self._DeleteInfo__ob = 0
-
- return 1
-
-
- def __delete_func(self, line):
- if self._DeleteInfo__delete_count == self._DeleteInfo__cb_count:
- self._DeleteInfo__state = 'default'
- if self._DeleteInfo__write_cb:
- self._DeleteInfo__write_cb = 0
- return 1
- return 0
-
-
- def __asterisk_func(self, line):
- self._DeleteInfo__after_asterisk = 0
- self._DeleteInfo__found_delete = 1
- if self._DeleteInfo__token_info == 'cb<nu<clos-brack':
- if self._DeleteInfo__delete_count == self._DeleteInfo__cb_count:
- self._DeleteInfo__state = 'default'
- self._DeleteInfo__ob = 0
- return 0
- if self._DeleteInfo__run_level > 3:
- msg = 'flag problem\n'
- raise self._DeleteInfo__bug_handler, msg
- self._DeleteInfo__run_level > 3
- return 1
- self._DeleteInfo__token_info == 'cb<nu<clos-brack'
- if self._DeleteInfo__token_info in self._DeleteInfo__allowable:
- if self._DeleteInfo__ob:
- self._DeleteInfo__write_obj.write(self._DeleteInfo__ob)
- self._DeleteInfo__ob = 0
- self._DeleteInfo__state = 'default'
-
- return 1
- if self._DeleteInfo__token_info == 'cw<ls<list______':
- self._DeleteInfo__ob = 0
- self._DeleteInfo__found_list_func(line)
- elif self._DeleteInfo__token_info in self._DeleteInfo__not_allowable:
- if not self._DeleteInfo__ob:
- self._DeleteInfo__write_cb = 1
-
- self._DeleteInfo__ob = 0
- self._DeleteInfo__state = 'delete'
- self._DeleteInfo__cb_count = 0
- return 0
- if self._DeleteInfo__run_level > 5:
- msg = 'After an asterisk, and found neither an allowable or non-allowble token\n'
- msg += 'token is "%s"\n' % self._DeleteInfo__token_info
- raise self._DeleteInfo__bug_handler
- self._DeleteInfo__run_level > 5
- if not self._DeleteInfo__ob:
- self._DeleteInfo__write_cb = 1
-
- self._DeleteInfo__ob = 0
- self._DeleteInfo__state = 'delete'
- self._DeleteInfo__cb_count = 0
- return 0
-
-
- def __found_list_func(self, line):
- self._DeleteInfo__state = 'list'
-
-
- def __list_func(self, line):
- if self._DeleteInfo__delete_count == self._DeleteInfo__cb_count and self._DeleteInfo__token_info == 'cb<nu<clos-brack':
- self._DeleteInfo__state = 'default'
- if self._DeleteInfo__write_cb:
- self._DeleteInfo__write_cb = 0
- return 1
- return 0
- if line[0:2] == 'cw':
- return 1
- return 0
-
-
- def delete_info(self):
- line_to_read = 'dummy'
- read_obj = open(self._DeleteInfo__file, 'r')
- self._DeleteInfo__write_obj = open(self._DeleteInfo__write_to, 'w')
- while line_to_read:
- to_print = 1
- line_to_read = read_obj.readline()
- line = line_to_read
- self._DeleteInfo__token_info = line[:16]
- if self._DeleteInfo__token_info == 'ob<nu<open-brack':
- self._DeleteInfo__ob_count = line[-5:-1]
-
- if self._DeleteInfo__token_info == 'cb<nu<clos-brack':
- self._DeleteInfo__cb_count = line[-5:-1]
-
- action = self._DeleteInfo__state_dict.get(self._DeleteInfo__state)
- if not action:
- sys.stderr.write('No action in dictionary state is "%s" \n' % self._DeleteInfo__state)
-
- to_print = action(line)
- if to_print:
- self._DeleteInfo__write_obj.write(line)
- continue
- self._DeleteInfo__write_obj.close()
- read_obj.close()
- copy_obj = copy.Copy(bug_handler = self._DeleteInfo__bug_handler)
- if self._DeleteInfo__copy:
- copy_obj.copy_file(self._DeleteInfo__write_to, 'delete_info.data')
-
- copy_obj.rename(self._DeleteInfo__write_to, self._DeleteInfo__file)
- os.remove(self._DeleteInfo__write_to)
- return self._DeleteInfo__found_delete
-
-
-