插件,允许在pop项目中使用其他io循环来运行异步代码
项目描述
pop-loop 包含允许在pop项目中使用其他io循环来运行异步代码的插件。
关于
Pop默认使用异步io循环在内置模块“hub.pop.loop”中。为了获得更多的循环功能,有必要将模块拆分成自己的项目。对于测试,循环管理很困难,但与pytest-pop配合使用,pop-loop使得异步测试变得容易。
什么是POP?
该项目使用pop构建,它是基于Python的 插件导向编程(POP) 的实现。POP试图以新的方式结合计算机历史中的概念和智慧,以解决现代计算机问题。
更多信息
入门
先决条件
Python 3.8+
git (如果从源代码安装,或为项目做出贡献)
安装
如果想要使用 pop-loop,您可以通过安装 PyPI 或源代码来进行。
从 PyPI 安装
如果软件包通过 PyPI 提供,请包括安装说明。
pip install pop-loop
安装额外组件
pop-loop 可以通过安装额外组件来启用本项目中的不同循环插件。
trio: .. code-block:: bash
pip install pop-loop[trio]
uvloop: .. code-block:: bash
pip install pop-loop[uvloop]
qt: .. code-block:: bash
pip install pop-loop[qt]
从源代码安装
# clone repo
git clone git@gitlab.com/saltstack/pop/pop-loop.git
cd pop-loop
# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
用法
描述此插件的一些基本示例用例。
示例
uvloop 示例: .. code-block:: python
import asyncio import pop.hub
hub = pop.hub.Hub()
hub.pop.loop.create(loop_plugin="uv") task = hub.pop.Loop.create(asyncio.sleep(0)) hub.pop.Loop.run_until_complete(task)
trio 示例: .. code-block:: python
import asyncio import pop.hub
hub = pop.hub.Hub()
hub.pop.loop.create(loop_plugin="trio") task = hub.pop.Loop.create(asyncio.sleep(0)) hub.pop.Loop.run_until_complete(task)
QT 示例: .. code-block:: python
import asyncio import pop.hub import PyQt5.QtWidgets as pyqt5
hub = pop.hub.Hub() hub.loop.qt.APP = pyqt5.QApplication([]) hub.pop.loop.create(loop_plugin="qt")
task = hub.pop.Loop.create(asyncio.sleep(0)) hub.pop.Loop.run_until_complete(task)
致谢
Img Shields 让仓库徽章变得容易。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。