async-iterator¶
Cách đơn giản để sử dụng async iterator mà không cần quan tâm về TaskGroup của asyncio.
Tài Liệu: https://async-iterator.lpthong90.dev
Mã Nguồn: https://github.com/lpthong90/async-iterator
Thư viện giúp cho việc sử dụng async iterator mà không cần quan tâm về TaskGroup của asyncio.
Cài Đặt¶
$ pip install async-iterator
---> 100%
Successfully installed async-iterator
Cách Dùng¶
import asyncio
import time
from async_iterator import aiter, siter
inputs = [1, 2, 3]
async def afunc(it: int) -> int:
await asyncio.sleep(2)
return it + 1
def sfunc(it: int) -> int:
time.sleep(2)
return it + 1
async def amain():
return await aiter(afunc)(inputs)
def smain():
return siter(sfunc)(inputs)
if __name__ == "__main__":
format = "%Y-%m-%d %H:%M:%S"
print(time.strftime(format))
print("async", asyncio.run(amain())) # it takes ~2 seconds
print(time.strftime(format))
print("sync", smain()) # it takes ~6 seconds
print(time.strftime(format))
Kết quả
2024-01-06 00:58:54
async [2, 3, 4]
2024-01-06 00:58:56
sync [2, 3, 4]
2024-01-06 00:59:02
License¶
Dự án được cấp license là MIT license.