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 Pict:
-
- def __init__(self, in_file, bug_handler, out_file, copy = None, orig_file = None, run_level = 1):
- self._Pict__file = in_file
- self._Pict__bug_handler = bug_handler
- self._Pict__copy = copy
- self._Pict__run_level = run_level
- self._Pict__write_to = tempfile.mktemp()
- self._Pict__bracket_count = 0
- self._Pict__ob_count = 0
- self._Pict__cb_count = 0
- self._Pict__pict_count = 0
- self._Pict__in_pict = 0
- self._Pict__already_found_pict = 0
- self._Pict__orig_file = orig_file
- self._Pict__initiate_pict_dict()
- self._Pict__out_file = out_file
- self._Pict__no_ask = 1
-
-
- def __initiate_pict_dict(self):
- self._Pict__pict_dict = {
- 'ob<nu<open-brack': self._Pict__open_br_func,
- 'cb<nu<clos-brack': self._Pict__close_br_func,
- 'tx<nu<__________': self._Pict__text_func }
-
-
- def __open_br_func(self, line):
- return '{\n'
-
-
- def __close_br_func(self, line):
- return '}\n'
-
-
- def __text_func(self, line):
- return line[17:]
-
-
- def __make_dir(self):
- base_name = os.path.basename(getattr(self._Pict__orig_file, 'name', self._Pict__orig_file))
- base_name = os.path.splitext(base_name)[0]
- if self._Pict__out_file:
- dir_name = os.path.dirname(getattr(self._Pict__out_file, 'name', self._Pict__out_file))
- else:
- dir_name = os.path.dirname(self._Pict__orig_file)
- self._Pict__dir_name = base_name + '_rtf_pict_dir/'
- self._Pict__dir_name = os.path.join(dir_name, self._Pict__dir_name)
- if not os.path.isdir(self._Pict__dir_name):
-
- try:
- os.mkdir(self._Pict__dir_name)
- except OSError:
- msg = None
- msg = str(msg)
- msg += "Couldn't make directory '%s':\n" % self._Pict__dir_name
- raise self._Pict__bug_handler
- except:
- None<EXCEPTION MATCH>OSError
-
-
- None<EXCEPTION MATCH>OSError
- if self._Pict__no_ask:
- user_response = 'r'
- else:
- msg = 'Do you want to remove all files in %s?\n' % self._Pict__dir_name
- msg += 'Type "r" to remove.\n'
- msg += 'Type any other key to keep files in place.\n'
- sys.stderr.write(msg)
- user_response = raw_input()
- if user_response == 'r':
- if self._Pict__run_level > 1:
- sys.stderr.write('Removing files from old pict directory...\n')
-
- all_files = os.listdir(self._Pict__dir_name)
- for the_file in all_files:
- the_file = os.path.join(self._Pict__dir_name, the_file)
-
- try:
- os.remove(the_file)
- continue
- except OSError:
- continue
-
-
-
- if self._Pict__run_level > 1:
- sys.stderr.write('Files removed.\n')
-
-
-
-
- def __create_pict_file(self):
- self._Pict__pict_file = os.path.join(self._Pict__dir_name, 'picts.rtf')
- write_pic_obj = open(self._Pict__pict_file, 'w')
- write_pic_obj.close()
- self._Pict__write_pic_obj = open(self._Pict__pict_file, 'a')
-
-
- def __in_pict_func(self, line):
- if self._Pict__cb_count == self._Pict__pict_br_count:
- self._Pict__in_pict = 0
- self._Pict__write_pic_obj.write('}\n')
- return 1
- action = self._Pict__pict_dict.get(self._Pict__token_info)
- if action:
- line = action(line)
- self._Pict__write_pic_obj.write(line)
-
- return 0
-
-
- def __default(self, line, write_obj):
- if self._Pict__token_info == 'cw<gr<picture___':
- self._Pict__pict_count += 1
- write_obj.write('mi<mk<pict-start\n')
- write_obj.write('mi<tg<empty-att_<pict<num>%03d\n' % self._Pict__pict_count)
- write_obj.write('mi<mk<pict-end__\n')
- if not self._Pict__already_found_pict:
- self._Pict__create_pict_file()
- self._Pict__already_found_pict = 1
- self._Pict__print_rtf_header()
-
- self._Pict__in_pict = 1
- self._Pict__pict_br_count = self._Pict__ob_count
- self._Pict__cb_count = 0
- self._Pict__write_pic_obj.write('{\\pict\n')
- return 0
- return 1
-
-
- def __print_rtf_header(self):
- self._Pict__write_pic_obj.write('{\\rtf1 \n')
- self._Pict__write_pic_obj.write('{\\fonttbl\\f0\\null;} \n')
- self._Pict__write_pic_obj.write('{\\colortbl\\red255\\green255\\blue255;} \n')
- self._Pict__write_pic_obj.write('\\pard \n')
-
-
- def process_pict(self):
- self._Pict__make_dir()
- read_obj = open(self._Pict__file)
- write_obj = open(self._Pict__write_to, 'w')
- line_to_read = 'dummy'
- while line_to_read:
- line_to_read = read_obj.readline()
- line = line_to_read
- self._Pict__token_info = line[:16]
- if self._Pict__token_info == 'ob<nu<open-brack':
- self._Pict__ob_count = line[-5:-1]
-
- if self._Pict__token_info == 'cb<nu<clos-brack':
- self._Pict__cb_count = line[-5:-1]
-
- if not self._Pict__in_pict:
- to_print = self._Pict__default(line, write_obj)
- if to_print:
- write_obj.write(line)
-
- to_print
- to_print = self._Pict__in_pict_func(line)
- if to_print:
- write_obj.write(line)
- continue
- if self._Pict__already_found_pict:
- self._Pict__write_pic_obj.write('}\n')
- self._Pict__write_pic_obj.close()
-
- read_obj.close()
- write_obj.close()
- copy_obj = copy.Copy(bug_handler = self._Pict__bug_handler)
- if self._Pict__copy:
- copy_obj.copy_file(self._Pict__write_to, 'pict.data')
-
- copy_obj.rename(self._Pict__write_to, self._Pict__file)
- os.remove(self._Pict__write_to)
- if self._Pict__pict_count == 0:
-
- try:
- os.rmdir(self._Pict__dir_name)
- except OSError:
- pass
- except:
- None<EXCEPTION MATCH>OSError
-
-
- None<EXCEPTION MATCH>OSError
-
-
-