用于异步跨进程通信的通用事件总线
项目描述
拉贾
免责声明:这是 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=minor或make 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
查看哈希)
内置分布
lahja-0.17.0-py3-none-any.whl
(40.2 kB
查看哈希)