1.1 --- a/tests/start_indexer.py Tue Sep 27 17:26:44 2005 +0000
1.2 +++ b/tests/start_indexer.py Tue Sep 27 17:28:25 2005 +0000
1.3 @@ -1,22 +1,22 @@
1.4 #!/usr/bin/env python
1.5
1.6 from parallel import start, Exchange
1.7 -from Dict import Indexer, Searcher, update
1.8 +from Dict import Indexer, Searcher, Parser
1.9
1.10 -def apply_indexer(channel, filename):
1.11 - print "Indexing", filename
1.12 - indexer = Indexer(filename)
1.13 - channel.send(indexer.get_index())
1.14 +def apply_parser(channel, filename):
1.15 + print "Parsing", filename
1.16 + parser = Parser(filename)
1.17 + parser.send_entries(channel)
1.18
1.19 def get_searcher(filenames, window_size):
1.20 - master_index = {}
1.21 + master_index = Indexer()
1.22
1.23 # Start indexing.
1.24
1.25 for i in range(0, len(filenames), window_size):
1.26 channels = []
1.27 for filename in filenames[i:i + window_size]:
1.28 - channels.append(start(apply_indexer, filename))
1.29 + channels.append(start(apply_parser, filename))
1.30
1.31 # Start listening for responses.
1.32
1.33 @@ -24,19 +24,18 @@
1.34 while exchange.active():
1.35 print "Waiting for %d channels..." % exchange.active()
1.36 for channel in exchange.ready():
1.37 - index = channel.receive()
1.38 - update(master_index, index)
1.39 - exchange.remove(channel)
1.40 - channel.close()
1.41 + entry = channel.receive()
1.42 + master_index.add_entry(entry)
1.43
1.44 # Provide a search interface.
1.45
1.46 - return Searcher(master_index)
1.47 + return Searcher(master_index.get_index())
1.48
1.49 if __name__ == "__main__":
1.50 import sys, os
1.51 window_size, directory = int(sys.argv[1]), sys.argv[2]
1.52 filenames = [os.path.join(directory, filename) for filename in os.listdir(directory)]
1.53 + filenames = [filename for filename in filenames if os.path.isfile(filename)]
1.54
1.55 searcher = get_searcher(filenames, window_size)
1.56 while 1: