6.23.10.1.1. Post user methods

This bit is very hacky! We grab bound methods from input frame and put them in the user dictionary.
Comienzo python section to interscript/frames/inputf.py[3 /41 ] Siguiente Previo Primero Ăšltimo
    96: #line 140 "input_frame.ipk"
    97:   def post_methods(self):
    98:     # input frame methods
    99:     self.userdict.update(self.process.global_frame.__dict__)
   100:     method_names = self.__class__.__dict__.keys()
   101:     is_begin_or_end_method = lambda x: x[:3]=='end' or x[:5]=='begin'
   102:     method_names = filter(is_begin_or_end_method, method_names)
   103:     method_names = method_names + [
   104:       'head','heading','push_head','pop_head','set_head',
   105:       'line_break','page_break',
   106:       'set_warning_character',
   107:       'doc','p','eop','cite_url',
   108:       'data_output','c_output','cpp_output',
   109:       'python_output','perl_output',
   110:       'interscript_output',
   111:       'tangler',
   112:       'push','pop','select','comment','resume_code',
   113:       'tangler_push','tangler_pop','tangler_set', # temporarily!
   114:       'get_tangler',
   115:       'untangle',
   116:       'weave','weave_line','tangle',
   117:       'print_identifier_cross_reference',
   118:       'print_contents',
   119:       'print_file_list',
   120:       'print_source_list',
   121:       'print_include_list',
   122:       'print_class_reference',
   123:       'print_file_status',
   124:       'get_weaver',
   125:       'raw_if','enable','enable_if','disable',
   126:       'get_input_frame',
   127:       'table_row', 'table_rule',
   128:       'begin_table_row','end_table_row',
   129:       'begin_table_cell','end_table_cell',
   130:       'item',
   131:       'include_file','include_source',
   132:       'include_code','insert_code','display_code',
   133:       'sink_verbatim','expand','define',
   134:       'include_html','html',
   135:       'capture_output','print_output',
   136:       'capture_python_output','print_python_output',
   137:       'print_python_test_output',
   138:       'set_weaver','get_weaver', 'push_weaver','pop_weaver',
   139:       'get_attribute',
   140:       'interscript_from_options',
   141:       'test_interscript',
   142:       'python','test_python',
   143:       'register_test','set_test_result',
   144:       'set_anchor','ref_anchor',
   145:       'post_notice',
   146:       'skip_upto','skip_upto_if',
   147:       'set_encoding','get_encoding'
   148:       ]
   149:     for m in method_names:
   150:       exec 'self.userdict[m]=self.'+m
   151: 
   152:     # pass frame methods
   153:     method_names = [
   154:       'get_pass_frame'
   155:     ]
   156:     for m in method_names:
   157:       exec 'self.userdict[m]=self.pass_frame.'+m
   158: 
   159:     # processs frame methods
   160:     method_names = ['get_process_frame']
   161:     for m in method_names:
   162:       exec 'self.userdict[m]=self.process.'+m
   163: 
   164:     #master frame methods
   165:     method_names = [
   166:       'get_master_frame',
   167:       'set_title', 'get_title',
   168:       'add_author',
   169:       'set_native_language','get_native_language',
   170:       'set_document_data', 'get_document_data']
   171:     for m in method_names:
   172:       exec 'self.userdict[m]=self.master.'+m
   173: 
   174:     #functions (non methods)
   175:     # NOTE: most functions are made available thru the global frame!
   176:     function_names = []
   177:     for f in function_names:
   178:       exec 'self.userdict[f]='+f
   179: 
End python section to interscript/frames/inputf.py[3]