1.1 --- a/iixr/terms.py Thu Feb 03 01:26:35 2011 +0100
1.2 +++ b/iixr/terms.py Mon Feb 07 02:05:38 2011 +0100
1.3 @@ -3,7 +3,7 @@
1.4 """
1.5 Specific classes for storing term information.
1.6
1.7 -Copyright (C) 2009, 2010 Paul Boddie <paul@boddie.org.uk>
1.8 +Copyright (C) 2009, 2010, 2011 Paul Boddie <paul@boddie.org.uk>
1.9
1.10 This program is free software; you can redistribute it and/or modify it under
1.11 the terms of the GNU General Public License as published by the Free Software
1.12 @@ -40,6 +40,14 @@
1.13 term information file.
1.14 """
1.15
1.16 + self.begin_record()
1.17 + self._write_term(term, offset, frequency, doc_frequency)
1.18 + self.end_record()
1.19 +
1.20 + def _write_term(self, term, offset, frequency, doc_frequency):
1.21 +
1.22 + "Performs the term writing for 'write_term'."
1.23 +
1.24 if term <= self.last_term:
1.25 raise ValueError, "Term %r precedes the previous term %r." % (term, self.last_term)
1.26
1.27 @@ -79,6 +87,16 @@
1.28 frequency from the term information file.
1.29 """
1.30
1.31 + self.begin_record()
1.32 + try:
1.33 + return self._read_term()
1.34 + finally:
1.35 + self.end_record()
1.36 +
1.37 + def _read_term(self):
1.38 +
1.39 + "Performs the term reading for 'read_term'."
1.40 +
1.41 # Read the prefix length and term suffix.
1.42
1.43 common = self.read_number()
1.44 @@ -127,11 +145,14 @@
1.45 'info_offset' in the term information file.
1.46 """
1.47
1.48 - TermWriter.write_term(self, term, offset, frequency, doc_frequency)
1.49 + self.begin_record()
1.50 + TermWriter._write_term(self, term, offset, frequency, doc_frequency)
1.51
1.52 # Write the information file offset delta.
1.53
1.54 self.write_number(info_offset - self.last_info_offset)
1.55 + self.end_record()
1.56 +
1.57 self.last_info_offset = info_offset
1.58
1.59 class TermIndexReader(TermReader):
1.60 @@ -150,11 +171,13 @@
1.61 index file.
1.62 """
1.63
1.64 - term, offset, frequency, doc_frequency = TermReader.read_term(self)
1.65 + self.begin_record()
1.66 + term, offset, frequency, doc_frequency = TermReader._read_term(self)
1.67
1.68 # Read the offset delta.
1.69
1.70 self.last_info_offset += self.read_number()
1.71 + self.end_record()
1.72
1.73 return term, offset, frequency, doc_frequency, self.last_info_offset
1.74