This is the Werkzeug 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.
PyPI: https://pypi.org/project/Werkzeug/3.1.0/
Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-1-0
Milestone: https://github.com/pallets/werkzeug/milestone/34?closed=1
- Drop support for Python 3.8. #2966
- Remove previously deprecated code. #2967
Request.max_form_memory_size
defaults to 500kB instead of unlimited. Non-file form fields over this size will cause aRequestEntityTooLarge
error. #2964OrderedMultiDict
andImmutableOrderedMultiDict
are deprecated. UseMultiDict
andImmutableMultiDict
instead. #2968- Behavior of properties on
request.cache_control
andresponse.cache_control
has been significantly adjusted.- Dict values are always
str | None
. Setting properties will convert the value to a string. Setting a property toFalse
is equivalent to setting it toNone
. Getting typed properties will returnNone
if conversion raisesValueError
, rather than the string. #2980 max_age
isNone
if present without a value, rather than-1
. #2980no_cache
is a boolean for requests, it isTrue
instead of"*"
when present. It remains a string for responses. #2980max_stale
isTrue
if present without a value, rather than"*"
. #2980no_transform
is a boolean. Previously it was mistakenly alwaysNone
. #2881min_fresh
isNone
if present without a value, rather than"*"
. #2881private
isTrue
if present without a value, rather than"*"
. #2980- Added the
must_understand
property. #2881 - Added the
stale_while_revalidate
, andstale_if_error
properties. #2948 - Type annotations more accurately reflect the values. #2881
- Dict values are always
- Support Cookie CHIPS (Partitioned Cookies). #2797
- Add 421
MisdirectedRequest
HTTP exception. #2850 - Increase default work factor for PBKDF2 to 1,000,000 iterations. #2969
- Inline annotations for
datastructures
, removing stub files. #2970 MultiDict.getlist
catchesTypeError
in addition toValueError
when doing type conversion. #2976- Implement
|
and|=
operators forMultiDict
,Headers
, andCallbackDict
, and disallow|=
on immutable types. #2977