import itertools


class Filter():
    
    filterChain: list = []

    def __init__(self, filter):
        
        self.filterChain.append(filter)

    def getFilterChain(self):
        return self.filterChain

    def getChainYield(self):
        for fy in itertools.product(*[f.getYield() for f in self.filterChain]):
            yield fy
