Upgrade to release 0.0.33:
This release lets you cap URL-encoded form fields as they stream in, and
fixes several upload and decoding edge cases. It also drops Python 3.10
and adds Python 3.15.
- Limit URL-encoded fields while streaming. The new opt-in
MAX_FIELDS and MAX_FIELD_SIZE options for FormParser raise
FormParserError before oversized data is buffered. Both default
to no limit, and multipart forms are unaffected.
- Nameless uploads no longer crash when spilled to disk.
Uploads without a filename used to raise AttributeError when
UPLOAD_KEEP_EXTENSIONS or UPLOAD_KEEP_FILENAME was set.
- UPLOAD_DIR accepts str with UPLOAD_KEEP_FILENAME. A str
upload directory used to fail on the first write to disk.
- Decoded data is complete before callbacks run (#336, #355).
Content-Transfer-Encoding decoders are finalized at the end of
each part, and quoted-printable escapes split across writes
decode correctly.
- parse_options_header lowercases content types with parameters
. Multipart/Form-Data; boundary=abc now returns
multipart/form-data, the same as headers without parameters.
- Faster opening boundary matching. Complete boundaries are
matched in one step.
- Faster parser state lookups. Parser states are
module-level enum members, so their repr is now multipart.END
instead of <MultipartState.END: 12>.
- Faster querystring callback dispatch.
- Python 3.10 is no longer supported. Python 3.11 is now the
minimum.
- Python 3.15 is supported.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>