async def main(): to_ch = chan(5, xf.take(5)) from_ch = c.to_chan(range(20)) c.pipeline(5, to_ch, xf.identity, from_ch, mode=mode) await asyncio.sleep(0.1) self.assertEqual(await a_list(to_ch), [0, 1, 2, 3, 4]) self.assertTrue(len(await a_list(from_ch)) > 5)
async def main(): to_ch = chan(2) c.pipeline(1, to_ch, xf.map(f), c.to_chan([1, 2]), ex_handler=ex_handler, mode=mode) self.assertEqual(await a_list(to_ch), ['ex_handler value', '2'])
async def main(): to_ch = chan(5) c.pipeline(5, to_ch, xf.map(str), c.to_chan(range(5)), close=False, mode=mode) for i in range(5): self.assertEqual(await to_ch.get(), str(i)) self.assertIs(await to_ch.put('success'), True) to_ch.close() self.assertEqual(await to_ch.get(), 'success') self.assertIs(await to_ch.get(), None)
async def main(): to_ch = chan(5) finished_ch = c.pipeline(5, to_ch, xf.map(str), c.to_chan(range(5)), mode=mode, chunksize=2) self.assertIs(await finished_ch.get(), None) self.assertEqual(await a_list(to_ch), ['0', '1', '2', '3', '4'])
async def main(): xform = xf.map(f) start_time = time.time() to_ch = chan(5) finished_ch = c.pipeline(5, to_ch, xform, c.to_chan(range(5)), mode=mode) self.assertIs(await finished_ch.get(), None) elapsed_time = time.time() - start_time self.assertTrue(0.1 < elapsed_time < 0.3) self.assertEqual(await a_list(to_ch), ['0', '1', '2', '3', '4'])
def test_invalid_mode(self): with self.assertRaises(ValueError): c.pipeline(1, chan(), xf.identity, chan(), mode='invalid')