5: #line 88 "source_drivers.ipk"
6:
7:
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: