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

Apache 2.0
Python
Linux
mythmgn · May 21, 2019 · 826 次阅读 · 4 条评论
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 踩坑指南公号: 程序员的梦呓指南

评论列表
韩将 发表于 May 31, 2019

不支持python3呀

mythmgn 发表于 May 31, 2019

预计六月份支持

codeskyblue 发表于 June 14, 2019

cup主要是做什么的?

simple 发表于 June 20, 2019

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