This is the official python client for xiaomi/pegasus.
It uses Twisted for the asynchronous communication with pegasus server.
Python 2.x
It uses setuptools to retrieve and build the package as well as all dependent modules. So you must make sure that setuptools is available on your system. Or else you can install it as this:
$ sudo apt-get install python-setuptools
Then install pegasus python client:
$ sudo python setup.py install
There are some basic guide in sample.py
.
Before testing, you should firstly start an onebox cluster, referring to how to start an onebox cluster
.
python -m twisted.trial test_basics.py
python -m twisted.trial test_integration.py
ATTENTION: you should firstly set proper pegasus shell path in test_integration.py
.
python -m twisted.trial test_benchmark.py
The test result on my personal PC (CPU: Intel i7-7700 3.60GHz, mem: 8G) is:
10000 get cost: 3.80077195168 s, 0.000380077195168 s per op
10000 remove cost: 7.61887693405 s, 0.000761887693405 s per op
10000 set cost: 6.26366090775 s, 0.000626366090775 s per op
Traceback (most recent call last):
File "./sample.py", line 3, in <module>
from pgclient import *
File "/home/lai/dev/pegasus-python-client/pgclient.py", line 7, in <module>
from twisted.internet import reactor
...
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/_sslverify.py", line 38, in <module>
TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'
the twisted version we used is 17.9.0, which requires pyOpenSSL>=16.0.0, you can
pip install --upgrade pyopenssl
ref: scrapy/scrapy#2473