random.org JSON-RPCAPI(第2版)Python3实现。
rdoclient-py3的Python项目详细描述
random.org JSON-RPCAPI(第2版)实现。
这是random.org json-rpc api(release 2)的python 3实现。 它提供对签名的 以及通过RandomOrgClient类的api的无符号方法。 它还通过^{tt1}提供了一个便利类$ 类RandomOrgCache,用于预处理请求。在上下文中 在这个模块中,序列化的客户机是 请求与响应序列匹配。
安装
要安装,只需在设置后:pip install rdoclient-py3即可 虚拟环境(例如,使用virtualenvwrapper):
mkvirtualenv --python=/usr/local/bin/python3.6rdoclient-py3
基本RDO实现只需要 requests库: pip install requests但是,这个包(rdoclient-py3) 需要其他依赖项:
pip install pytest
测试
保护api密钥并运行测试。注意,要运行附带的测试 必须为api_键字段提供真实值。从中获取API密钥 here。
将_API_KEY_1设置为api键,并将_API_KEY_2保留为 还有别的。
然后运行这样的测试:
py.test test_rdoclient.py
用法
默认设置最适合非时间关键的序列化请求,例如, 批处理客户端:
>>> from rdoclient_py3 import RandomOrgClient >>> r = RandomOrgClient(YOUR_API_KEY_HERE) >>> r.generate_integers(5, 0, 10) [6, 2, 8, 9, 2]
…或对时间敏感的序列化应用程序,例如实时 绘制,使用:
>>> r = RandomOrgClient(YOUR_API_KEY_HERE, blocking_timeout=2.0, http_timeout=10.0) >>> r.generate_signed_integers(5, 0, 10) {'random': {u'min': 0, u'max': 10, u'completionTime': u'2014-05-19 14:26:14Z', u'serialNumber': 1482, u'n': 5, u'base': 10, u'hashedApiKey': u'HASHED_KEY_HERE', u'data': [10, 9, 0, 1, 5], u'method': u'generateSignedIntegers', u'replacement': True}, 'data': [10, 9, 0, 1, 5], 'signature': u'SIGNATURE_HERE'}
如果立即获得某种响应很重要,则缓存 应该使用。缓存将以同样的速度和效率填充自身 尽可能让预先获得的随机性立即提供。 如果随机性不可用-例如,缓存为空-缓存将 返回允许处理随机性不足的空异常 无延迟:
>>> r = RandomOrgClient(YOUR_API_KEY_HERE, blocking_timeout=60.0*60.0, http_timeout=30.0) >>> c = r.create_integer_cache(5, 0, 10) >>> try: ... c.get() ... except Queue.Empty: ... # handle lack of true random number here ... # possibly use a pseudo random number generator ... [1, 4, 6, 9, 10]
注意,缓存不支持签名响应,因为假设 使用签名功能的客户端希望完全控制序列号 答复的编号。
最后,可以尽快请求实时结果,并且 但是如果没有序列化,这可能更容易超时 失败,因为客户端必须遵守服务器的建议延迟时间,如果 服务器超载:
>>> r = RandomOrgClient(YOUR_API_KEY_HERE, blocking_timeout=0.0, http_timeout=10.0, serialized=False) >>> r.generate_integers(5, 0, 10) [3, 5, 2, 4, 8]
文件
获取可用随机性生成函数和其他 功能请参见rdoclient.py文档和 this link
更改日志
包装文件见this link。
- 2019-08-21版本2.0.6:更新API端点以使用v2
- 2018-04-10 2.0.5版:修复了python 3.5对异常错误的兼容性
- 2018-02-11版本2.0.3:改进的自述文件和固定测试
- 2017-12-06版本2.0.2:日志输出中的模糊API
- 2017-07-15 2.0.1版:将readme.md转换为RST for PYPI
- 2017-07-15版本2.0.0:初始版本。添加到PYPI