方便地将业务逻辑与消息传递分离。
happyl的Python项目详细描述
说明
快乐地帮助你从信息中抽象出你的业务逻辑, 这样您的代码是可维护的,并确保关注点的分离。 代码执行的实际操作被抽象为通用的handlers 它可以与任何序列化技术或消息传递协议一起使用,而无需任何更改。
Happyly可与烧瓶、芹菜、姜果、卡夫卡或其他 用于消息传递的技术。 happyly还提供一流的google pub/sub支持。
为什么叫这个名字?
happyly代表ap ylibrarypub/sub
lib最初是为与google pub/sub一起使用而创建的, 但后来发现,这个想法更加普遍,可以简化 消息传递和序列化技术之间的转换。
安装
pip install happyly
用于其他组件
pip install happyly[google-cloud-pubsub]
或
pip install happyly[flask]
或
pip install happyly[redis]
文档
开发
- 创建并激活虚拟环境(例如
python -m venv env; source env/bin/activate
)。 - 安装^{
} :pip install flit
。 - 使用
flit
安装具有所有开发依赖项的包:flit install
。 每当您想解释新代码更改时,请重复此操作 或依赖关系。 - 注意,存储库使用pre-commit
自动检查代码的样式和类型。
使用
pre-commit install
为克隆的repo启用它。 - 要运行测试,请使用
pytest
(针对当前python版本的测试) 或者tox
(将尝试对所有受支持的python版本进行测试)。 - 当您准备好部署项目时,
使用^{
} :bumpversion patch
(或minor
,或major
),然后git push && git push --tags
。 Travis将检测到它 并自动将包部署到pypi。 建议在github上创建一个新版本 描述自上一版本以来的重大变化。 重要:在编写时,pypi中的包bumpversion
未维护 有几个问题。请改用bump2version
。 它将以flit install
作为开发依赖项自动安装, 所以不需要手动安装。
关于版本控制方案的说明
我们使用语义版本控制,添加了rc
阶段:
每个版本(主要、次要或修补程序)都将以rc1
变量开始,
然后使用bumpversion rc
将其高级到rc2
等。
或者使用bumpversion rel
(完全去掉rcN
后缀)来“释放”。
从bumpversin
的角度来看,还有两个额外的版本部分:
rel
(可以是alpha
、rc
或missing=release
)
以及rc
,表示候选发布的数量。
alpha
不由bumpversion
直接使用
但是可以在手动指定版本时使用:bumpversion [major|minor|patch] --new-version 1.1.0alpha1
。
如果在这样的版本上使用bumpversion rel
,它将首先从alphaN
过渡到rc1
,
只有这样它才会切换到release
,拒绝rc
后缀。
如果你想发布跳过rc
阶段的新版本(可能是patch
版本)
然后您可以使用以下任一方法:
bumpversion --new-version 1.0.1
(替换所需的新版本)-不推荐;- 推荐方法:
bumpversion --no-tag patch && bumpversion rel
。 这将为rc
创建中介提交,但不会为其创建标记 因此不会触发中介rc1
版本的部署。
许可证
此存储库中的代码是根据 MIT License, 而图片和文档资料则是根据 Creative Commons BY-NC-SA 4.0。