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).
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 main
is the development branch, so stable
is what you should be working with.
>>> from streaming_form_data import StreamingFormDataParser >>> from streaming_form_data.targets import FileTarget, NullTarget, GCSTarget, S3Target, ValueTarget >>> >>> headers = {"Content-Type": "multipart/form-data; boundary=boundary"} >>> >>> parser = StreamingFormDataParser(headers=headers) >>> >>> parser.register("name", ValueTarget()) >>> parser.register("file-local", FileTarget("/path/to/file.txt")) >>> parser.register("file-s3", S3Target("s3://bucket/path/to/key")) >>> parser.register("file-gcs", GCSTarget("gs://bucket/path/to/key")) >>> 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.
DevelopmentPlease make sure you have Python 3.9+, uv, and task 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: uv sync
That's basically it. You should now be able to run the test suite: task test
Note that if you make any changes to Cython files (.pyx, .pxd, .pxi
), you'll need to re-compile (task compile
) and re-install streaming_form_data
before you can test your changes.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution Built Distributions File detailsDetails for the file streaming_form_data-1.19.1.tar.gz
.
8172dd509a42ac0d1033deb1d13acb68f0cbae7e1492257d13af0922bdc4dd9b
MD5 f5ebc217c67828601301b928346a044f
BLAKE2b-256 f9faa9975245eefac04421a219e8007f9a4ae156b701b94baffb4d15af43304d
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-win_amd64.whl
.
e2dee016f1db735cd91e97421340cd3799f9fd46b1e39e4a11d6215c7cbe1edc
MD5 85aa1f3bf0f6698078f4712da1baa029
BLAKE2b-256 5d53a709d8925a0e48bc4904f12e1f619b0295042c06d66aacaa213f7a18a927
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-win32.whl
.
65b6e9a6a65a5992d9aa734874f0d1124330ec346d9c073b7f00925dfb1601f1
MD5 5d68beecd9ed68a3d9da4ee870a01bd4
BLAKE2b-256 1954c494c1d7d6b87868b1ab98d7eb8f202a717618172718df18bce0e45178e0
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl
.
b9e64cb7a5ba2519d607d09e2f1cd9f36fb03b0e44aebedb21982624e1eb71e3
MD5 73d5a222ad908be0ed5bc084a7fb0c49
BLAKE2b-256 e1cfb732e4a9cea5aa3397f8fb73f53dbb34f7a7ad48ef4baf51b470e6fd396c
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-musllinux_1_2_i686.whl
.
77cfa3f8067481b5cfbcfd8a772e0626ca88906308d1e78c59e9e72e4a1e05ea
MD5 5d934ff8c211e1ffd6d0f5b3f2676dfe
BLAKE2b-256 bce99af04c3838298791755719120091231a79bf4fe9952ed0033c2e89e0d9c7
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
1fa2491f3c4fe7f280ed40b45bba0b616740dc7c9090a5948f73de52cb5802c1
MD5 48bae67f5fa8c97b22d360f54c4268fb
BLAKE2b-256 67eb47f58ffb4509b817116534424527c2ced03058887536917646850df25fde
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
4aaf86d518a479ae2e23486b5193cc3a7823bfcbc68db0c21af86200079329eb
MD5 e158b407ca8c558d0f181e44f678f796
BLAKE2b-256 35e325f7c67b51c7679b6d403397834ae661a43eaf4e9ca6046dbcddaba6892f
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp313-cp313-macosx_11_0_arm64.whl
.
0045fe880e8ed522c94b4cafaa68defa6c53fdaa2858c01457447ef747fefdaa
MD5 8366b51b999b28c69fcca46b876c532a
BLAKE2b-256 f36131c8ed1175a52b4a5703c946aa296269f080834f7effc4fcd5d376090ec7
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-win_amd64.whl
.
9f33cbad01fd27e235513f4a718f63f47ffb3cb9f9557eaf733d00803b96e968
MD5 4815120b7e01a1d7a2dcfd5ede473f56
BLAKE2b-256 729fcf8f9bb8a522bf185f9fa1d8b636eb7c42ada2c8e5fa15657f0ed033b5f6
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-win32.whl
.
a80087937fb8b5da1d9155e921b250f2a217dd7eddc8dd34e83c6aa51eb19899
MD5 0174d1bf81289beef4a31820fb751c94
BLAKE2b-256 115850d15ce55c2e369aa4b1506b01cff2154c479cbf799904d6a938a67d9783
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl
.
a7d8f0c615bee7dc869aeaae3c85d6c1fc52b26559dee9a64e779bfc9ddcd633
MD5 85ed4415cea3c6bc0639e0845d22a206
BLAKE2b-256 c6db7d043ac521df46908a6377b544d91cfff4da0b757d4dd5e96f9a963e1682
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-musllinux_1_2_i686.whl
.
3ab95e9e161b71fe02e321a5199e437c597a2ae3cb76f9ea6c36854b224dbc9b
MD5 043b976658dea67cb6179e2e99efb50a
BLAKE2b-256 2abcc2603d7d23f010e9b63fb286585d8ebdfaed70e4e594b6366eb73745c1dd
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
25e72d665fb67d20344cdb8916ed87774cbfebdad66f398fa8a78cfae8aaadfc
MD5 2285bd111b93e3225551fd4dcf92218d
BLAKE2b-256 1ab31aa0e864b324f282d253ee02b36a8592735f963306c9006884130ebf8416
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
1517923a04bc053eb45f1d2ff46749d9b1686b149e94a9fdeff01e0af9a0cea4
MD5 6841346a05e38d2bfd40423ad5a1c88a
BLAKE2b-256 b7f588e86cd2051d242707d0231e66e20f8e798ca7e8b1ae71e54328c6928878
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp312-cp312-macosx_11_0_arm64.whl
.
fba31c6d6abfca18e2a66c2708bba8b1187e3f91f5a88799012ba7bd1cb37e92
MD5 797de1b92f620e30ae3a735dcc91cb81
BLAKE2b-256 1984aa1d9d8e895aa833e960185b0ecc092e85fe0a30210b0380b7a784392244
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-win_amd64.whl
.
a19fd631333d2b26f775c12acd22f1a6dc300769dfbbf1f3cf34f06379acaa0b
MD5 90fe735c8eb1ea51be2d70aa22687451
BLAKE2b-256 0981c4e18bf34dba7f870bacabbb4118b7122ad3c55e29741f221a7ce2ad5c24
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-win32.whl
.
1e0cc696c19178fee7384584a7402992fa87df256c7b19a83d8635368fbd1f04
MD5 e39eb196f239b02bc9ac538536081aca
BLAKE2b-256 2e8735af5d77f38d868c6824fab0706b1cb8ecfda57a323875f7b9a9ff3964d2
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-musllinux_1_2_x86_64.whl
.
2405931aa2d230cdb0eebe1b923263b229ec77eb0c612a27d275f1add69b295b
MD5 5c4a47c1b895d051e1f55df6be505a73
BLAKE2b-256 c1b2839ed731d6ca69e080bbe2096982d932c33cb2aac87dc6258aa9bc76d5b1
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-musllinux_1_2_i686.whl
.
52aa5053e65b70d0f6513735dee138bd8f84e4883bb134f626d5c2d768bf7af5
MD5 767042bc317d80881153d2a04cf2fae2
BLAKE2b-256 a6cddce3e047e136a8eac53a0139dd54038ec9517313ff545f52be1f670b81ac
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
854c49b3b7d7edf12aa6ed900a482faf001be62487eb4d9fe50ffa0a633b9bbe
MD5 597a5785e2f445565bf51eb30b006d8d
BLAKE2b-256 47bfe4d45de22040e1042cbf6e385d73424e491c1d5f1f2e668b400034ba0e41
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
5359f74b41725dd8daea8d496d6bd54a4088ea978d72ab10c485d24d25056302
MD5 0be2fd9faba05b49220c6a2306d72911
BLAKE2b-256 a202ba4b3f2280d3100570f98bfc2aeeefe6ce5d72e8d3584b827e3111f85857
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp311-cp311-macosx_11_0_arm64.whl
.
086de5959bcb760e20b684ccd08d7e4347198db252950e18af066f296d8c7601
MD5 352ae18dde3dc98dcf74bc75011c5f84
BLAKE2b-256 77a2f0f87b8f0ce993666b592ed4ca105bbca7215a8077fa5611959a3932e0a5
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-win_amd64.whl
.
bd1e79a149c3a3e164e0c4d78186b5f14d24cfe47b953ef91b4c657113dbd62b
MD5 2756f538bbee873c4845ffdcb399949e
BLAKE2b-256 4feae8445a391f1ebc3622ce0b945e4c097eea6e46da3fc98724c66dbab266f4
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-win32.whl
.
69f6572b659a82c489e47e190a61bc02c818320343a8a52c27b61f22a7c4767f
MD5 d2f2f5d2fb8dcd7dd014313bd03de659
BLAKE2b-256 afa8ee54c38de9a63a7a18dbb7ad059886a74c5999a2494ea07a031fa66ca386
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-musllinux_1_2_x86_64.whl
.
44b2df23cce2319e2f15382dc90fd87b84d1afb50a2093f87f4e877d7d6d9b49
MD5 07c56daf0457c1bed0b233d3b6345f1f
BLAKE2b-256 efceeeac581e32336f445713815509fab5022294797ab6497a8d1ff47add42c2
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-musllinux_1_2_i686.whl
.
68e9f498a16afb9998c9820103f9d233a8dff4c8745330f6be1921a3c9130a42
MD5 053b8007cf996a0951b882a86e692f74
BLAKE2b-256 71b1040e8d4f5b2ca99ccae56acddd6d669d30ee286c45e159d203ab7465fad6
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
2362523b821812942c167bdaa171ab71d709bc5e3fd3c7eb3ed144b1ce854041
MD5 a1379800a6a2a3a3148738e31c91eeb8
BLAKE2b-256 379c95b07bc058a0a947ac35f89b469a2d4352d5e67a54690a36044065c1dd9e
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
d94547c5f75bb97292ab74386f2bda15f30e8a58fff614f75a999bb0ee220227
MD5 2cfc2803cc04c1fc3f59d6118bddd1e7
BLAKE2b-256 97323b09164623f0ebb52da4c8059fb2043a71fbae3b2b94f7aae61ed437fb50
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp310-cp310-macosx_11_0_arm64.whl
.
48e660c077e91a9c98a64660a14cf6e469e1dfa7fd2240f75201970660457c0a
MD5 2a89a08bdabd556048c52fe0a7855dea
BLAKE2b-256 1687fc50208e2c62086a18cd8ecef5426b530e3c7e4da4384c0f44e6842c3c4e
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-win_amd64.whl
.
e94c1edd267137d46dd3277cc5b722c3594bf83a19ba3a6a805a5c266a26399f
MD5 4bfb7ba9b6cb6e4c5222f75727648e26
BLAKE2b-256 5a99dae7052a58757a579b1fd58a41dfe8c422d4e50fba35f00c692e947e6c03
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-win32.whl
.
447597b6f720a3527d8f0fbcd61b5691bf8b2b566a92ff99ec09c9ef75a7e179
MD5 b691a03d3e13c0ec6633fdfc9d5d7a2c
BLAKE2b-256 37e9098a3bd75959cade1c9e86cc00140c7e8b4cddd2f33ddf669510a29202cd
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-musllinux_1_2_x86_64.whl
.
891f39f66def01a0afd34258df68b34354d9214e2091e5bc6fc652cba747fbe8
MD5 82b239836b359badda807aabdeb8bac5
BLAKE2b-256 6cb09f74e9544c72b2af98402d60c5a26df6cb9d76a95a398642821b66bc949d
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-musllinux_1_2_i686.whl
.
223318891ab07e25a93ac46a6cb02c2992bc71e323987e39f3c8d5740569ddbb
MD5 f47e6f41fd54810485ff447a322e848a
BLAKE2b-256 15595f90c421efc86d6f894f8aef8efe90f752bbe631672c86f156811af80544
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
eedf0a67b2f0dbb9040be3b06a0d5e1a5a8060b2154e854f33b11b6273ef0e57
MD5 c5a0d2ab260dd5a679745bf59a5d99e5
BLAKE2b-256 722d746c184cc9168a93a8407a3cab1ea153538e7b836667d3998d0bd358d56f
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
.
c839977a5124e9188d2f3cd222fb18eb41b25c2c4557cc9c5f9eb79dd9a22176
MD5 88e3375c2df99a31fdccaaf7ac49430c
BLAKE2b-256 67318d6f7c3895102e4c4f7a9969c46805cde858d34d13f7d8fa045db4d31943
See more details on using hashes here.
File detailsDetails for the file streaming_form_data-1.19.1-cp39-cp39-macosx_11_0_arm64.whl
.
2828033a0a90f77a358c994d45d57df59fb0ff5f575dcd1c4405186944d66804
MD5 c0af6ca70f5b732e5e97a55024238de0
BLAKE2b-256 af74bf0f5804460dfb60d9fb50201bfc1f7429f4f215dc15574f34f15bdc6f6c
See more details on using hashes here.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4