Utilise defaultdicts

This code originates from the Python 2.4 supporting version of Flask,
with defaultdicts being added in 2.5. Using defaultdict makes the
intentional usage clearer, and slightly simplifies the code.
This commit is contained in:
pgjones 2021-02-21 12:55:30 +00:00 committed by David Lord
parent 5fea7caba2
commit fd62210f58
No known key found for this signature in database
GPG key ID: 7A1C87E3F5BC42A8
3 changed files with 23 additions and 21 deletions

View file

@ -1292,7 +1292,7 @@ class Flask(Scaffold):
(request.blueprint, None),
(None, None),
):
handler_map = self.error_handler_spec.setdefault(name, {}).get(c)
handler_map = self.error_handler_spec[name][c]
if not handler_map:
continue
@ -1753,10 +1753,10 @@ class Flask(Scaffold):
.. versionadded:: 0.7
"""
funcs = self.url_default_functions.get(None, ())
funcs = self.url_default_functions[None]
if "." in endpoint:
bp = endpoint.rsplit(".", 1)[0]
funcs = chain(funcs, self.url_default_functions.get(bp, ()))
funcs = chain(funcs, self.url_default_functions[bp])
for func in funcs:
func(endpoint, values)
@ -1794,13 +1794,13 @@ class Flask(Scaffold):
bp = _request_ctx_stack.top.request.blueprint
funcs = self.url_value_preprocessors.get(None, ())
funcs = self.url_value_preprocessors[None]
if bp is not None and bp in self.url_value_preprocessors:
funcs = chain(funcs, self.url_value_preprocessors[bp])
for func in funcs:
func(request.endpoint, request.view_args)
funcs = self.before_request_funcs.get(None, ())
funcs = self.before_request_funcs[None]
if bp is not None and bp in self.before_request_funcs:
funcs = chain(funcs, self.before_request_funcs[bp])
for func in funcs:
@ -1857,7 +1857,7 @@ class Flask(Scaffold):
"""
if exc is _sentinel:
exc = sys.exc_info()[1]
funcs = reversed(self.teardown_request_funcs.get(None, ()))
funcs = reversed(self.teardown_request_funcs[None])
bp = _request_ctx_stack.top.request.blueprint
if bp is not None and bp in self.teardown_request_funcs:
funcs = chain(funcs, reversed(self.teardown_request_funcs[bp]))