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 JavaFX 11可编辑组合框引发IndexOutOfBoundsException   java选择数组中的数组元素   java我从来没有找到创建2D ArrayList的正确方法   java JPA查找orderById的顶部数据,并按字符串过滤Id   使用java在ejabberd中进行xmpp外部身份验证   从ajax调用向java传递点运算符   java如何使用ReadWriteLock   使用Spring控制器和jQueryAjax的java重定向   java使JFrame中的JPanel可滚动   java如何用多个。jar库?   java EditText在RecyclerView中失去了对滚动的关注   java为什么我们必须扩展Servlet或GenericServlet或HttpServlet来创建Servlet应用程序?如果不扩展,我们可以开发Servlet应用程序吗?   使用递归java查找数组中的最大值   具有不同字段数的html表单的java域传输对象   java文本视图扩展;不支持操作异常   java如何使用iText的HTMLWorker类将多语言HTML字符串呈现为PDF