Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

asyncio-executor

Project description

Desc

Asyncio executor for running coroutines. This code is from <https://gist.github.com/seglberg/0b4487b57b4fd425c56ad72aba9971be>

keywords:asyncio,executor

Feature

  • run coroutines asynchronously

Example

  • run coroutines by using submit
from concurrent.futures import as_completed
import aiohttp
from asyncio_executor import AsyncioExecutor

async def httpget(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            html = await resp.text("utf-8")
    return len(html)

with AsyncioExecutor() as executor:
    to_do = []
    urls = ["https://github.com/","https://docs.aiohttp.org/"]
    for i in urls:
        job = executor.submit(httpget,i)
        to_do.append(job)

    for future in as_completed(to_do):
        res = future.result()
  • run coroutines by using map
from concurrent.futures import as_completed
import aiohttp
from asyncio_executor import AsyncioExecutor

async def httpget(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            html = await resp.text("utf-8")
    return len(html)

with AsyncioExecutor() as executor:
    result = []
    urls = ["https://github.com/", "https://docs.aiohttp.org/"]
    for i in executor.map(httpget, urls):
        result.append(i)
  • run functions by using submit
from concurrent.futures import as_completed
import requests as rq
from asyncio_executor import AsyncioExecutor

def httpsync(url):
    req = rq.get(url)
    return len(req.text)

with AsyncioExecutor() as executor:
    to_do = []
    urls = ["https://github.com/", "https://docs.aiohttp.org/"]
    for i in urls:
        job = executor.submit(httpsync, i)
        to_do.append(job)

    for future in as_completed(to_do):
        res = future.result()
        print(res)
  • run functions by using map
from concurrent.futures import as_completed
import requests as rq
from asyncio_executor import AsyncioExecutor

def httpsync(url):
    req = rq.get(url)
    return len(req.text)

with AsyncioExecutor() as executor:

    result = []
    urls = ["https://github.com/", "https://docs.aiohttp.org/"]
    for i in executor.map(httpsync, urls):
        result.append(i)
print(result)

Install

  • python -m pip install asyncio-executor

Limitations

  • only support python 3.5+

Project details


Release history Release notifications

This version
History Node

0.0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
asyncio_executor-0.0.3-py3-none-any.whl (6.2 kB) Copy SHA256 hash SHA256 Wheel 3.6 Jan 24, 2018
asyncio-executor-0.0.3.tar.gz (5.0 kB) Copy SHA256 hash SHA256 Source None Jan 24, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page