1.1 --- a/iixr/files.py Thu Sep 17 21:35:30 2009 +0200
1.2 +++ b/iixr/files.py Fri Sep 18 01:06:55 2009 +0200
1.3 @@ -38,24 +38,11 @@
1.4 pass
1.5
1.6 def rewind(self):
1.7 - self.seek(0)
1.8 + self.f.seek(0)
1.9 self.reset()
1.10
1.11 - def seek(self, offset):
1.12 -
1.13 - "To be defined by readers."
1.14 -
1.15 - pass
1.16 -
1.17 - def flush(self):
1.18 -
1.19 - "To be defined by writers."
1.20 -
1.21 - pass
1.22 -
1.23 def close(self):
1.24 if self.f is not None:
1.25 - self.flush()
1.26 self.f.close()
1.27 self.f = None
1.28
1.29 @@ -70,7 +57,7 @@
1.30
1.31 "Write 'number' to the file using a variable length encoding."
1.32
1.33 - self.write(vint(number))
1.34 + self.f.write(vint(number))
1.35
1.36 def write_string(self, s, compress=0):
1.37
1.38 @@ -103,15 +90,7 @@
1.39 # Write the length of the data before the data itself.
1.40
1.41 length = len(s)
1.42 - self.write(flag + vint(length) + s)
1.43 -
1.44 - # Cache-affected methods.
1.45 -
1.46 - def write(self, s):
1.47 - self.f.write(s)
1.48 -
1.49 - def tell(self):
1.50 - return self.f.tell()
1.51 + self.f.write("".join([flag, vint(length), s]))
1.52
1.53 class FileReader(File):
1.54
1.55 @@ -128,7 +107,7 @@
1.56
1.57 shift = 0
1.58 number = 0
1.59 - read = self.read
1.60 + read = self.f.read
1.61
1.62 try:
1.63 csd = ord(read(1))
1.64 @@ -150,15 +129,17 @@
1.65 'decompress' is set to a true value.
1.66 """
1.67
1.68 + read = self.f.read
1.69 +
1.70 # Decompress the data if requested.
1.71
1.72 if decompress:
1.73 - flag = self.read(1)
1.74 + flag = read(1)
1.75 else:
1.76 flag = "-"
1.77
1.78 length = self.read_number()
1.79 - s = self.read(length)
1.80 + s = read(length)
1.81
1.82 # Perform decompression if applicable.
1.83
1.84 @@ -169,17 +150,6 @@
1.85
1.86 return unicode(s, "utf-8")
1.87
1.88 - # Cache-affected methods.
1.89 -
1.90 - def read(self, n):
1.91 - return self.f.read(n)
1.92 -
1.93 - def tell(self):
1.94 - return self.f.tell()
1.95 -
1.96 - def seek(self, offset):
1.97 - self.f.seek(offset)
1.98 -
1.99 class FileOpener:
1.100
1.101 "Opening files using their filenames."