1 import compression
2
4 """Handle for a record (use 'text' to get the record's text)"""
5 - def __init__(self, namespace, name, filename, startpos, length):
12 return "Location(namespace = %r, name = %r, filename = %r, startpos = %r, length = %r)" % (self.namespace, self.name, self.filename, self.startpos, self.length)
14 return "Location(%s:%s at %s: %s, %s)" % \
15 (self.namespace, self.name,
16 self.filename,self.startpos, self.length)
18 if key == "text":
19 infile = compression.open_file(self.filename)
20 if hasattr(infile, "seek"):
21 infile.seek(self.startpos)
22 return infile.read(self.length)
23
24 CHUNKSIZE = 1000000
25 count = 0
26 while count + CHUNKSIZE < self.startpos:
27 infile.read(CHUNKSIZE)
28 count += CHUNKSIZE
29 infile.read(self.startpos - count)
30 return infile.read(self.length)
31 elif key == "__members__":
32 return ["text"]
33 raise AttributeError(key)
34