예제 #1
0
 def get_values(self, **kwargs):
     self.enumerated = True
     cost = self.cond_stream.function(*unwrap_inputs(self.inputs))
     assert isinstance(cost, numbers.Number) and (0 <= cost)
     cost = int(self.cond_stream.scale * cost)
     return map(lambda f: Initialize(f, cost),
                self.cond_stream.instantiate_effects(self.inputs, []))
예제 #2
0
 def __init__(self, cond_stream, inputs):
     Stream.__init__(self, cond_stream, inputs)
     self.generator = self.cond_stream.generator_fn(
         *unwrap_inputs(self.inputs))
예제 #3
0
 def function(self, inputs):
     output_list = self.cond_stream.function(*unwrap_inputs(inputs))
     assert type(output_list) in (list, tuple)
     return [self.wrap_outputs(outputs) for outputs in output_list]
예제 #4
0
 def function(self, inputs):
     outputs = self.cond_stream.function(*unwrap_inputs(inputs))
     if outputs is None:
         return []
     return [self.wrap_outputs(outputs)]
예제 #5
0
 def test(self, inputs):
     truth = self.cond_stream.test(*unwrap_inputs(inputs))
     if truth not in (True, False):
         raise ValueError(
             'Expected boolean test output but received %s' % truth)
     return truth
예제 #6
0
 def get_generator(self, inputs):
     for output_list in self.cond_stream.generator(
             *unwrap_inputs(inputs)):
         assert type(output_list) in (list, tuple)
         yield [self.wrap_outputs(outputs) for outputs in output_list]
예제 #7
0
 def get_generator(self, inputs):
     for outputs in self.cond_stream.generator(*unwrap_inputs(inputs)):
         yield [] if outputs is None else [self.wrap_outputs(outputs)]