简化对requests的包装,以便使用HEPData Converter WebServices API
项目描述
hepdata-converter-ws-client
用于与hepdata-converter-ws(Web服务)交互的轻量级客户端包装器。建议使用此包装器而不是手动创建请求到hepdata-converter-ws。
创建此包的原因是hepdata-converter-ws API需要将文件压缩为tar.gz
格式并使用Base64编码,以便将它们作为JSON请求的参数传递。每次有人想要调用hepdata-converter-ws API时手动执行此操作有些繁琐:这就是为什么产生了这个轻量级包装器。
此外,当涉及到写入convert
函数的输出时,该库还提供了额外的功能:除了接收原始的tar.gz
内容外,还可以将其提取到指定的文件路径。
示例用法
该库公开了一个名为hepdata_converter_ws_client.convert
的单个函数,它与hepdata_converter.convert
非常相似。它接受额外的参数url
,并限制输入/输出为str
、unicode
和文件对象(支持read
、write
、seek
、tell
的对象)。
options
参数应与hepdata_converter
库中的参数相同。
可以使用timeout
参数设置请求的超时时间(默认为600秒)。
该库定义了异常hepdata_converter_ws_client.Error
,它将在超时或其他连接到服务器时抛出。
函数hepdata_converter_ws_client.get_data_size
获取将要发送到转换器的JSON数据的字节数。这可以在检查是否超过了由Web服务器强加的最大有效负载大小时很有用。
函数描述
hepdata_converter_ws_client.convert
函数具有适当的 文档字符串,描述了其参数和返回值。类似地,对于 hepdata_converter_ws_client.get_data_size
,也有相应的 文档字符串。
使用文件路径进行转换
传递给输入和输出的参数可以是文件路径或文件对象。以下是如何使用文件路径利用 convert
函数的示例。
import hepdata_converter_ws_client
# using path to input file, and writing output directly to output_path
input_path = '/path/to/input.txt'
output_path = '/path/to/output/dir'
hepdata_converter_ws_client.convert('http://hepdata-converter-ws-addr:port', input_path, output_path,
options={'input_format': 'oldhepdata'})
使用输入路径和输出文件对象进行转换
输入始终可以是文件对象(只要输入 Parser
支持单个文件)。只有当关键字参数 extract=False
时,输出才能是文件对象。在这种情况下,返回的 tar.gz
文件的二进制内容将被写入输出文件对象。然后用户需要负责解压缩它。
import hepdata_converter_ws_client
from io import BytesIO
# using path to input file, writing to output stream
input_path = '/path/to/input.txt'
output = BytesIO()
hepdata_converter_ws_client.convert('http://hepdata-converter-ws-addr:port', input_path, output,
options={'input_format': 'oldhepdata'}, extract=False)
项目详情
散列值 for hepdata_converter_ws_client-0.2.2-py2.py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7babae8a08d040dca340302ff35b62ec17cac8153436c685cbdf19a762578e09 |
|
MD5 | 400deb6631d0400df2b43a8095370e4f |
|
BLAKE2b-256 | 117da9832399faa67131e9e42ba7bc89f719495d3cf0ef3ff27e7c19b1963570 |