chore(deps): update dependency flask to v3 #13934
                
     Open
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
This PR contains the following updates:
==2.1.0->==3.1.2Release Notes
pallets/flask (Flask)
v3.1.2Compare Source
Released 2025-08-19
stream_with_contextdoes not fail inside async views. :issue:5774follow_redirectsin the test client, the final stateof
sessionis correct. :issue:5786send_file. :issue:5776v3.1.1Compare Source
Released 2025-05-13
SECRET_KEY_FALLBACKS. :ghsa:4grg-w6v8-c28gcli_runner.invoke. :issue:5645flask --helploads the app and plugins first to make sure all commandsare shown. :issue:
5673AsyncIterable. This is not accurate for Flask, but makes typing easierfor Quart. :pr:
5659v3.1.0Compare Source
Released 2024-11-13
5623Werkzeug >= 3.1, ItsDangerous >= 2.2, Blinker >= 1.9. :pr:
5624,5633responses. :pr:
5496Flask.open_resource/open_instance_resourceandBlueprint.open_resourcetake anencodingparameter to use whenopening in text mode. It defaults to
utf-8. :issue:5504Request.max_content_lengthcan be customized per-request instead of onlythrough the
MAX_CONTENT_LENGTHconfig. AddedMAX_FORM_MEMORY_SIZEandMAX_FORM_PARTSconfig. Added documentationabout resource limits to the security page. :issue:
5625Partitionedcookie attribute (CHIPS), with theSESSION_COOKIE_PARTITIONEDconfig. :issue:5472-e pathtakes precedence over default.envand.flaskenvfiles.load_dotenvloads default files in addition to a path unlessload_defaults=Falseis passed. :issue:5628SECRET_KEY_FALLBACKSconfig, a list of oldsecret keys that can still be used for unsigning. Extensions will need to
add support. :issue:
5621host_matching=Trueorsubdomain_matching=Falseinteracts with
SERVER_NAME. SettingSERVER_NAMEno longer restrictsrequests to only that domain. :issue:
5553Request.trusted_hostsis checked during routing, and can be set throughthe
TRUSTED_HOSTSconfig. :issue:5636v3.0.3Compare Source
Released 2024-04-07
hashlib.sha1may not be available in FIPS builds. Don'taccess it at import time so the developer has time to change the default.
:issue:
5448cliattribute in the sansio scaffold, but rather inthe
Flaskconcrete class. :pr:5270v3.0.2Compare Source
Released 2024-02-03
jinja_loaderproperty. :issue:5388--extra-filesand--exclude-patternsCLI options.:issue:
5391v3.0.1Compare Source
Released 2024-01-18
pathargument tosend_file. :issue:5336flask run --keyoption. :pr:5344json.loadsobject_hook. This allows other JSON providers that don't implement that.:issue:
53815383v3.0.0Compare Source
Released 2023-09-30
5223__version__attribute. Use feature detection, orimportlib.metadata.version("flask"), instead. :issue:5230classes have Sans-IO bases. :pr:
51275264v2.3.3Compare Source
Released 2023-08-21
flit_coreinstead ofsetuptoolsas build backend.5160v2.3.2Compare Source
Released 2023-05-01
Vary: Cookieheader when the session is accessed, modified, or refreshed.:ghsa:
m2qf-hxjv-5gpqv2.3.1Compare Source
Released 2023-04-25
from flask import Markup. :issue:5084v2.3.0Compare Source
Released 2023-04-25
Drop support for Python 3.7. :pr:
5072Update minimum requirements to the latest versions: Werkzeug>=2.3.0, Jinja2>3.1.2,
itsdangerous>=2.1.2, click>=8.1.3.
Remove previously deprecated code. :pr:
4995pushandpopmethods of the deprecated_app_ctx_stackand_request_ctx_stackobjects are removed.topstill exists to giveextensions more time to update, but it will be removed.
FLASK_ENVenvironment variable,ENVconfig key, andapp.envproperty are removed.
session_cookie_name,send_file_max_age_default,use_x_sendfile,propagate_exceptions, andtemplates_auto_reloadproperties onappare removed.
JSON_AS_ASCII,JSON_SORT_KEYS,JSONIFY_MIMETYPE, andJSONIFY_PRETTYPRINT_REGULARconfig keys are removed.app.before_first_requestandbp.before_app_first_requestdecoratorsare removed.
json_encoderandjson_decoderattributes on app and blueprint, and thecorresponding
json.JSONEncoderandJSONDecoderclasses, are removed.json.htmlsafe_dumpsandhtmlsafe_dumpfunctions are removed.warning. :pr:
4997Importing
escapeandMarkupfromflaskis deprecated. Import themdirectly from
markupsafeinstead. :pr:4996The
app.got_first_requestproperty is deprecated. :pr:4997The
locked_cached_propertydecorator is deprecated. Use a lock inside thedecorated function if locking is needed. :issue:
4993Signals are always available.
blinker>=1.6.2is a required dependency. Thesignals_availableattribute is deprecated. :issue:5056Signals support
asyncsubscriber functions. :pr:5049Remove uses of locks that could cause requests to block each other very briefly.
:issue:
4993Use modern packaging metadata with
pyproject.tomlinstead ofsetup.cfg.:pr:
4947Ensure subdomains are applied with nested blueprints. :issue:
4834config.from_filecan usetext=Falseto indicate that the parser wants abinary file instead. :issue:
4989If a blueprint is created with an empty name it raises a
ValueError.:issue:
5010SESSION_COOKIE_DOMAINdoes not fall back toSERVER_NAME. The default is notto set the domain, which modern browsers interpret as an exact match rather than
a subdomain match. Warnings about
localhostand IP addresses are also removed.:issue:
5051The
routescommand shows each rule'ssubdomainorhostwhen domainmatching is in use. :issue:
5004Use postponed evaluation of annotations. :pr:
5071v2.2.5Compare Source
Released 2023-05-02
Vary: Cookieheader when the session is accessed, modified, or refreshed.v2.2.4Compare Source
Released 2023-04-25
v2.2.3Compare Source
Released 2023-02-15
.svgtemplate files. :issue:4831template_folderto acceptpathlib.Path. :issue:4892--debugoption to theflask runcommand. :issue:4777v2.2.2Compare Source
Released 2022-08-08
to the new faster router, header parsing, and the development
server. :pr:
4754app.envto be"production". Thisattribute remains deprecated. :issue:
4740v2.2.1Compare Source
Released 2022-08-03
json_encoderorjson_decoderraises adeprecation warning. :issue:
4732v2.2.0Compare Source
Released 2022-08-01
Remove previously deprecated code. :pr:
4667send_fileparameters have been removed.download_namereplacesattachment_filename,max_agereplaces
cache_timeout, andetagreplacesadd_etags.Additionally,
pathreplacesfilenameinsend_from_directory.RequestContext.gproperty returningAppContext.gisremoved.
Update Werkzeug dependency to >= 2.2.
The app and request contexts are managed using Python context vars
directly rather than Werkzeug's
LocalStack. This should resultin better performance and memory use. :pr:
4682_app_ctx_stack.topand
_request_ctx_stack.topare deprecated. Store data onginstead using a unique prefix, likeg._extension_name_attr.The
FLASK_ENVenvironment variable andapp.envattribute aredeprecated, removing the distinction between development and debug
mode. Debug mode should be controlled directly using the
--debugoption or
app.run(debug=True). :issue:4714Some attributes that proxied config keys on
appare deprecated:session_cookie_name,send_file_max_age_default,use_x_sendfile,propagate_exceptions, andtemplates_auto_reload. Use the relevant config keys instead.:issue:
4716Add new customization points to the
Flaskapp object for manypreviously global behaviors.
flask.url_forwill callapp.url_for. :issue:4568flask.abortwill callapp.aborter.Flask.aborter_classandFlask.make_abortercan be usedto customize this aborter. :issue:
4567flask.redirectwill callapp.redirect. :issue:4569flask.jsonis an instance ofJSONProvider. A differentprovider can be set to use a different JSON library.
flask.jsonifywill callapp.json.response, otherfunctions in
flask.jsonwill call corresponding functions inapp.json. :pr:4692JSON configuration is moved to attributes on the default
app.jsonprovider.JSON_AS_ASCII,JSON_SORT_KEYS,JSONIFY_MIMETYPE, andJSONIFY_PRETTYPRINT_REGULARaredeprecated. :pr:
4692Setting custom
json_encoderandjson_decoderclasses on theapp or a blueprint, and the corresponding
json.JSONEncoderandJSONDecoderclasses, are deprecated. JSON behavior can now beoverridden using the
app.jsonprovider interface. :pr:4692json.htmlsafe_dumpsandjson.htmlsafe_dumpare deprecated,the function is built-in to Jinja now. :pr:
4692Refactor
register_error_handlerto consolidate error checking.Rewrite some error messages to be more consistent. :issue:
4559Use Blueprint decorators and functions intended for setup after
registering the blueprint will show a warning. In the next version,
this will become an error just like the application setup methods.
:issue:
4571before_first_requestis deprecated. Run setup code when creatingthe application instead. :issue:
4605Added the
View.init_every_requestclass attribute. If a viewsubclass sets this to
False, the view will not create a newinstance on every request. :issue:
2520.A
flask.cli.FlaskGroupClick group can be nested as asub-command in a custom CLI. :issue:
3263Add
--appand--debugoptions to theflaskCLI, insteadof requiring that they are set through environment variables.
:issue:
2836Add
--env-fileoption to theflaskCLI. This allowsspecifying a dotenv file to load in addition to
.envand.flaskenv. :issue:3108It is no longer required to decorate custom CLI commands on
app.cliorblueprint.cliwith@with_appcontext, an appcontext will already be active at that point. :issue:
2410SessionInterface.get_expiration_timeuses a timezone-awarevalue. :pr:
4645View functions can return generators directly instead of wrapping
them in a
Response. :pr:4629Add
stream_templateandstream_template_stringfunctions torender a template as a stream of pieces. :pr:
4629A new implementation of context preservation during debugging and
testing. :pr:
4666request,g, and other context-locals point to thecorrect data when running code in the interactive debugger
console. :issue:
2836even if the context is preserved. They are also run after the
preserved context is popped.
stream_with_contextpreserves context separately from awith clientblock. It will be cleaned up whenresponse.get_data()orresponse.close()is called.Allow returning a list from a view function, to convert it to a
JSON response like a dict is. :issue:
4672When type checking, allow
TypedDictto be returned from viewfunctions. :pr:
4695Remove the
--eager-loading/--lazy-loadingoptions from theflask runcommand. The app is always eager loaded the firsttime, then lazily loaded in the reloader. The reloader always prints
errors immediately but continues serving. Remove the internal
DispatchingAppmiddleware used by the previous implementation.:issue:
4715v2.1.3Compare Source
Released 2022-07-13
commands. :pr:
4606after_requestfunctions. :issue:4600instance_pathfor namespace packages uses the path closest tothe imported submodule. :issue:
4610render_templateandrender_template_stringare used outside an application context.:pr:
4693v2.1.2Compare Source
Released 2022-04-28
json.loads, it accepts str or bytes.:issue:
4519--certand--keyoptions onflask runcan be givenin either order. :issue:
4459v2.1.1Compare Source
Released on 2022-03-30
which is required on Python < 3.10. :issue:
4502Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
To execute skipped test pipelines write comment
/ok-to-test.This PR has been generated by MintMaker (powered by Renovate Bot).