NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #83 most downloaded on PyPI
A streaming multipart parser for Python
Last release 4 months ago
04 Jun 2026
Ships unpredictably
gaps range from 1 weeks to 12 months
Most releases are documented
notes for 25 of 30 stable releases
2 versions withdrawn
withdrawn after publishing
14 years old
32 releases · first in 2013
Replace per-byte partial-boundary scan with rfind lookbehind by @Kludex in https://github.com/Kludex/python-multipart/pull/300
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32
One column per quarter.
Speed up multipart header parsing and callback dispatch by @Kludex in #295
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31
Treat only & as the urlencoded field separator by @Kludex in #290
& as the urlencoded field separator by @Kludex in #290parse_options_header by @Kludex in #291Full Changelog: 0.0.29...0.0.30
& as the urlencoded field separator by @Kludex in https://github.com/Kludex/python-multipart/pull/290parse_options_header by @Kludex in https://github.com/Kludex/python-multipart/pull/291Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30
application/x-www-form-urlencoded bodies per the WHATWG URL standard, treating only & as a field separator #290.name*, filename*) in parse_options_header, keeping the plain parameter authoritative per RFC 7578 §4.2 #291.Handle malformed RFC 2231 continuations in parse_options_header by @manunio in #270
Full Changelog: 0.0.28...0.0.29
parse_options_header by @manunio in https://github.com/Kludex/python-multipart/pull/270Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29
parse_options_header #270.Speed up partial-boundary tail scan via bytes.find by @Kludex in #281
bytes.find by @Kludex in #281Full Changelog: 0.0.27...0.0.28
bytes.find by @Kludex in https://github.com/Kludex/python-multipart/pull/281Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28
Pass parse offsets via constructors by @Kludex in #268
Full Changelog: 0.0.26...0.0.27
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27
Skip preamble before first multipart boundary by @Kludex in #262
Full Changelog: 0.0.25...0.0.26
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26
Apply Apache-2.0 properly by @Kludex in #247
field_end for trailing bare field names on finalize by @bysiber in #230UPLOAD_DELETE_TMP to FormParser config by @Kludex in #254Full Changelog: 0.0.24...0.0.25
field_end for trailing bare field names on finalize by @bysiber in https://github.com/Kludex/python-multipart/pull/230UPLOAD_DELETE_TMP to FormParser config by @Kludex in https://github.com/Kludex/python-multipart/pull/254Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25
File #143.FormParser classes #257.UPLOAD_DELETE_TMP to FormParser config #254.field_end for trailing bare field names on finalize #230.Validate chunk_size in parse_form() by @Kludex in #244
Full Changelog: 0.0.23...0.0.24
chunk_size in parse_form() by @Kludex in https://github.com/Kludex/python-multipart/pull/244Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24
Remove unused trust_x_headers parameter and X-File-Name fallback by @jhnstrk in #196
trust_x_headers parameter and X-File-Name fallback by @jhnstrk in https://github.com/Kludex/python-multipart/pull/196QuerystringParser._internal_write by @bysiber in https://github.com/Kludex/python-multipart/pull/229__init__.py by @Chesars in https://github.com/Kludex/python-multipart/pull/227Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23
Drop directory path from filename in File 9433f4b.
File 9433f4b.Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22
Add support for Python 3.14 and drop EOL 3.8 and 3.9 by @hugovk in https://github.com/Kludex/python-multipart/pull/216
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21
Handle messages containing only end boundary, fixes #38 by @jhnstrk in https://github.com/Kludex/python-multipart/pull/142
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20
Don't warn when CRLF is found after last boundary by @Kludex in https://github.com/Kludex/python-multipart/pull/193
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19
MultipartParser #193.Hard break if found data after last boundary on MultipartParser by @Kludex in https://github.com/Kludex/python-multipart/pull/189
MultipartParser by @Kludex in https://github.com/Kludex/python-multipart/pull/189Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18
MultipartParser #189.Handle PermissionError in fallback code for old import name by @defnull in https://github.com/Kludex/python-multipart/pull/182
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17
Add dunder attributes to multipart package by @Kludex in https://github.com/Kludex/python-multipart/pull/177
multipart package by @Kludex in https://github.com/Kludex/python-multipart/pull/177Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.15...0.0.16
Replace FutureWarning to PendingDeprecationWarning #174.
fix: use alternate scheme for importing multipart by @henryiii in https://github.com/Kludex/python-multipart/pull/168
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.13...0.0.14
Rename import to python_multipart by @henryiii in https://github.com/Kludex/python-multipart/pull/166
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.12...0.0.13
Enforce 100% coverage by @Kludex in https://github.com/Kludex/python-multipart/pull/159
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.11...0.0.12
Handle invalid CRLF in header name. fixes #122 by @jhnstrk in https://github.com/Kludex/python-multipart/pull/141
Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.10...0.0.11
Support on_header_begin by @Kludex in https://github.com/Kludex/python-multipart/pull/103
on_header_begin by @Kludex in https://github.com/Kludex/python-multipart/pull/103FormParser by @Kludex in https://github.com/Kludex/python-multipart/pull/104OnFileCallback type by @Kludex in https://github.com/Kludex/python-multipart/pull/106File by @Kludex in https://github.com/Kludex/python-multipart/pull/111Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.9...0.0.10
on_header_begin #103.FormParser #104.OnFileCallback type #106.File #111.Add support for Python 3.12 #85.
Bump jinja2 from 2.11.3 to 3.1.3 by @dependabot in https://github.com/Kludex/python-multipart/pull/76
Message.get_params return 3-tuple instead of str on parse_options_header by @lorenpike in https://github.com/Kludex/python-multipart/pull/79Full Changelog: https://github.com/Kludex/python-multipart/compare/0.0.7...0.0.8
Refactor header option parser to use the standard library instead of a custom RegEx #75.
Migrate package installation to pyproject.toml (PEP 621) #54.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →