random.org json-rpc api(1版)实现。

rdoclient的Python项目详细描述


random.org json-rpc api(1版)实现。

这是random.org json-rpc api(r1)的python实现。它通过randomorgclient类提供对api的有符号和无符号方法的序列化或非序列化访问。它还通过randomorgclient类randomorgcache提供了一个方便类,用于预处理请求。在该模块的上下文中,序列化客户端是请求序列与响应序列匹配的客户端。

安装

要安装,只需:

$ pip install rdoclient

需要requests库:

$ pip install requests

用法

默认设置最适合于非时间关键的序列化请求,例如批处理客户端:

>>> fromrdoclientimportRandomOrgClient>>> 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()... exceptQueue.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文档和https://api.random.org/json-rpc/1/

测试

请注意,要运行附带的测试,必须为api_键字段提供真实值。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用cucumberjvm执行java异步步骤   java通过Jackson2导出/导入JSON文件。9.7   java Tomcat在页面加载时给出500错误   将filereader合并到代码中的java问题   从GUI java将对象属性写入文件时发生swing错误   java简单程序,用于检查输入字符串是否为关键字(指定了关键字)   java如何在布局之间滑动时打开音频文件?   hibernate解析Java。lang.ClassCastException   java如何解决记录测试结果的Jenkins构建错误?   Java:在重写文件之前检查文件是否需要更新的最佳方法是什么?   mongodb在Java中重用数据库连接   java Hibernate(n+1)使用非k连接选择   java如何在Spring批处理中创建JSON文件读取器   java将MuPDF导入Android应用程序   字典我对Java中的多态性有疑问