Skip to main content

用于异步跨进程通信的通用事件总线

项目描述

拉贾

文件状态

由 ReadTheDocs 托管的文档

免责声明:这是 alpha 状态软件。期待错误。

Lahja 是用 Python 3.6+ 编写的通用事件总线实现,基于非阻塞异步 IO 实现轻量级进程间通信

这个是来做什么的?

Lahja 是围绕一个主要用例量身定制的:使多进程 Python 应用程序能够使用基于 asyncio 或 trio 的非阻塞 API 通过进程之间的事件进行通信。

关键事实:

  • 使用异步 IO 的非阻塞 API (asyncio / trio)
  • 零依赖的轻量级
  • 使用简单
  • 事件的简单多播(一个事件,许多独立的接收者)
  • 简单的事件路由(例如,仅将事件 X 路由到某些接收者)
  • 多个消费 API 以适应不同的用例和风格

开发人员设置

如果您想破解 lahja,请查看Snake Charmers 战术手册 ,了解我们如何操作:

  • 测试
  • 拉取请求
  • 代码风格
  • 文档

开发环境设置

你可以设置你的开发环境:

git clone https://github.com/ethereum/lahja
cd lahja
virtualenv -p python3 venv
. venv/bin/activate
pip install -e .[dev]

测试设置

在开发过程中,您可能希望对每个文件保存运行测试。

在文件更改时显示 flake8 错误:

# Test flake8
when-changed -v -s -r -1 lahja/ tests/ -c "clear; flake8 lahja tests && echo 'flake8 success' || echo 'error'"

在一个命令中运行多进程测试,但没有颜色:

# in the project root:
pytest --numprocesses=4 --looponfail --maxfail=1
# the same thing, succinctly:
pytest -n 4 -f --maxfail=1

在一个线程中运行,带有颜色和桌面通知:

cd venv
ptw --onfail "notify-send -t 5000 'Test failure ⚠⚠⚠⚠⚠' 'python 3 test on lahja failed'" ../tests ../lahja

发布设置

对于类 Debian 系统:

apt install pandoc

要发布新版本:

make release bump=$$VERSION_PART_TO_BUMP$$

如何颠倒版本

此 repo 的版本格式是{major}.{minor}.{patch}稳定版和 {major}.{minor}.{patch}-{stage}.{devnum}不稳定版(stage可以是 alpha 或 beta)。

要在线发布下一个版本,请指定要碰撞的部分,例如make release bump=minormake release bump=devnum

如果您处于测试版,make release bump=stage将切换到稳定版。

要在当前版本稳定时发布不稳定版本,请明确指定新版本,例如make release bump="--new-version 4.0.0-alpha.1 devnum"

项目详情


下载文件

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

源分布

lahja-0.17.0.tar.gz (33.3 kB 查看哈希

已上传 source

内置分布

lahja-0.17.0-py3-none-any.whl (40.2 kB 查看哈希

已上传 py3