def __call__(self, time_scale=1): x1 = self.a(1, sleep=1.0 * time_scale, identity=1) x2 = self.a(2, sleep=0.5 * time_scale, identity=2) x3 = self.a(3, sleep=1.5 * time_scale, identity=3) x4 = self.a(4, sleep=2.0 * time_scale, identity=4) f_o = list(finish_order(x1, x2, x3, x4)) return f_o[0] + f_o[1]
def __call__(self, time_scale=1): reduce_f = lambda x, y: self.a( x, y, sleep=1.5 * time_scale, identity='reduce %s %s' % (x, y)) t = map(lambda x: x * time_scale, [0.5, 1.5, 1.0, 6.0, 5.0, 2.0]) map_f = lambda x, sleep: self.a(x, sleep=sleep, identity='map %s' % x) results = finish_order(map(map_f, range(1, 7), t)) v = next(results) for r in results: v = reduce_f(v, r) return v
def __call__(self, time_scale=1): reduce_f = lambda x, y: self.a(x, y, sleep=1.5 * time_scale, identity='reduce %s %s' % (x, y)) t = map(lambda x: x * time_scale, [0.5, 1.5, 1.0, 6.0, 5.0, 2.0]) map_f = lambda x, sleep: self.a(x, sleep=sleep, identity='map %s' % x) results = finish_order(map(map_f, range(1, 7), t)) v = next(results) for r in results: v = reduce_f(v, r) return v
def test_results(self): from flowy import finish_order from flowy.result import result, error, timeout, placeholder r = result(1, 1) t = timeout(2) e = error('err!', 3) p = placeholder() fo = list(finish_order([e, p, r, t])) self.assertEquals(fo[0].__factory__, r.__factory__) self.assertEquals(fo[1].__factory__, t.__factory__) self.assertEquals(fo[2].__factory__, e.__factory__) self.assertEquals(fo[3].__factory__, p.__factory__)
def test_mixed(self): from flowy import finish_order from flowy.result import result, error, timeout, placeholder r = result(1, 1) t = timeout(2) e = error('err!', 3) p = placeholder() fo = list(finish_order([1, e, 2, p, 3, r, t])) self.assertEquals(fo[:3], [1, 2, 3]) self.assertEquals(fo[3].__factory__, r.__factory__) self.assertEquals(fo[4].__factory__, t.__factory__) self.assertEquals(fo[5].__factory__, e.__factory__) self.assertEquals(fo[6].__factory__, p.__factory__)
def test_non_results(self): from flowy import finish_order x = [1, 2, 3, 4, 5, 'a', 'b', 'c'] self.assertEquals(x, list(finish_order(x)))
def test_non_results(self): from flowy import finish_order x = [1, 2, 3, 4, 5, "a", "b", "c"] self.assertEquals(x, list(finish_order(x)))
def __call__(self): a = finish_order([self.task() for _ in range(4)]) return next(a), next(a)