Skip to content
CUP, common useful python-lib. (Currently, Most popular python lib in baidu)
Python Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Sep 13, 2018
cup enhance network get_ip_addr Aug 21, 2019
cup_test
docs
examples/arrow-runtime for py3 Aug 8, 2019
.gitignore enhance cup.obj and add pypi script Jun 6, 2019
LICENSE Use license template. Mar 6, 2019
README.md
cup.logo.png commit a logo Jan 22, 2019
diff.sh add diff tool Aug 3, 2017
sed.sh
setup.cfg change unittest typo and setup.py configs Oct 9, 2018
setup.py for py3 Aug 8, 2019
upload_pypi.sh enhance cup.obj and add pypi script Jun 6, 2019

README.md

cuplogo

Notice

  • Visit http://cup.iobusy.com for more details
  • CUP is very steady on python 2.7.x.
    • If you want to use CUP within python3, pls refer to released version py 3.0 (alpha version, which is still under test/development) on the top left of the page

Quick Start

1. Download

- git clone CUP or download the released tar balls

2. Installation

Install from pip

pip install cup

Install from source code:

python setup.py install

3. Doc & Wiki

Visit Wiki to see more details: https://github.com/Baidu/CUP/wiki

Visit Doc site to see py-docs: http://cupdoc.iobusy.com/

# Examples:
# 1. Get system info
import cup
# count cpu usage in interval, by default 60 seconds
from cup.res import linux
cpuinfo = linux.get_cpu_usage(intvl_in_sec=60)
print cpuinfo.usr

# total, available, percent, used, free, active, inactive, buffers, cached
from cup.res import linux
meminfo = linux.get_meminfo()
print meminfo.total
print meminfo.available

Tests

- Install python-nose before running the tests
- run `cd ./cup_tests; nosetests -s`

Contribute To CUP

- Commit code to GITHUB, https://github.com/baidu/CUP
- Need to check pep8 and pylint rules before you start a pull request

Discussion

- Github Issues

Reference

  * Pexpect http://pexpect.sourceforge.net/ (under MIT license)
  * Httplib2 http://code.google.com/p/httplib2/ (under MIT license)
  * requests https://github.com/kennethreitz/requests (under Apache V2 license)
  * pymysql https://github.com/PyMySQL/PyMySQL (under MIT license)

WIKI

https://github.com/Baidu/CUP/wiki

code directory tree:

cup
    |-- cache.py                module              Memory cache related module
    |-- decorators.py           module              Decorators of python
    |-- err.py                  module              Exception classes for CUP
    |-- __init__.py             module              Default __init__.py
    |-- log.py                  module              CUP logging
    |-- mail.py                 module              CUP Email module (send emails)
    |-- net                     package             Network operations, such as net handler parameter tuning
    |-- oper.py                 module              Mixin operations
    |-- platforms.py            module              Cross-platform operations
    |-- res                     package             Resource usage queries (in /proc)、Process query、etc
    |-- shell                   package             Shell Operations、cross-hosts execution
    |-- services                package             Heartbeat、Threadpool based executors、file service、etc
    |-- thirdp                  package             Third-party modules: pexpect、httplib2
    |-- timeplus.py             module              Time related module
    |-- unittest.py             module              Unittest、assert、noseClass
    |-- util                    package             ThreadPool、Interruptable-Thread、Rich configuration、etc
    |-- version.py              module              CUP Version

快速开始

1. 下载

- 克隆git代码或者下载已发布的tar包

2. 安装

- pip 安装  `pip install cup`
- 源码安装 `python setup.py install`

3. 使用说明

举例说明:

# Examples:
# 1. Get system info
import cup
# count cpu usage in interval, by default 60 seconds
from cup.res import linux
cpuinfo = linux.get_cpu_usage(intvl_in_sec=60)
print cpuinfo.usr

# total, available, percent, used, free, active, inactive, buffers, cached
from cup.res import linux
meminfo = linux.get_meminfo()
print meminfo.total
print meminfo.available

Tests

- Install python-nose before running the tests
- run `cd ./cup_tests; nosetests -s`

向CUP贡献代码

直接在github中提交patch就可以了 - Commit code to GITHUB, https://github.com/baidu/CUP - Need to check pep8 and pylint rules before you start a pull request

Discussion

- Github Issues

Reference

  * Pexpect http://pexpect.sourceforge.net/ (under MIT license)
  * Httplib2 http://code.google.com/p/httplib2/ (under MIT license)
  * requests https://github.com/kennethreitz/requests (under Apache V2 license)
  * pymysql https://github.com/PyMySQL/PyMySQL (under MIT license)

代码树结构:

cup
    |-- cache.py                module              缓存相关模块 (Memory cache related module)
    |-- decorators.py           module              python修饰符,比如@Singleton单例模式 (Decorators of python)
    |-- err.py                  module              异常exception类, Exception classes for CUP
    |-- __init__.py             module              默认__init__.py, Default __init__.py
    |-- log.py                  module              打印日志类,CUP的打印日志比较简洁、规范,设置统一、简单(cup logging module)
    |-- mail.py                 module              发送邮件 (CUP Email module (send emails))
    |-- net                     package             网络相关操作(Network operations, such as net handler parameter tuning)
    |-- oper.py                 module              一些混杂操作(Mixin operations)
    |-- platforms.py            module              跨平台、平台相关操作函数(Cross-platform operations)
    |-- res                     package             资源获取、实时用量统计等,所有在/proc可获得的系统资源、进程、设备等信息 (Resource usage queries (in /proc)、Process query、etc)
    |-- shell                   package             命令Shell操作pakcage(Shell Operations、cross-hosts execution)
    |-- services                package             构建服务支持的类(比如心跳、线程池based执行器等等)Heartbeat、Threadpool based executors、file service、etc
    |-- thirdp                  package             第三方依赖纯Py模块(Third-party modules: pexpect、httplib2)
    |-- timeplus.py             module              时间相关的模块(Time related module)
    |-- unittest.py             module              单元测试支持模块(Unittest、assert、noseClass)
    |-- util                    package             线程池、可打断线程、语义丰富的配置文件支持(ThreadPool、Interruptable-Thread、Rich configuration、etc)
    |-- version.py              module              内部版本文件,CUP Version
You can’t perform that action at this time.