通用的异步跨进程通信事件总线
项目描述
Lahja
免责声明:这是alpha状态的软件。请期待存在bug。
Lahja是用Python 3.6+编写的通用事件总线实现,它基于非阻塞异步IO实现轻量级进程间通信
这是用来做什么的?
Lahja主要针对一个主要用例:允许多进程Python应用程序通过基于asyncio或trio的非阻塞API使用事件在进程间进行通信。
关键事实
- 使用异步IO(asyncio / trio)的非阻塞API
- 轻量级,无依赖项
- 易于使用
- 易于事件多播(一个事件,多个独立的接收器)
- 简单事件路由(例如,仅将事件X路由到特定接收者)
- 多个消费API以适应不同的用例和风格
开发者设置
如果您想对lahja进行开发,请查看蛇 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$$
如何使用bumpversion
此存储库的版本格式为稳定版{major}.{minor}.{patch}
,和不稳定版{major}.{minor}.{patch}-{stage}.{devnum}
(stage
可以是alpha或beta)。
要发布下一个版本,指定要升级的部分,例如make release bump=minor
或make release bump=devnum
。
如果您处于beta版本,则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 查看哈希值)
关闭
lahja-0.17.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7f9e58acd1efa2133802c03c3602c141de8c3962448f4f5b0c3b6bdf1f15f143 |
|
MD5 | fcf23293074ce40005246a20ac521115 |
|
BLAKE2b-256 | 50cd2a516d4daa7e2aba26208a088332ecc9015ba50f097f5f6a9eb9f6e34acb |