2 ## $Id: abstfilter.py,v 1.1.1.1 2003/07/01 23:28:27 euske Exp $
4 ## abstfilter.py - A framework for cascade filters.
10 class AbstractFeeder(object):
12 def __init__(self, next_filter):
13 self.next_filter = next_filter
16 def feed_next(self, s):
17 self.next_filter.feed(s)
21 self.next_filter.close()
27 class AbstractFilter(object):
29 def __init__(self, next_filter):
30 self.next_filter = next_filter
34 raise NotImplementedError
37 self.feed_next(self.process(s))
40 def feed_next(self, s):
41 self.next_filter.feed(s)
45 self.next_filter.close()
51 class AbstractConsumer(object):
57 raise NotImplementedError
65 class FileGenerator(AbstractFeeder):
66 def __init__(self, next_type):
67 next_filter = next_type(self)
68 AbstractFeeder.__init__(self, next_filter)
73 self.results.append(s)
79 def pullopen(self, f):
85 for s in self.results:
88 for s in self.results: