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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import sys
  5. import os
  6. import tempfile
  7. from calibre.ebooks.rtf2xml import copy, border_parse
  8.  
  9. class ParagraphDef:
  10.     
  11.     def __init__(self, in_file, bug_handler, default_font, copy = None, run_level = 1):
  12.         self._ParagraphDef__file = in_file
  13.         self._ParagraphDef__bug_handler = bug_handler
  14.         self._ParagraphDef__default_font = default_font
  15.         self._ParagraphDef__copy = copy
  16.         self._ParagraphDef__run_level = run_level
  17.         self._ParagraphDef__write_to = tempfile.mktemp()
  18.  
  19.     
  20.     def __initiate_values(self):
  21.         self._ParagraphDef__token_dict = {
  22.             'par-end___': 'para',
  23.             'par-def___': 'paragraph-definition',
  24.             'keep-w-nex': 'keep-with-next',
  25.             'widow-cntl': 'widow-control',
  26.             'adjust-rgt': 'adjust-right',
  27.             'language__': 'language',
  28.             'right-inde': 'right-indent',
  29.             'fir-ln-ind': 'first-line-indent',
  30.             'left-inden': 'left-indent',
  31.             'space-befo': 'space-before',
  32.             'space-afte': 'space-after',
  33.             'line-space': 'line-spacing',
  34.             'default-ta': 'default-tab',
  35.             'align_____': 'align',
  36.             'widow-cntr': 'widow-control',
  37.             'style-shet': 'stylesheet',
  38.             'based-on__': 'based-on-style',
  39.             'next-style': 'next-style',
  40.             'char-style': 'character-style',
  41.             'para-style': 'name',
  42.             'picture___': 'pict',
  43.             'obj-class_': 'obj_class',
  44.             'mac-pic___': 'mac-pict',
  45.             'section___': 'section-new',
  46.             'sect-defin': 'section-reset',
  47.             'sect-note_': 'endnotes-in-section',
  48.             'list-text_': 'list-text',
  49.             'list-text_': 'list-text',
  50.             'list______': 'list',
  51.             'list-lev-d': 'list-level-definition',
  52.             'list-cardi': 'list-cardinal-numbering',
  53.             'list-decim': 'list-decimal-numbering',
  54.             'list-up-al': 'list-uppercase-alphabetic-numbering',
  55.             'list-up-ro': 'list-uppercae-roman-numbering',
  56.             'list-ord__': 'list-ordinal-numbering',
  57.             'list-ordte': 'list-ordinal-text-numbering',
  58.             'list-bulli': 'list-bullet',
  59.             'list-simpi': 'list-simple',
  60.             'list-conti': 'list-continue',
  61.             'list-hang_': 'list-hang',
  62.             'list-level': 'level',
  63.             'list-id___': 'list-id',
  64.             'list-start': 'list-start',
  65.             'nest-level': 'nest-level',
  66.             'list-level': 'list-level',
  67.             'footnote__': 'footnote',
  68.             'type______': 'type',
  69.             'toc_______': 'anchor-toc',
  70.             'book-mk-st': 'bookmark-start',
  71.             'book-mk-en': 'bookmark-end',
  72.             'index-mark': 'anchor-index',
  73.             'place_____': 'place',
  74.             'field_____': 'field',
  75.             'field-inst': 'field-instruction',
  76.             'field-rslt': 'field-result',
  77.             'datafield_': 'data-field',
  78.             'font-table': 'font-table',
  79.             'colr-table': 'color-table',
  80.             'lovr-table': 'list-override-table',
  81.             'listtable_': 'list-table',
  82.             'revi-table': 'revision-table',
  83.             'hidden____': 'hidden',
  84.             'italics___': 'italics',
  85.             'bold______': 'bold',
  86.             'strike-thr': 'strike-through',
  87.             'shadow____': 'shadow',
  88.             'outline___': 'outline',
  89.             'small-caps': 'small-caps',
  90.             'caps______': 'caps',
  91.             'dbl-strike': 'double-strike-through',
  92.             'emboss____': 'emboss',
  93.             'engrave___': 'engrave',
  94.             'subscript_': 'subscript',
  95.             'superscrip': 'superscipt',
  96.             'font-style': 'font-style',
  97.             'font-color': 'font-color',
  98.             'font-size_': 'font-size',
  99.             'font-up___': 'superscript',
  100.             'font-down_': 'subscript',
  101.             'red_______': 'red',
  102.             'blue______': 'blue',
  103.             'green_____': 'green',
  104.             'row-def___': 'row-definition',
  105.             'cell______': 'cell',
  106.             'row_______': 'row',
  107.             'in-table__': 'in-table',
  108.             'columns___': 'columns',
  109.             'row-pos-le': 'row-position-left',
  110.             'cell-posit': 'cell-position',
  111.             'underlined': 'underlined',
  112.             'bor-t-r-hi': 'border-table-row-horizontal-inside',
  113.             'bor-t-r-vi': 'border-table-row-vertical-inside',
  114.             'bor-t-r-to': 'border-table-row-top',
  115.             'bor-t-r-le': 'border-table-row-left',
  116.             'bor-t-r-bo': 'border-table-row-bottom',
  117.             'bor-t-r-ri': 'border-table-row-right',
  118.             'bor-cel-bo': 'border-cell-bottom',
  119.             'bor-cel-to': 'border-cell-top',
  120.             'bor-cel-le': 'border-cell-left',
  121.             'bor-cel-ri': 'border-cell-right',
  122.             'bor-par-bo': 'border-paragraph-bottom',
  123.             'bor-par-to': 'border-paragraph-top',
  124.             'bor-par-le': 'border-paragraph-left',
  125.             'bor-par-ri': 'border-paragraph-right',
  126.             'bor-par-bo': 'border-paragraph-box',
  127.             'bor-for-ev': 'border-for-every-paragraph',
  128.             'bor-outsid': 'border-outisde',
  129.             'bor-none__': 'border',
  130.             'bdr-single': 'single',
  131.             'bdr-doubtb': 'double-thickness-border',
  132.             'bdr-shadow': 'shadowed-border',
  133.             'bdr-double': 'double-border',
  134.             'bdr-dotted': 'dotted-border',
  135.             'bdr-dashed': 'dashed',
  136.             'bdr-hair__': 'hairline',
  137.             'bdr-inset_': 'inset',
  138.             'bdr-das-sm': 'dash-small',
  139.             'bdr-dot-sm': 'dot-dash',
  140.             'bdr-dot-do': 'dot-dot-dash',
  141.             'bdr-outset': 'outset',
  142.             'bdr-trippl': 'tripple',
  143.             'bdr-thsm__': 'thick-thin-small',
  144.             'bdr-htsm__': 'thin-thick-small',
  145.             'bdr-hthsm_': 'thin-thick-thin-small',
  146.             'bdr-thm__': 'thick-thin-medium',
  147.             'bdr-htm__': 'thin-thick-medium',
  148.             'bdr-hthm_': 'thin-thick-thin-medium',
  149.             'bdr-thl__': 'thick-thin-large',
  150.             'bdr-hthl_': 'think-thick-think-large',
  151.             'bdr-wavy_': 'wavy',
  152.             'bdr-d-wav': 'double-wavy',
  153.             'bdr-strip': 'striped',
  154.             'bdr-embos': 'emboss',
  155.             'bdr-engra': 'engrave',
  156.             'bdr-frame': 'frame',
  157.             'bdr-li-wid': 'line-width' }
  158.         self._ParagraphDef__tabs_dict = {
  159.             'cw<pf<tab-stop__': self._ParagraphDef__tab_stop_func,
  160.             'cw<pf<tab-center': self._ParagraphDef__tab_type_func,
  161.             'cw<pf<tab-right_': self._ParagraphDef__tab_type_func,
  162.             'cw<pf<tab-dec___': self._ParagraphDef__tab_type_func,
  163.             'cw<pf<leader-dot': self._ParagraphDef__tab_leader_func,
  164.             'cw<pf<leader-hyp': self._ParagraphDef__tab_leader_func,
  165.             'cw<pf<leader-und': self._ParagraphDef__tab_leader_func,
  166.             'cw<pf<tab-bar-st': self._ParagraphDef__tab_bar_func }
  167.         self._ParagraphDef__tab_type_dict = {
  168.             'cw<pf<tab-center': 'center',
  169.             'cw<pf<tab-right_': 'right',
  170.             'cw<pf<tab-dec___': 'decimal',
  171.             'cw<pf<leader-dot': 'leader-dot',
  172.             'cw<pf<leader-hyp': 'leader-hyphen',
  173.             'cw<pf<leader-und': 'leader-underline' }
  174.         self._ParagraphDef__border_obj = border_parse.BorderParse()
  175.         self._ParagraphDef__style_num_strings = []
  176.         self._ParagraphDef__body_style_strings = []
  177.         self._ParagraphDef__state = 'before_1st_para_def'
  178.         self._ParagraphDef__att_val_dict = { }
  179.         self._ParagraphDef__start_marker = 'mi<mk<pard-start\n'
  180.         self._ParagraphDef__start2_marker = 'mi<mk<pardstart_\n'
  181.         self._ParagraphDef__end2_marker = 'mi<mk<pardend___\n'
  182.         self._ParagraphDef__end_marker = 'mi<mk<pard-end__\n'
  183.         self._ParagraphDef__text_string = ''
  184.         self._ParagraphDef__state_dict = {
  185.             'before_1st_para_def': self._ParagraphDef__before_1st_para_def_func,
  186.             'collect_tokens': self._ParagraphDef__collect_tokens_func,
  187.             'after_para_def': self._ParagraphDef__after_para_def_func,
  188.             'in_paragraphs': self._ParagraphDef__in_paragraphs_func,
  189.             'after_para_end': self._ParagraphDef__after_para_end_func }
  190.         self._ParagraphDef__collect_tokens_dict = {
  191.             'mi<mk<para-start': self._ParagraphDef__end_para_def_func,
  192.             'cw<pf<par-def___': self._ParagraphDef__para_def_in_para_def_func,
  193.             'cw<tb<cell______': self._ParagraphDef__empty_table_element_func,
  194.             'cw<tb<row_______': self._ParagraphDef__empty_table_element_func }
  195.         self._ParagraphDef__after_para_def_dict = {
  196.             'mi<mk<para-start': self._ParagraphDef__start_para_after_def_func,
  197.             'cw<pf<par-def___': self._ParagraphDef__found_para_def_func,
  198.             'cw<tb<cell______': self._ParagraphDef__empty_table_element_func,
  199.             'cw<tb<row_______': self._ParagraphDef__empty_table_element_func }
  200.         self._ParagraphDef__in_paragraphs_dict = {
  201.             'mi<mk<para-end__': self._ParagraphDef__found_para_end_func }
  202.         self._ParagraphDef__after_para_end_dict = {
  203.             'mi<mk<para-start': self._ParagraphDef__continue_block_func,
  204.             'mi<mk<para-end__': self._ParagraphDef__continue_block_func,
  205.             'cw<pf<par-def___': self._ParagraphDef__new_para_def_func,
  206.             'mi<mk<body-close': self._ParagraphDef__stop_block_func,
  207.             'mi<mk<par-in-fld': self._ParagraphDef__stop_block_func,
  208.             'cw<tb<cell______': self._ParagraphDef__stop_block_func,
  209.             'cw<tb<row-def___': self._ParagraphDef__stop_block_func,
  210.             'cw<tb<row_______': self._ParagraphDef__stop_block_func,
  211.             'mi<mk<sect-close': self._ParagraphDef__stop_block_func,
  212.             'mi<mk<sect-start': self._ParagraphDef__stop_block_func,
  213.             'mi<mk<header-beg': self._ParagraphDef__stop_block_func,
  214.             'mi<mk<header-end': self._ParagraphDef__stop_block_func,
  215.             'mi<mk<head___clo': self._ParagraphDef__stop_block_func,
  216.             'mi<mk<fldbk-end_': self._ParagraphDef__stop_block_func,
  217.             'mi<mk<lst-txbeg_': self._ParagraphDef__stop_block_func }
  218.  
  219.     
  220.     def __before_1st_para_def_func(self, line):
  221.         if self._ParagraphDef__token_info == 'cw<pf<par-def___':
  222.             self._ParagraphDef__found_para_def_func()
  223.         else:
  224.             self._ParagraphDef__write_obj.write(line)
  225.  
  226.     
  227.     def __found_para_def_func(self):
  228.         self._ParagraphDef__state = 'collect_tokens'
  229.         self._ParagraphDef__reset_dict()
  230.  
  231.     
  232.     def __collect_tokens_func(self, line):
  233.         action = self._ParagraphDef__collect_tokens_dict.get(self._ParagraphDef__token_info)
  234.         if action:
  235.             action(line)
  236.         elif line[0:2] != 'cw':
  237.             self._ParagraphDef__write_obj.write(line)
  238.             self._ParagraphDef__state = 'after_para_def'
  239.         elif line[0:5] == 'cw<bd':
  240.             self._ParagraphDef__parse_border(line)
  241.         else:
  242.             action = self._ParagraphDef__tabs_dict.get(self._ParagraphDef__token_info)
  243.             if action:
  244.                 action(line)
  245.             else:
  246.                 token = self._ParagraphDef__token_dict.get(line[6:16])
  247.                 if token:
  248.                     self._ParagraphDef__att_val_dict[token] = line[20:-1]
  249.                 
  250.  
  251.     
  252.     def __tab_stop_func(self, line):
  253.         self._ParagraphDef__att_val_dict['tabs'] += '%s:' % self._ParagraphDef__tab_type
  254.         self._ParagraphDef__att_val_dict['tabs'] += '%s;' % line[20:-1]
  255.         self._ParagraphDef__tab_type = 'left'
  256.  
  257.     
  258.     def __tab_type_func(self, line):
  259.         type = self._ParagraphDef__tab_type_dict.get(self._ParagraphDef__token_info)
  260.         if type != None:
  261.             self._ParagraphDef__tab_type = type
  262.         elif self._ParagraphDef__run_level > 3:
  263.             msg = 'no entry for %s\n' % self._ParagraphDef__token_info
  264.             raise self._ParagraphDef__bug_handler, msg
  265.         
  266.  
  267.     
  268.     def __tab_leader_func(self, line):
  269.         leader = self._ParagraphDef__tab_type_dict.get(self._ParagraphDef__token_info)
  270.         if leader != None:
  271.             self._ParagraphDef__att_val_dict['tabs'] += '%s^' % leader
  272.         elif self._ParagraphDef__run_level > 3:
  273.             msg = 'no entry for %s\n' % self._ParagraphDef__token_info
  274.             raise self._ParagraphDef__bug_handler, msg
  275.         
  276.  
  277.     
  278.     def __tab_bar_func(self, line):
  279.         self._ParagraphDef__att_val_dict['tabs'] += 'bar:%s;' % line[20:-1]
  280.         self._ParagraphDef__tab_type = 'left'
  281.  
  282.     
  283.     def __parse_border(self, line):
  284.         border_dict = self._ParagraphDef__border_obj.parse_border(line)
  285.         self._ParagraphDef__att_val_dict.update(border_dict)
  286.  
  287.     
  288.     def __para_def_in_para_def_func(self, line):
  289.         self._ParagraphDef__state = 'collect_tokens'
  290.         self._ParagraphDef__reset_dict()
  291.  
  292.     
  293.     def __end_para_def_func(self, line):
  294.         self._ParagraphDef__write_para_def_beg()
  295.         self._ParagraphDef__write_obj.write(line)
  296.         self._ParagraphDef__state = 'in_paragraphs'
  297.  
  298.     
  299.     def __start_para_after_def_func(self, line):
  300.         self._ParagraphDef__write_para_def_beg()
  301.         self._ParagraphDef__write_obj.write(line)
  302.         self._ParagraphDef__state = 'in_paragraphs'
  303.  
  304.     
  305.     def __after_para_def_func(self, line):
  306.         action = self._ParagraphDef__after_para_def_dict.get(self._ParagraphDef__token_info)
  307.         if self._ParagraphDef__token_info == 'cw<pf<par-def___':
  308.             self._ParagraphDef__found_para_def_func()
  309.         elif action:
  310.             action(line)
  311.         else:
  312.             self._ParagraphDef__write_obj.write(line)
  313.  
  314.     
  315.     def __in_paragraphs_func(self, line):
  316.         action = self._ParagraphDef__in_paragraphs_dict.get(self._ParagraphDef__token_info)
  317.         if action:
  318.             action(line)
  319.         else:
  320.             self._ParagraphDef__write_obj.write(line)
  321.  
  322.     
  323.     def __found_para_end_func(self, line):
  324.         self._ParagraphDef__state = 'after_para_end'
  325.         self._ParagraphDef__write_obj.write(line)
  326.  
  327.     
  328.     def __after_para_end_func(self, line):
  329.         self._ParagraphDef__text_string += line
  330.         action = self._ParagraphDef__after_para_end_dict.get(self._ParagraphDef__token_info)
  331.         if action:
  332.             action(line)
  333.         
  334.  
  335.     
  336.     def __continue_block_func(self, line):
  337.         self._ParagraphDef__state = 'in_paragraphs'
  338.         self._ParagraphDef__write_obj.write(self._ParagraphDef__text_string)
  339.         self._ParagraphDef__text_string = ''
  340.  
  341.     
  342.     def __new_para_def_func(self, line):
  343.         self._ParagraphDef__write_para_def_end_func()
  344.         self._ParagraphDef__found_para_def_func()
  345.  
  346.     
  347.     def __stop_block_func(self, line):
  348.         self._ParagraphDef__write_para_def_end_func()
  349.         self._ParagraphDef__state = 'after_para_def'
  350.  
  351.     
  352.     def __write_para_def_end_func(self):
  353.         self._ParagraphDef__write_obj.write(self._ParagraphDef__end2_marker)
  354.         self._ParagraphDef__write_obj.write('mi<tg<close_____<paragraph-definition\n')
  355.         self._ParagraphDef__write_obj.write(self._ParagraphDef__end_marker)
  356.         self._ParagraphDef__write_obj.write(self._ParagraphDef__text_string)
  357.         self._ParagraphDef__text_string = ''
  358.         keys = self._ParagraphDef__att_val_dict.keys()
  359.         if 'font-style' in keys:
  360.             self._ParagraphDef__write_obj.write('mi<mk<font-end__\n')
  361.         
  362.         if 'caps' in keys:
  363.             self._ParagraphDef__write_obj.write('mi<mk<caps-end__\n')
  364.         
  365.  
  366.     
  367.     def __get_num_of_style(self):
  368.         my_string = ''
  369.         new_style = 0
  370.         ignore_values = [
  371.             'style-num',
  372.             'nest-level',
  373.             'in-table']
  374.         keys = self._ParagraphDef__att_val_dict.keys()
  375.         keys.sort()
  376.         for key in keys:
  377.             if key in ignore_values:
  378.                 continue
  379.             
  380.             my_string += '%s:%s' % (key, self._ParagraphDef__att_val_dict[key])
  381.         
  382.         if my_string in self._ParagraphDef__style_num_strings:
  383.             num = self._ParagraphDef__style_num_strings.index(my_string)
  384.             num += 1
  385.         else:
  386.             self._ParagraphDef__style_num_strings.append(my_string)
  387.             num = len(self._ParagraphDef__style_num_strings)
  388.             new_style = 1
  389.         num = '%04d' % num
  390.         self._ParagraphDef__att_val_dict['style-num'] = 's' + str(num)
  391.         if new_style:
  392.             self._ParagraphDef__write_body_styles()
  393.         
  394.  
  395.     
  396.     def __write_body_styles(self):
  397.         style_string = ''
  398.         style_string += 'mi<tg<empty-att_<paragraph-style-in-body'
  399.         style_string += '<name>%s' % self._ParagraphDef__att_val_dict['name']
  400.         style_string += '<style-number>%s' % self._ParagraphDef__att_val_dict['style-num']
  401.         tabs_list = [
  402.             'tabs-left',
  403.             'tabs-right',
  404.             'tabs-decimal',
  405.             'tabs-center',
  406.             'tabs-bar',
  407.             'tabs']
  408.         if self._ParagraphDef__att_val_dict['tabs'] != '':
  409.             the_value = self._ParagraphDef__att_val_dict['tabs']
  410.             style_string += '<%s>%s' % ('tabs', the_value)
  411.         
  412.         keys = self._ParagraphDef__att_val_dict.keys()
  413.         keys.sort()
  414.         for key in keys:
  415.             if key != 'name' and key != 'style-num' and key != 'in-table' and key not in tabs_list:
  416.                 style_string += '<%s>%s' % (key, self._ParagraphDef__att_val_dict[key])
  417.                 continue
  418.         
  419.         style_string += '\n'
  420.         self._ParagraphDef__body_style_strings.append(style_string)
  421.  
  422.     
  423.     def __write_para_def_beg(self):
  424.         self._ParagraphDef__get_num_of_style()
  425.         table = self._ParagraphDef__att_val_dict.get('in-table')
  426.         if table:
  427.             self._ParagraphDef__write_obj.write('mi<mk<in-table__\n')
  428.         else:
  429.             self._ParagraphDef__write_obj.write('mi<mk<not-in-tbl\n')
  430.         left_indent = self._ParagraphDef__att_val_dict.get('left-indent')
  431.         if left_indent:
  432.             self._ParagraphDef__write_obj.write('mi<mk<left_inden<%s\n' % left_indent)
  433.         
  434.         is_list = self._ParagraphDef__att_val_dict.get('list-id')
  435.         if is_list:
  436.             self._ParagraphDef__write_obj.write('mi<mk<list-id___<%s\n' % is_list)
  437.         else:
  438.             self._ParagraphDef__write_obj.write('mi<mk<no-list___\n')
  439.         self._ParagraphDef__write_obj.write('mi<mk<style-name<%s\n' % self._ParagraphDef__att_val_dict['name'])
  440.         self._ParagraphDef__write_obj.write(self._ParagraphDef__start_marker)
  441.         self._ParagraphDef__write_obj.write('mi<tg<open-att__<paragraph-definition')
  442.         self._ParagraphDef__write_obj.write('<name>%s' % self._ParagraphDef__att_val_dict['name'])
  443.         self._ParagraphDef__write_obj.write('<style-number>%s' % self._ParagraphDef__att_val_dict['style-num'])
  444.         tabs_list = [
  445.             'tabs-left',
  446.             'tabs-right',
  447.             'tabs-decimal',
  448.             'tabs-center',
  449.             'tabs-bar',
  450.             'tabs']
  451.         if self._ParagraphDef__att_val_dict['tabs'] != '':
  452.             the_value = self._ParagraphDef__att_val_dict['tabs']
  453.             self._ParagraphDef__write_obj.write('<%s>%s' % ('tabs', the_value))
  454.         
  455.         keys = self._ParagraphDef__att_val_dict.keys()
  456.         keys.sort()
  457.         for key in keys:
  458.             if key != 'name' and key != 'style-num' and key != 'in-table' and key not in tabs_list:
  459.                 self._ParagraphDef__write_obj.write('<%s>%s' % (key, self._ParagraphDef__att_val_dict[key]))
  460.                 continue
  461.         
  462.         self._ParagraphDef__write_obj.write('\n')
  463.         self._ParagraphDef__write_obj.write(self._ParagraphDef__start2_marker)
  464.         if 'font-style' in keys:
  465.             face = self._ParagraphDef__att_val_dict['font-style']
  466.             self._ParagraphDef__write_obj.write('mi<mk<font______<%s\n' % face)
  467.         
  468.         if 'caps' in keys:
  469.             value = self._ParagraphDef__att_val_dict['caps']
  470.             self._ParagraphDef__write_obj.write('mi<mk<caps______<%s\n' % value)
  471.         
  472.  
  473.     
  474.     def __empty_table_element_func(self, line):
  475.         self._ParagraphDef__write_obj.write('mi<mk<in-table__\n')
  476.         self._ParagraphDef__write_obj.write(line)
  477.         self._ParagraphDef__state = 'after_para_def'
  478.  
  479.     
  480.     def __reset_dict(self):
  481.         self._ParagraphDef__att_val_dict.clear()
  482.         self._ParagraphDef__att_val_dict['name'] = 'Normal'
  483.         self._ParagraphDef__att_val_dict['font-style'] = self._ParagraphDef__default_font
  484.         self._ParagraphDef__tab_type = 'left'
  485.         self._ParagraphDef__att_val_dict['tabs-left'] = ''
  486.         self._ParagraphDef__att_val_dict['tabs-right'] = ''
  487.         self._ParagraphDef__att_val_dict['tabs-center'] = ''
  488.         self._ParagraphDef__att_val_dict['tabs-decimal'] = ''
  489.         self._ParagraphDef__att_val_dict['tabs-bar'] = ''
  490.         self._ParagraphDef__att_val_dict['tabs'] = ''
  491.  
  492.     
  493.     def make_paragraph_def(self):
  494.         self._ParagraphDef__initiate_values()
  495.         read_obj = open(self._ParagraphDef__file, 'r')
  496.         self._ParagraphDef__write_obj = open(self._ParagraphDef__write_to, 'w')
  497.         line_to_read = 1
  498.         while line_to_read:
  499.             line_to_read = read_obj.readline()
  500.             line = line_to_read
  501.             self._ParagraphDef__token_info = line[:16]
  502.             action = self._ParagraphDef__state_dict.get(self._ParagraphDef__state)
  503.             if action == None:
  504.                 sys.stderr.write('no no matching state in module sections.py\n')
  505.                 sys.stderr.write(self._ParagraphDef__state + '\n')
  506.             
  507.             action(line)
  508.         read_obj.close()
  509.         self._ParagraphDef__write_obj.close()
  510.         copy_obj = copy.Copy(bug_handler = self._ParagraphDef__bug_handler)
  511.         if self._ParagraphDef__copy:
  512.             copy_obj.copy_file(self._ParagraphDef__write_to, 'paragraphs_def.data')
  513.         
  514.         copy_obj.rename(self._ParagraphDef__write_to, self._ParagraphDef__file)
  515.         os.remove(self._ParagraphDef__write_to)
  516.         return self._ParagraphDef__body_style_strings
  517.  
  518.  
  519.