跳转到主要内容

使用cython构建的美食多部分表单数据解析器。

项目描述

多水果

使用cython构建的美食多部分表单数据解析器。

安装

pip install multifruits

使用

multifruits 有一个 Parser 类和两个助手:extract_filenameparse_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 标头值,并返回位置类型(attachmentform-datainline 等)以及解析为字典的参数。

示例

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 (94.1 kB 查看哈希值)

上传时间

由以下机构支持