6.3.1.2.2. Source Base Class

Interscript source drivers provide all the facilities required of standard python file objects opened for input.
Start python section to interscript/drivers/sources/base.py[2 /2 ] Prev
     5: #line 88 "source_drivers.ipk"
     6: #---------------------------------------------------------
     7: # source base
     8: import string
     9: class source:
    10:   __class_protocols__ = ['file','source']
    11:   def __init__(self, **kwds):
    12:     self.lines_read = 0
    13:     self.mode = 'r'
    14:     for k in kwds.keys():
    15:       self.__dict__[k]=kwds[k]
    16:     self.closed = 1
    17: 
    18:   def get_source_name(self):
    19:     return self.name
    20: 
    21:   def get_lines_read(self):
    22:     return self.lines_read
    23: 
    24:   def raw_readlines(self):
    25:     if self.closed: raise eof
    26:     lines = []
    27:     try:
    28:       while 1: lines.append(self.raw_readline())
    29:     except eof:
    30:       pass
    31:     return lines
    32: 
    33:   def readline(self, sizehint=None):
    34:     return self.raw_readline()+'\n'
    35: 
    36:   def read(self, sizehint=None):
    37:     return string.join(self.raw_readlines())+'\n'
    38: 
    39:   def readlines(self, sizehint=None):
    40:     x = []
    41:     for line in self.raw_readlines():
    42:       x.append(line+'\n')
    43:     return x
    44: 
    45:   def isatty(self):
    46:     return 0
    47: 
    48:   def close(self):
    49:     if not self.closed:
    50:       self._close()
    51:       self.closed = 1
    52: 
    53:   def _close(self): pass
    54:   def flush(self): pass
    55:   def __del__(self): self.close()
    56: 
    57: class file_source(source):
    58:   def __init__(self, *args, **kwds):
    59:     apply(source.__init__, (self,)+args, kwds)
    60: 
    61:   def _close(self):
    62:     self.file.close()
    63: 
    64:   def raw_readline(self):
    65:     if self.closed: raise eof
    66:     line = self.file.readline()
    67:     if len(line)==0: raise eof
    68:     self.lines_read = self.lines_read + 1
    69:     return string.rstrip(line)
    70: 
    71:   def get_filename(self):
    72:     return self.name
    73: 
End python section to interscript/drivers/sources/base.py[2]