Streaming parser for multipart/form-data
Project description
Streaming multipart/form-data parser
streaming_form_data
provides a Python parser for parsing multipart/form-data
input chunks (the encoding used when submitting data over HTTP through HTML
forms).
Testimonials
"this speeds up file uploads to my Flask app by more than factor 10"
Installation
$ pip install streaming-form-data
In case you prefer cloning the Github repository and installing manually, please
note that master
is the development branch, so stable
is what you should be
working with.
Usage
>>> from streaming_form_data import StreamingFormDataParser
>>> from streaming_form_data.targets import ValueTarget, FileTarget, NullTarget
>>>
>>> headers = {'Content-Type': 'multipart/form-data; boundary=boundary'}
>>>
>>> parser = StreamingFormDataParser(headers=headers)
>>>
>>> parser.register('name', ValueTarget())
>>> parser.register('file', FileTarget('/tmp/file.txt'))
>>> parser.register('discard-me', NullTarget())
>>>
>>> for chunk in request.body:
... parser.data_received(chunk)
...
>>>
Documentation
Up-to-date documentation is available on Read the Docs.
Development
Please make sure you have Python 3.6+ and pip-tools installed.
Since this package includes a C extension, please make sure you have a working C
compiler available. On Debian-based distros this usually means installing the
build-essentials
package.
-
Git clone the repository:
git clone https://github.com/siddhantgoel/streaming-form-data
-
Install the packages required for development:
make pip-sync
-
That's basically it. You should now be able to run the test suite:
make test
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for streaming-form-data-1.11.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 202cea84200e8d412dd22b3ae522e1896a8a7d041aae809278b003b64ed1712b |
|
MD5 | ced8271d40616f279fc4ecb3ced2b90e |
|
BLAKE2b-256 | 2c6ca6666cadf14b7bcb27f214a2325b9c72a35a0f3f34fbcda3890e53488468 |
Hashes for streaming_form_data-1.11.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d33096083ae86837b7f8dfd3653b7cf87044d7ffb6b52102114e46a74a3a1164 |
|
MD5 | 51445f793aa27d0af986fb3f56763613 |
|
BLAKE2b-256 | 9ac54d6b7a2bc2b01c0f2085db522cb0c2785dd011e5d9f13c8b35c987a79e55 |
Hashes for streaming_form_data-1.11.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b208c0918cdf2e274d286c78f3f6b1fd5e9c0cf35bc1dc33a60d1c3c4edf0b51 |
|
MD5 | 951dd0ab6c17f5be82951c6bf95f6711 |
|
BLAKE2b-256 | beb091c341a58ea61c12c56dfc9ab101e495c08632bb74b1e6247e32641aea55 |
Hashes for streaming_form_data-1.11.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 301dba4f0b634d4e7e632172cc9fb6e0db136ce6a12b0f5cf118d25f0aaa484e |
|
MD5 | e5977ff0336fcd6a20cb948e7bbf8b3e |
|
BLAKE2b-256 | 8959632ec49c341df95597f291eb7e818749287089b7166823b1e5397d1e855a |
Hashes for streaming_form_data-1.11.0-cp39-cp39-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52fd1ea2a8c0b4ac56b99903214e239f0e8b9266f65c8cae6c00787aaf1f9cfe |
|
MD5 | f61827cb4a6ba743ea435b3db28dc47e |
|
BLAKE2b-256 | 087fdcffefffde61a3cdcac981a81ff57164c44b64c92154c69742bdc8a27a7d |
Hashes for streaming_form_data-1.11.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fbdd0df497465524e2010ae1465582663c9fb2a1f933075fddb6710a0cf9f17 |
|
MD5 | 9b1b2005b3ff559aad7efdb00feef181 |
|
BLAKE2b-256 | afd7da423d9a38e9459089155d8583e32e46ca61f6ae5f429022557603ff721d |
Hashes for streaming_form_data-1.11.0-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27a21a95d9d05448f638c049b2da1406a6d4ac357c6e8bec4268d9a2f99bdd76 |
|
MD5 | 8fdf9134c055a06b3b26ad502779670f |
|
BLAKE2b-256 | 636f3df5b7b134c1d3e971a0319b9ffce963269cdab4810cd9977fff9fb22963 |
Hashes for streaming_form_data-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adc810f256214af1dc45b9351cca1f8e7af60fb9de07bb3ab9ba1379770c51f7 |
|
MD5 | 796f65542589cd8870e1feadf7a5ddca |
|
BLAKE2b-256 | a364efed10d21c999c79d87f7b187c861918c80af1e8243ab4f1d3fafcca0625 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 406cd5a23eef77f360b549b93fa64a8ee724309063ab1dce528e1c8e397cb56f |
|
MD5 | b444d8dfd6ad83635c91b718cef4fdef |
|
BLAKE2b-256 | e04c99315996886639c3887d5030f172ec14b6ffe5c9fffc4386ffbca95f3eff |
Hashes for streaming_form_data-1.11.0-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70321f427e0600c7d5b74fd8f91a4478edb92143bd9fd051dd11a18c1e08a37c |
|
MD5 | f9c680689839bc511ae641d5979d5ef9 |
|
BLAKE2b-256 | bcf6804ff40efb9de1f4256f60e3faa507058349bc9086c5adad568692216a28 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa07f1c565436319862abb338e3a9ae68855b09fc5ceb83564c34a53af852c52 |
|
MD5 | 63e67a22a0890479d167616acbc82d04 |
|
BLAKE2b-256 | e05109006f1ec2b562e3ca6d6fe82f878d8b2c66cd0ef56ce85d6225b8a6acc6 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d56ac0fb880cb8143cbfd5c67361fc6caa0ab5e9863074555304ad27c1d0e2b |
|
MD5 | a2d6472754dd95b2fee5c340fc928402 |
|
BLAKE2b-256 | ee1e0c7f836410c809d9001c31fb2bf31bdc40a38671fc8e6820021e0f8cd878 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e551dc5604af5b971224c5c82c132ec8d99bc3da627ad6228ff899f1b1043839 |
|
MD5 | 90452606bad5bb97cea70184d2d395fb |
|
BLAKE2b-256 | 390c5f68bd2f004a66af88b1509d15e8aab121a83d94b15103eef347a8378953 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f348e67d55dcb60ce8571647dd0e18aa4205091c9c1d1f1b0ee2816e8f612421 |
|
MD5 | 1cbecd98f4f60557e941a0ec74d8ccca |
|
BLAKE2b-256 | d05bf7ab5b7357fa274ce76f159d67ca6e52103e626ff9bbc82fc55cfa172888 |
Hashes for streaming_form_data-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ff76ec968a1c04dcc94fd66fae343b9fc576cb455fdd3f93370dad5fa1d8771 |
|
MD5 | 3b60b75fca627b8060953cc9b55a1ac2 |
|
BLAKE2b-256 | 1dcc9110eaa9a045274d7ff48a66e9185af64ba42349ab7d9da0828606fa06bc |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf8de78d747e95db780cd18672783735bcb811ea495b8e4546c8fa534829d90d |
|
MD5 | ad7edbde8b0ddcd1d5bcd436dd8cf529 |
|
BLAKE2b-256 | b22e1d6a4ffe8650af67f3dbd9b84d2d369df14edc4559f4afb53c72914a1010 |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 267a4921decbd3a800463d72b6a8df362e17cad7825924a5a61e3cbc7bacf96d |
|
MD5 | 0b871e812d5209cf06d8397c1a7b7ef3 |
|
BLAKE2b-256 | e291a1172ef7d998efb97fe9fd5a56f13fad43d56bf7c53c87ec96c379654b53 |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab59d14825cb4ed9d96eb17a2f78f5a96935fb4e8e6b98fcae5ce07fcd6e0fa9 |
|
MD5 | dbe54b696913b18dfba3e302ac30a157 |
|
BLAKE2b-256 | 0af1a9f862f8d097371ca464ff723221568010762c55d2cdcc200821048d29e0 |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5358cc32bf775944d366525c2854620e55548563f40868f01ea4af6f252b682b |
|
MD5 | 67ef76202046962a856c6ff22a1b5cb3 |
|
BLAKE2b-256 | 3c3f2a637fee6d3ec836a24d3deb0bad343aec76458b24aebf5599d7265e0255 |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eccecf020053de8bfba7844ac9e0ed2cb1ca2a3d39980aa9077ca3f31048b1f |
|
MD5 | fd843ac5b2fb3731267fd1076fbdd47c |
|
BLAKE2b-256 | 576682ac7a98357c2062890cd2c2a19d7081ab877808bc49f5e8da779e7c63be |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7bf111cd071853089b3904ec9dd9250959a45e88ea05ce078b2632375597cef |
|
MD5 | c1c34f502d94b01d8b053d673ac64276 |
|
BLAKE2b-256 | 4b707a372bddb2e413170fe3a2f90a4aef33efd8aa655b7dadf521d19512895e |
Hashes for streaming_form_data-1.11.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a780dc298ff4da1d20c9deae02f817c08de59e0094b591627727efe6e94574af |
|
MD5 | 358d209e2fefd1eea0125d19c0602700 |
|
BLAKE2b-256 | 3f2c120ddd55d727e63a93a05e5da17a9d54f26570bf6cb5353211a0191bd858 |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dfb34b8e147c4f30ada3ab333b517cbc8c273e06a0f464c85f92e70647bbbd6 |
|
MD5 | c437f97d2edfc0504a8ca8a3d9b91752 |
|
BLAKE2b-256 | 1f55d09ebcc68fc24c15bea4c119247f4da38afbaefc302bfc90f567e3ab8394 |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8db536c6387d27b2ce9b89e58269ff79d8da197f1f3c300f53dc130271bb5f78 |
|
MD5 | 5c595de45eaf89ff3f9b97fa19c71f3c |
|
BLAKE2b-256 | df63c4fc00a6b4808b97f1fc46c2682a5154b81b99d2d3f2f4cd8bc61190426d |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89a20560924bbbd07fc51f3f7b6710744e8b845028a9af338b6caa9c2611f7bb |
|
MD5 | e40b8a0e9cdba714a9524797f45e217c |
|
BLAKE2b-256 | f0375f4162304049e1a25974de914c9e21543bafd2218b396c2c3a313d575126 |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bffc52d57f6733c5462b8fb19b4d7ce54c2faea3c7d5b12725b86740be1c7c9 |
|
MD5 | 07e12ce6c61cba23cb83c86fc3aa9316 |
|
BLAKE2b-256 | d8e979041e6ed6b2ed56d8928eabaa5943da273dea3caf7b2e628c4a8c8e9a03 |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1428e0fe38d7d5dea984a772a235955a4f4e6e846d2f377239b7b8a42b2ab455 |
|
MD5 | 7c31cedffdd181130477c983e50a37f1 |
|
BLAKE2b-256 | 6e00c562082e709b96c54956a8631dcf086895a2504f46c25bbc1fa60e1b961b |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe46eff0cb5aebcc752c7ee3258bbeaa6aa9007bad9c32cfbd46d00df5c1f4d4 |
|
MD5 | ad042fff12b40959051b83df214e464c |
|
BLAKE2b-256 | 042f2f35fbb41fc402f379081cf32f78cd750304fcb801b01d1307831225222b |
Hashes for streaming_form_data-1.11.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b073baa08f349ab4737ebb673e8dc5c4cd19be6c8d18f43262e659d95b290733 |
|
MD5 | f5146ffa7212751ca25519d4779b5d45 |
|
BLAKE2b-256 | d328b6cabf9b1e0c50140162bc369ff65d3535cef459f0264822d77b72a80ada |