6.19.9.1. Construct input object

We construct an disk source driver by taking the first command line argument as a disk file name. We construct an input frame, and attach the source driver to it.
Start python section to interscript/frames/passf.py[2 /2 ] Prev First
    50: #line 80 "pass_frame.ipk"
    51: 
    52:     basename = file
    53:     if string.find(file,'.') != -1:
    54:       basename = string.join(string.split(file,'.')[:-1],'.')
    55: 
    56:     weaver = auto_weaver(self, basename, self.autoweave, master.title)
    57:     userdict = { }
    58: 
    59:     try:
    60:       input_file =named_file_source(self,file, self.master.source_prefix, encoding = encoding)
    61: 
    62:     except source_open_error, filename:
    63:       print 'Cannot Open File',filename,'for input (ignored)'
    64:       raise
    65:     except KeyboardError:
    66:       raise
    67:     except:
    68:       print "Program error opening",file
    69:       traceback.print_exc()
    70:       raise
    71: 
    72:     self.include_files.append((1,'interscript',file))
    73:     inpt = input_frame(
    74:       self,
    75:       input_file,
    76:       [],
    77:       weaver,
    78:       userdict,
    79:       1)
    80:     del input_file
    81:     del weaver
    82:     del userdict
    83: 
    84:     inpt.set_warning_character(python='@')
    85:     if 'input' in self.process.trace:
    86:       print 'input from',inpt.source.get_source_name()
    87: 
    88:     inpt.file_pass()
    89:     # at this point, inpt, weaver, userdict, input_file
    90:     # should all be released (even if 'pass_frame' is held onto,
    91:     # these symbols are defined in the __init__ function frame)
    92:     del inpt
    93:     try: raise eoi
    94:     except: pass
    95: 
    96:   def __del__(self):
    97:     if 'frames' in self.process.trace:
    98:       print 'Processing of',self.master.filename,'Pass',self.passno+1,'complete'
    99:       self.process.release_object(self)
   100: 
   101:   def get_pass_frame(self):
   102:     "Get the current pass frame"
   103:     return self
   104: 
   105:   def get_new_test_number(self):
   106:     "Get a new test case number"
   107:     self.testno = self.testno + 1
   108:     return self.testno
   109: 
   110:   def get_new_sequence_number(self):
   111:     "Get a new serial number"
   112:     self.sequence = self.sequence + 1
   113:     return self.sequence
   114: 
End python section to interscript/frames/passf.py[2]