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

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

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON