1: #line 162 "source_drivers.ipk"
2:
3:
4: from interscript.drivers.sources import source_open_error
5: from interscript.drivers.sources.base import file_source
6: from interscript.drivers.sources.base import eof
7: import string
8: import os
9:
10:
11:
12:
13: def loadfile(filename):
14: "return a list of lines, trailing whitespace removed"
15: try:
16: f = open(filename)
17: except:
18: raise source_open_error,filename
19: data = f.readlines()
20: f.close()
21: for i in range(len(data)):
22: data[i]=string.rstrip(data[i])
23: return data
24:
25: def parse_source_filename(filename, prefix):
26: pathlist = string.split(filename,'/')
27: if prefix == '':
28: prefix = os.getcwd()
29: if prefix[-1] != os.sep:
30: prefix = prefix + os.sep
31: directory = prefix + string.join(pathlist[:-1],os.sep)
32: if directory[-1] != os.sep:
33: directory = directory + os.sep
34: basename = pathlist[-1]
35: full_filename = directory + basename
36: return pathlist, basename, directory, full_filename
37:
38: class named_file_source(file_source):
39: def __init__(self,pass_frame,filename, prefix='', **kwds):
40: apply(file_source.__init__,(self,), kwds)
41: pass_frame.iflist.append(filename)
42: self.name = filename
43:
44: pathlist, self.basename, self.directory, self.filename =\
45: parse_source_filename(filename, prefix)
46:
47: try:
48: self.file = open(self.filename,'r')
49: self.closed = 0
50: except:
51: raise source_open_error,filename
52:
53: