Skip to main content

aiopools

中文版

AIOPools is a Python AsyncIO Semaphore wrapper for building AsyncIO coroutine pools. ThreadPoolExecutor (thread pool) and ProcessPoolExecutor (process pool) similar to concurrent.futures, designed to enable Python code to achieve the highest number of concurrency.

installation method

Environmental requirements: Python 3.8 and above

  1. Enter the command window, create a virtual environment, and enter the following commands in sequence

Linux and macOS:

python3 -m venv venv # Create a virtual environment
.venv/bin/activate # Activate the virtual environment

Windows:

python -m venv venv # Create a virtual environment
venv\Scripts\activate # activate the virtual environment
  1. Install AIOPools, enter in sequence
pip install --upgrade pip
pip install aiopools

Link

Minimal example

'''
     The total number of coroutine tasks in this example is 100. If the maximum allowed number of coroutines maxio is set to 20, it needs to run 5 times to complete.
'''

import asyncio
from aiopools import AsyncPool


async def block_io(i):
     await asyncio. sleep(1)
     print(i)
     return i


async def main():
     # Set the maximum number of coroutines allowed maxio
     async with AsyncPool(maxio=20) as pool:
         tasks = [pool. create_task(block_io(i)) for i in range(100)]
    
     response = await asyncio. gather(*tasks)
     print(response)
    

if __name__ == '__main__':
     asyncio. run(main())

中文版

AIOPools 是 Python AsyncIO Semaphore 的包装器,用于构建 AsyncIO 协程池。类似于 concurrent.futures 的 ThreadPoolExecutor (线程池) 和 ProcessPoolExecutor (进程池),旨在使 Python 代码达到最高并发数。

安装方法

环境要求:Python 3.8 及以上

1.进入命令窗口,创建虚拟环境,依次输入以下命令

Linux 和 macOS:

python3 -m venv venv # 创建虚拟环境
. venv/bin/activate # 激活虚拟环境

Windows:

python -m venv venv # 创建虚拟环境
venv\Scripts\activate # 激活虚拟环境

2.安装 AIOPools,依次输入

pip install --upgrade pip
pip install aiopools

链接

最简示例

'''
    该示例的协程任务数总计 100 个,设置最大允许的协程数 maxio 为 20,则需要运行 5 次才能完成。
'''

import asyncio
from aiopools import AsyncPool


async def block_io(i):
    await asyncio.sleep(1)
    print(i)
    return i


async def main():
    # 设置最大允许的协程数 maxio
    async with AsyncPool(maxio=20) as pool:
        tasks = [pool.create_task(block_io(i)) for i in range(100)]
    
    response = await asyncio.gather(*tasks)
    print(response)
    

if __name__ == '__main__':
    asyncio.run(main())

Metadata

Release files for AIOPools 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AIOPools 0.1.0
File Size Uploaded
AIOPools-0.1.0.tar.gz 3.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for AIOPools 0.1.0
File Interpreter ABI Platform
AIOPools-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.1 kB

Release files / AIOPools-0.1.0.tar.gz

Download URL AIOPools-0.1.0.tar.gz
Size 3.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a1dec2eb1594fdc98680cedd9f9d94d9724c331c056d7daec2111c969443c08e
BLAKE2b-256 checksum
How to use checksums
2c62e93d80eb5e77841bc8fadb56492507898ee6d113375039a4cba47f2b93e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.12

Release files / AIOPools-0.1.0-py3-none-any.whl

Download URL AIOPools-0.1.0-py3-none-any.whl
Size 4.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1edebbfc37f0d3e544b240fab1db45a8f91ab2c94daf74ecc27252f708fa7d4a
BLAKE2b-256 checksum
How to use checksums
9b2e9d5b5a2c4985058c2b6fe16535894ebd88a52238fe85b4bead14ac776794
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page