跳转到主要内容

插件,允许在pop项目中使用其他io循环来运行异步代码

项目描述

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

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)

致谢

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码发行版

pop-loop-1.1.0.tar.gz (11.9 kB 查看哈希值)

上传时间 源代码

构建发行版

pop_loop-1.1.0-py3-none-any.whl (13.3 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面