使用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 |