Python Cup, 目前百度内部(QA 是用户大群体) 使用最多的 Python基础库

Apache 2.0
Python
Linux
mythmgn · May 21, 2019 · 3387 次阅读 · 6 条评论
Star Watch Issue

CUP 介绍

1 分钟了解 Python-Cup 基础库


如果你觉得 CUP 很棒,请帮我们 star https://github.com/baidu/CUP
,并推荐给亲朋砖友.

更欢迎为 CUP 撰写 patch、新 feature,一起添砖加瓦!

1. 下载

2. 安装

  • run bash cmd to install bash python setup.py install
  • pip 安装 bash pip install cup

3. 问题反馈

  • Open Github Issues

4. 致 敬 (Pay Tribute To)

CUP 中直接或间接使用了如下 module, 向以下社区项目致敬:

5. 发展历程

对 CUP 来说, 15 年末 16 年初是 CUP 建设的分水岭.

2016 年前 Cup 初创阶段 Utilization 是建设的重点.
CUP 初衷并不复杂, 就是朴素的目标: 降低人力

当时的背景是,

  • 我们的观察,Python 作为胶水语言,编码上手特别容易,实现方式也比较灵活,少量代码可以构建大的场景,这是她的优点。
  • 但应用过程中灵活性也与冗余代码、混乱无序的实现方式伴生。短时间快速实现欠得技术债总会在后面某个时段爆发,而且带来的人力消耗和时间成本 overweigh 前面抢得那一点时间。

于是把常用的场景抽象出来, 标准化减少重复造轮子成为我们最好的选择. 举例来说:

  • 减少重复造轮子

    • 配置文件 cup.util.conf
      • 与 c/c++ comcfg/configure 库 100% 兼容
      • 支持将 configure 库映射为 py dict, 以及 pydict 回写到文件
    • 可打断线程 cup.thread
    • 发短信/回邮件/查 noah cup.bidu
    • 等等
  • 标准化

    • 日志标准化打印 cup.log
    • Shell 执行标准化 cup.shell
      • timeout 超时处理标准化
      • 回返信息处理标准化
      • expect(exe & scp 系列) 处理标准化
    • 等等

随着时间推移, 使用 CUP 的项目越来越多 (超过 50+). 原因来说无外乎三个:

  • 质量尚佳
  • 文档齐全
  • 持续交付

16 年初, CUP 已没有最初紧迫的生存压力 (是否可以扎根生长), 转而考虑一个长期建设基础库的样子.


2016 至今, CUP 目标: 为快速构建 Python Serivce 提供服务.

在经过了半年左右的考察和决策 (主要是犹豫不定,可做的范围很大. 但总要有取舍和收敛),我们确定了支持构建 Python Service 的长期稳定目标。

  • 长期代表该目标会持续交付
  • 稳定代表不会随便动摇, 不会随着新兴的技术诉求涌现而混淆核心目标。弱水三千,只取一瓢,才能饮尽。

6. 用户案例

6.1 典型用户案例

也欢迎关注 应用 CUP 在写的 python 踩坑指南公号: 程序员的梦呓指南

评论列表
mythmgn 发表于 January 02, 2020

目前 py3 已支持.

徐汪成 发表于 July 10, 2019

让 python 更加标准规范化?

simple 发表于 June 20, 2019

看样子是 python 基础组件库的封装

codeskyblue 发表于 June 14, 2019

cup 主要是做什么的?

mythmgn 发表于 May 31, 2019

预计六月份支持

韩将 发表于 May 31, 2019

不支持 python3 呀