Refactor the app.route decorator

This commit is contained in:
Nikita Antonenkov 2019-04-06 22:26:49 +03:00
parent 653ac7ee14
commit de582d2fc7

View File

@ -180,27 +180,28 @@ class Sanic:
strict_slashes = self.strict_slashes strict_slashes = self.strict_slashes
def response(handler): def response(handler):
args = [key for key in signature(handler).parameters.keys()] args = list(signature(handler).parameters.keys())
if args:
if stream:
handler.is_stream = stream
self.router.add( if not args:
uri=uri,
methods=methods,
handler=handler,
host=host,
strict_slashes=strict_slashes,
version=version,
name=name,
)
return handler
else:
raise ValueError( raise ValueError(
"Required parameter `request` missing " "Required parameter `request` missing "
"in the {0}() route?".format(handler.__name__) "in the {0}() route?".format(handler.__name__)
) )
if stream:
handler.is_stream = stream
self.router.add(
uri=uri,
methods=methods,
handler=handler,
host=host,
strict_slashes=strict_slashes,
version=version,
name=name,
)
return handler
return response return response
# Shorthand method decorators # Shorthand method decorators