189 def connect(self, connections):
190 """Connect filter to ChainStep (and all its sequences) through these connections (which are sets of filter outputs)
191 if a ChainStep contains the same sequence multiple times (for multi-leg chains),
192 the filter is connected only once (to avoid multiple DH links)
193 """
194 if log.isEnabledFor(logging.DEBUG):
195 log.debug("CFGroup: connect Filter %s with %d menuSequences of step %s, using %d connections", self.sequenceCA.filterNode.Alg.name, len(self.sequenceCA.step.sequences), self.sequenceCA.step.name, len(connections))
196 log.debug(" --- sequences: ")
197 for seq in self.sequenceCA.step.sequences:
198 log.debug(seq)
199
200 if len(connections) == 0:
201 log.error("No filter outputs are set!")
202
203 if len(self.sequenceCA.step.sequences):
204
205 if len(connections) != len(self.sequenceCA.step.sequences):
206 log.error("CFGroup: Found %d connections and %d MenuSequences in Step %s", len(connections), len(self.sequenceCA.step.sequences), self.sequenceCA.step.name)
207 raise Exception("[CFGroup] Connections and sequences do not match, this must be fixed!")
208
209 for nseq, seq in enumerate(self.sequenceCA.step.sequences):
210 filter_out = connections[nseq]
211 log.debug("CFGroup: Found input %s to sequence::%s from Filter::%s", filter_out, seq.name, self.sequenceCA.filterNode.Alg.name)
212 seq.connectToFilter( filter_out )
213 else:
214 log.debug("This CFGroup has no sequences: outputs are the Filter outputs, which are %d", len(self.sequenceCA.decisions))
215