方便地将业务逻辑与消息传递分离。

happyl的Python项目详细描述


Happyly on PyPIPython versionBuild StatusDocumentation Status

说明

快乐地帮助你从信息中抽象出你的业务逻辑, 这样您的代码是可维护的,并确保关注点的分离。 代码执行的实际操作被抽象为通用的handlers 它可以与任何序列化技术或消息传递协议一起使用,而无需任何更改。

Happyly可与烧瓶、芹菜、姜果、卡夫卡或其他 用于消息传递的技术。 happyly还提供一流的google pub/sub支持。

Happyly's pipeline

为什么叫这个名字?

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]

文档

Read the docs

开发

  1. 创建并激活虚拟环境(例如python -m venv env; source env/bin/activate)。
  2. 安装^{}pip install flit
  3. 使用flit安装具有所有开发依赖项的包:flit install。 每当您想解释新代码更改时,请重复此操作 或依赖关系。
  4. 注意,存储库使用pre-commit 自动检查代码的样式和类型。 使用pre-commit install为克隆的repo启用它。
  5. 要运行测试,请使用pytest(针对当前python版本的测试) 或者tox(将尝试对所有受支持的python版本进行测试)。
  6. 当您准备好部署项目时, 使用^{}bumpversion patch(或minor,或major),然后git push && git push --tagsTravis将检测到它 并自动将包部署到pypi。 建议在github上创建一个新版本 描述自上一版本以来的重大变化。 重要:在编写时,pypi中的包bumpversion未维护 有几个问题。请改用bump2version。 它将以flit install作为开发依赖项自动安装, 所以不需要手动安装。

关于版本控制方案的说明

我们使用语义版本控制,添加了rc阶段: 每个版本(主要、次要或修补程序)都将以rc1变量开始, 然后使用bumpversion rc将其高级到rc2等。 或者使用bumpversion rel(完全去掉rcN后缀)来“释放”。

bumpversin的角度来看,还有两个额外的版本部分: rel(可以是alpharc或missing=release) 以及rc,表示候选发布的数量。 alpha不由bumpversion直接使用 但是可以在手动指定版本时使用:bumpversion [major|minor|patch] --new-version 1.1.0alpha1。 如果在这样的版本上使用bumpversion rel,它将首先从alphaN过渡到rc1, 只有这样它才会切换到release,拒绝rc后缀。

如果你想发布跳过rc阶段的新版本(可能是patch版本) 然后您可以使用以下任一方法:

  1. bumpversion --new-version 1.0.1(替换所需的新版本)-不推荐;
  2. 推荐方法:bumpversion --no-tag patch && bumpversion rel。 这将为rc创建中介提交,但不会为其创建标记 因此不会触发中介rc1版本的部署。

许可证

此存储库中的代码是根据 MIT License, 而图片和文档资料则是根据 Creative Commons BY-NC-SA 4.0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用setter将对象转换为java中的映射   java如何通过JQL直接找到多对多实体的交集?   java Android文本检查帮助   纸牌游戏中的java玩家顺序   java从活动A移动到活动B,再从活动B返回到活动A   java如何在GAE servlet中保存JSON文件以满足Android客户端的请求?   连接到本地主机上的SLiM服务器时发生java错误:8080   java是否可以使用setOnMarkerClickListener对for循环中创建的各种标记产生不同的结果?   检查数字是否为回文的java逻辑   java在两个独立的服务中是否存在数据同步模式?   java在组合框中选择ascendingorder时如何对元素列表进行排序   java如何在不更新旧表的情况下更新表中的字段并将其插入新表   javasos和return语句   java与示例安卓活动建立解析连接。错误:任务“:app:dexDebug”的执行失败   java Maven发布问题,带有代理授权的分叉部署过程,因为参数失败,需要407代理授权