pykit: A collection of python libs those are used in project s2: Storage-Service at baishancloud.com
This library is in beta phase.
It has been used heavily in our object storage service, as a foundamental library of our devops platform.
There is a README.md
for each module.
name | description |
---|---|
argchecker | Validates arguments against the schema |
aws | AWS error codes and so on |
awssign | Sign a request by using aws signature version 4 |
cacheable | Cache data which access frequently |
cachepool | Reusable object cache in process |
cgrouparch | Build cgroup directory tree, add set cgroup pid |
cluster | Some helper function for the server in a cluster |
csvutil | Utility functions for CSV file loading and conversion |
daemonize | Start, stop or restart a daemon process |
dictutil | Dictionary helper utility |
ectypes | Utility functions for the server |
etcd | etcd client |
fsutil | File-system Utilities |
heap | Min heap |
http | HTTP/1.1 client |
httpmultipart | Utility functions to make headers or make body reader about multipart |
humannum | Convert number to human readable number string |
jobq | Process serial of input elements with several functions concurrently and sequentially |
jobscheduler | Run jobs at certain time |
logcollector | Collect logs of interest locally |
logutil | Utility functions to create logger or make log message |
mime | Utility functions to handle mime type |
modutil | Submodule Utilities |
mysqlconnpool | Mysql connection pool with MySQLdb in python |
mysqlutil | Mysql related datatype, operations |
net | Network utility |
portlock | cross process lock |
priorityqueue | Priority queue |
proc | Utility to create sub process |
rangeset | Segmented range. |
ratelimiter | rate limiter |
redisutil | For using redis more easily. |
shell | Set different command arguments to execute different functions |
strutil | A collection of helper functions used to manipulate string |
threadutil | Utility functions for better management of threads |
timeutil | Support specify time format output and get current ts, ms, us api etc |
utfjson | Force json.dump and json.load in utf-8 encoding |
utfyaml | Force yaml.dump and yaml.load in utf-8 encoding |
wsjobd | Job daemon based on websocket protocol |
zktx | Transaction implementation on Zookeeper |
zkutil | Utility functions for zookeeper |
Just clone it and copy it into your project source folder.
cd your_project_folder
git clone https://github.com/baishancloud/pykit.git
from pykit import jobq
def add1(args):
return args + 1
def printarg(args):
print args
jobq.run([0, 1, 2], [add1, printarg])
# > 1
# > 2
# > 3
See config.md
Run one of following to test all, a module, a TestCase or a function.
./script/t
./script/t zkutil
./script/t zkutil.test
./script/t zkutil.test.test_zkutil
./script/t zkutil.test.test_zkutil.TestZKUtil
./script/t zkutil.test.test_zkutil.TestZKUtil.test_lock_id
See Details
There are several scripts for developers. See script.
Zhang Yanpo (张炎泼) [email protected]
The MIT License (MIT)
Copyright (c) 2015 Zhang Yanpo (张炎泼) [email protected]