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

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第三方库


热门话题
java素数校正(2个数组)   java是否可以将ArrayList除以一个double并创建一个新列表?   列出Java类Java的消息体编写器。util。ArrayList   Java将管道分隔文本\csv文件转换为XML   JAVA木卫一。IOException:读取Transferncode时EOF过早:分块http响应   java Volatile变量的读写   java错误:类型不匹配:无法从ArrayList<Subchild>转换为ArrayList<String>   java:无法向AsyncLoadingCache提供CacheWriter   java多级listview Android Studio   静态Java哈希映射性能   循环如何在JAVA中创建三角形   java在春季为ContextFactoryBean定义多个contextPath路由   java从服务器的URL下载数据,并将其保存在一个私有的安全文件夹中   JavaSpringJPA查询   objective c Java REST服务二进制下载   使用JavaSpringRESTAPI并将记录插入mysql表   java你会选择一个算法的速度而不是它对内存的有效使用吗?   java通过多个字段比较对象,如何添加一个方法?   java在spring框架上使用@ModelAttribute(“myobject”)访问服务器上的JSON