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.
6 ## from http://www.unixuser.org/~euske/python/index.html:
7 ## The following files are in public domain except where otherwise noted. THESE FILES COME WITH ABSOLUTELY NO WARRANTY.
12 class AbstractFeeder(object):
14 def __init__(self, next_filter):
15 self.next_filter = next_filter
18 def feed_next(self, s):
19 self.next_filter.feed(s)
23 self.next_filter.close()
29 class AbstractFilter(object):
31 def __init__(self, next_filter):
32 self.next_filter = next_filter
36 raise NotImplementedError
39 self.feed_next(self.process(s))
42 def feed_next(self, s):
43 self.next_filter.feed(s)
47 self.next_filter.close()
53 class AbstractConsumer(object):
59 raise NotImplementedError
67 class FileGenerator(AbstractFeeder):
68 def __init__(self, next_type):
69 next_filter = next_type(self)
70 AbstractFeeder.__init__(self, next_filter)
75 self.results.append(s)
81 def pullopen(self, f):
87 for s in self.results:
90 for s in self.results: