使用cython构建的美食多部分表单数据解析器。
项目描述
多水果
使用cython构建的美食多部分表单数据解析器。
安装
pip install multifruits
使用
multifruits
有一个 Parser
类和两个助手:extract_filename
和 parse_content_disposition
。
解析器
Parser
需要的 Content-Type
标头值和一个处理器,该处理器可以定义以下一个或多个方法
on_body_begin()
on_part_begin()
on_header(name: bytes, value: bytes)
on_headers_complete()
on_data(data: bytes)
on_part_complete()
on_body_complete()
示例
from multifruits import Parser
class MyHandler:
def on_part_begin(self):
self.part = MyPart()
def on_header(self, name, value):
self.part.headers[name] = value
def on_data(self, data):
self.part.write(data)
handler = MyHandler()
parser = Parser(handler, request.headers['Content-Type'])
parser.feed_data(request.body) # You can pass chunks
助手
parse_content_disposition
接受原始 Content-Disposition
标头值,并返回位置类型(attachment
、form-data
、inline
等)以及解析为字典的参数。
示例
dtype, params = parse_content_disposition(b'inline; filename="foo.html"')
assert dtype == b'inline'
assert params == {b'filename': b'foo.html'}
extract_filename
接受从 parse_content_disposition
解析的参数作为字典,并尝试返回适当的 str
文件名(如 filename*
)。
示例
assert extract_filename({
b'filename*': "UTF-8''foo-ä-€.html".encode()
}) == 'foo-ä-€.html'
从源代码构建
您需要一个已安装cython的虚拟环境,然后
git clone https://github.com/pyrates/multifruits
cd multifruits
make compile
python setup.py develop
测试
要运行测试
make test
致谢
项目详情
关闭
multifruits-0.1.7.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8985bb7b73001525f92cad2e0efa353c42a3ae67a7510d67f19143b09be41019 |
|
MD5 | b19ac92e2b344326418b25a6f131bbf7 |
|
BLAKE2b-256 | 8c815236fd520d50a5ae8fad51e063302e0a4a002b47fc5a9a015bc0047be931 |