8000 GitHub - feluxe/aioshim: Asyncio shims for the standard library.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feluxe/aioshim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aioshim

Description

The main purpose of this lib is to provide asyncio compatible versions of the functions in the standard library. E.g. itertools.chain() doesn't work with async_generators, so there is aioshim.itertools.chain() to fill the gap. Etc.

I'm sure the stdlib will catch up with this sooner or later. This lib is for those who need a shim as soon as possible.

This could be a central repo for all such asyncio related shims.

If there is interest, this repo could be maintained by a github aioshim org or something.

Requirements

aioshim requires Python >= 3.6

Install

pip install aioshim

or

pipenv install aioshim

Development

Just clone the repo and run:

pipenv install --dev

This project uses yapf formatter.


Library Documentation

builtins

aenumerate

Async version of: enumerate

Example:

async for i in aenumerate(chain(a_gen, range(10))):
    print(i)

itertools

itertools.chain(*iterables)

Async version of: itertools.chain

This function can handle AsyncGeneratorType.

Example:

# Use with async_generator:
async for i in chain(my_async_gen1, my_async_gen2):
    print(i)

# Allows for mixing normal generators with async generators:
async for i in chain(my_async_gen, range(10)):
    print(i)

itertools.chain_from_iterable(iterable)

Async version of: itertools.chain.from_iterable

This function can handle AsyncGeneratorType.

Example:

# Use with async_generator:
async for i in chain_from_iterable(my_async_generator):
    print(i)

# Works with normal items as well:
async for i in chain_from_iterable([range(10)]):
    print(i)

More items to come

Pull requests appreciated!

About

Asyncio shims for the standard library.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

0