# HG changeset patch # User Paul Boddie # Date 1290293645 -3600 # Node ID 1cccc03f183e23065a05b0ce35d46bf99a7c6c34 # Parent 4614ef99dbe102f234f6c50ebf2cd05f1e7aed42 Added get_terms convenience methods to the index and term dictionary readers. Introduced safer closure of mergers. diff -r 4614ef99dbe1 -r 1cccc03f183e iixr/index.py --- a/iixr/index.py Sat Nov 20 00:00:01 2010 +0100 +++ b/iixr/index.py Sat Nov 20 23:54:05 2010 +0100 @@ -3,7 +3,7 @@ """ High-level classes. -Copyright (C) 2009 Paul Boddie +Copyright (C) 2009, 2010 Paul Boddie This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -187,6 +187,9 @@ self.dict_reader = get_term_reader(pathname, "merged") self.field_dict_reader = get_field_reader(pathname, "merged") + def get_terms(self): + return self.dict_reader.get_terms() + def find_terms(self, term): return self.dict_reader.find_terms(term) diff -r 4614ef99dbe1 -r 1cccc03f183e iixr/merging.py --- a/iixr/merging.py Sat Nov 20 00:00:01 2010 +0100 +++ b/iixr/merging.py Sat Nov 20 23:54:05 2010 +0100 @@ -3,7 +3,7 @@ """ Dictionary merging classes. -Copyright (C) 2009 Paul Boddie +Copyright (C) 2009, 2010 Paul Boddie This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -31,7 +31,10 @@ def close(self): for reader in self.readers: reader.close() - self.writer.close() + self.readers = [] + if self.writer is not None: + self.writer.close() + self.writer = None class TermDictionaryMerger(Merger): diff -r 4614ef99dbe1 -r 1cccc03f183e iixr/terms.py --- a/iixr/terms.py Sat Nov 20 00:00:01 2010 +0100 +++ b/iixr/terms.py Sat Nov 20 23:54:05 2010 +0100 @@ -332,6 +332,12 @@ # Query methods. + def get_terms(self): + + "Return a list of all terms." + + return self.terms + def find_terms(self, term): "Return all terms whose values start with the value of 'term'."