# pylint: disable=missing-docstring,too-few-public-methods,unused-variable,unnecessary-comprehension import asyncio class AIter: async def __aiter__(self): for value in range(20): yield value async def to_list(self): values = [m async for m in self] other_values = [m for m in self] # [not-an-iterable] for value in self: # [not-an-iterable] yield value async for value in self: yield value async def some_iter_func(number): """ emits 1 number per second """ for i in range(1, number): yield i await asyncio.sleep(1) async def count_to(number): """ counts to n in async manner""" async for i in some_iter_func(number): print(i) async def gen_values(num_values): for value in range(num_values): yield value async def do_some_comprehensions(): sets = {elem async for elem in gen_values(10)} lists = [elem async for elem in gen_values(10)] dicts = {elem: elem async for elem in gen_values(10)} gen = (elem async for elem in gen_values(10)) return sets, lists, dicts, gen