问题标签 [curio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
680 浏览

windows - 如何使用 curio 制作 Python 异步命名管道服务器?

如何使用Dave Beazley 的 curio 库创建异步命名管道服务器?如果不是那个,是否有任何库比 Python 的默认 asyncio 库更快和/或更直观,我可以轻松地编写异步命名管道服务器?

0 投票
1 回答
299 浏览

python - 结合 py.test 和 trio/curio

我会结合 pytest 和 trio(或 curio,如果这更容易的话),即将我的测试用例编写为协程函数。通过在以下位置声明自定义测试运行器,这相对容易实现conftest.py

这允许我编写这样的测试用例:

但这是很多样板文件。在非异步代码中,我会将其分解为一个夹具:

有没有办法在三重奏中做同样的事情,即实现异步固定装置?理想情况下,我会写:

0 投票
1 回答
660 浏览

python - 使用 python 的并发 URL 获取循环

我需要运行大约 500 个并发循环。每个循环将依次获取一个分页的 REST 端点,直到它到达 500 个端点中每个端点的最后一页。其中一些循环只有 5 到 10 页,因此会很快完成,但其他循环有 100 页。

问题是我需要将此 URL 获取放在一个顺序的阻塞循环中,因为由于 API 限制,每个页面都必须按顺序获取(如果我获取第 7 页,然后获取第 5 页, API 将抛出错误)。因此,这里的并行单位是每个循环,而不是循环内的每个 URL 获取。

任何地方都没有进行繁重的计算。只需获取一个页面,然后将原始内容放入 kafka 主题中。除了依赖于许多内核的多进程之外,我对任何建议持开放态度。AsyncIO、Gevent、多线程...

编辑1:

实际的问题是,如果我使用aiohttp在每个循环中异步获取每个页面,我无法保证页面 2 会在页面 1 之后被获取。请求将以正确的顺序发起,但绝对不能保证请求将以正确的顺序到达并在端点处被处理。

编辑2:

正如 user4815162342 指出的那样,aiohttp 应该可以工作

谢谢!

0 投票
0 回答
558 浏览

python - 将古玩与枕头库集成

curio库提供异步aopen()功能,而枕头有它自己的Image.open. 我想创建缩略图并建议枕头足够聪明,不会在创建缩略图时将所有图像加载到内存中。它看起来像这样:

这如何与curio库集成?对我来说,看起来我有两个选择:

  • 调用,将数据加载到内存中,然后从内存中的数据aopen()创建对象并调用ImageImage.thumbnail()
  • Image.open()使用装饰器进行异步包装,async_thread但它需要触发所有线程机器。

有没有更好的方法来整合古玩和枕头来完成这项任务?

0 投票
1 回答
16350 浏览

python - asyncio 和 trio 之间的核心区别是什么?

今天,我发现了一个名为trio的库,它自称是一个供人类使用的异步 API。requests这些词与'有点相似。requests确实是一个很好的图书馆,我想知道trio.

关于它的文章并不多,我只是找到一篇讨论curio和的文章asyncio。令我惊讶trio的是,它说自己甚至比curio(下一代古玩)还要好。

看了一半的文章,我找不到这两个异步框架的核心区别。它只是给出了一些curio实现比asyncio's 更方便的例子。但底层结构几乎相同。

那么有人可以给我一个我必须接受triocurio优于的理由asyncio吗?或者解释一下为什么我应该选择trio而不是 built-in asyncio

0 投票
3 回答
1966 浏览

pytest - 同时运行测试

我想使用 asyncio (/curio/trio) 和 pytest 同时运行几个测试,但我找不到任何相关信息。我需要自己安排吗?如果我这样做了,有没有办法有一个很好的输出来分隔(子)测试用例?

这是我正在尝试的一个小玩具示例:

0 投票
1 回答
105 浏览

python - 在古玩中等待事件的问题

curio用来实现使用curio.Event对象进行通信的两个任务的机制。第一个任务(称为action())首先运行,并且awaits要设置的事件。第二个任务(称为setter())在第一个任务之后运行,并且正在设置事件。

代码如下:

输出如下:

这意味着在print('Performing action')AFTER 执行print('Finished run'),这就是我试图阻止的 - 我期望调用await evt.set()也会调用它的所有服务员,并且在调用所有服务员run()之前不会继续,这意味着action()将继续 BEFOREprint('Finished run')是执行。这是我想要的输出:

我怎么了?有没有办法改变这种行为?我想对执行顺序有更多的控制权。

谢谢

0 投票
0 回答
51 浏览

python-asyncio - 有没有办法从`asyncio.run`中调用`curio.spawn`

我想从一个使用“标准异步”的大型项目中使用一个很棒的库。库调用的某些功能curio.spawn在从“标准异步”调用时会导致错误。有没有办法让它工作?

重现错误的示例代码:

结果: