跳转到主要内容

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

项目描述

Lahja

Documentation Status

文档托管于ReadTheDocs

免责声明:这是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=minormake 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 查看哈希值)

上传时间 Python 3

由以下支持

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