PyFerno python3async-inferno的异步/承诺库

pyferno的Python项目详细描述


PyFerno-python3async inferno的异步/承诺库

这个库的思想是提供在Python中使用async/await的简单方法。在

创建这个库背后的历史是我的背景节点.js发展。 节点.js由于其基于事件的特性,对async/await有很好的支持。在

有一个优秀的Javascript承诺库[Bluebird][https://github.com/petkaantonov/bluebird]. 它被用作灵感来源。在

“Promise”这个名字也来自Javascript世界。在

对于那些没有使用过Javascript承诺的人来说,你可以把它们看作是“完成或者不完成任务的方法” 将来的某个时候。那就等着吧。而且它不会在同一时间阻塞/扰乱他人”:)

现在这个库导出了两个异步处理列表和dict的方法。在

使用

包含任务列表

from pyferno.promise import Promise

async def async_worker_fn():
    # do something asynchronously
    return something

tasks = [
    async_worker_fn(),
    async_worker_fn(),
    async_worker_fn()
]
out = await Promise.all(tasks, progress="A nice progressbar")
print(out)

有任务指令

^{pr2}$

有更多的异步上下文

import asyncio
from pyferno.promise import Promise

async def async_worker_fn():
    # do something asynchronously
    return something

# this function wraps the main logic into async method   
async def main_async_wrapper():
    tasks = [
        async_worker_fn(),
        async_worker_fn(),
        async_worker_fn()
    ]
    out = await Promise.all(tasks, progress="A nice progressbar")
    return out

# note, this is "normal" synchronous function
def main():
    loop = asyncio.get_event_loop()
    out = loop.run_until_complete(main_async_wrapper())
    loop.close()
    print(out)

if __name__ == "__main__":
    main()  

美国石油学会

在答应。全部(\u Promise\uu tasks:list,concurrency:int=10,progress:object=None)->列表

通过使用信号量限制并发性,异步运行任务列表

:param __tasks: List of tasks
:param concurrency: Concurrency of running tasks, integer. Defaults to 10
:param progress: Progress bar message or boolean True to display default progress bar
:return: Returns list of finished tasks (fulfilled promises)

在承诺。道具(\u Promise\uu props:dict,concurrency:int=10,progress:object=None)—>;dict

通过使用信号量限制并发性b,异步运行key的dict,task。 所有任务完成后,使用相同的键将结果映射回字典。 如果任何任务失败,它将失败

:param __tasks: Dict with name:task pairs. Task is an async function
:param concurrency: Concurrency of running tasks, integer. Defaults to 10
:param progress: Progress bar message or boolean True to display default progress bar
:return: Returns dict with name:<finished task> pairs.

发布包

python3 setup.py sdist bdist_wheel
twine 

许可证

这个图书馆有麻省理工学院的许可证。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据选择随机设置图标   java如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx