Resolve typing of stacked route definitions (#2455)
This commit is contained in:
parent
1668e1532f
commit
a411bc06e3
|
@ -8,7 +8,17 @@ from pathlib import PurePath
|
||||||
from re import sub
|
from re import sub
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
from time import gmtime, strftime
|
from time import gmtime, strftime
|
||||||
from typing import Any, Callable, Iterable, List, Optional, Set, Tuple, Union
|
from typing import (
|
||||||
|
Any,
|
||||||
|
Callable,
|
||||||
|
Iterable,
|
||||||
|
List,
|
||||||
|
Optional,
|
||||||
|
Set,
|
||||||
|
Tuple,
|
||||||
|
Union,
|
||||||
|
cast,
|
||||||
|
)
|
||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
|
|
||||||
from sanic_routing.route import Route # type: ignore
|
from sanic_routing.route import Route # type: ignore
|
||||||
|
@ -283,7 +293,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **GET** *HTTP* method
|
Add an API URL under the **GET** *HTTP* method
|
||||||
|
|
||||||
|
@ -299,7 +309,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"GET"}),
|
methods=frozenset({"GET"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -310,6 +322,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def post(
|
def post(
|
||||||
|
@ -323,7 +336,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **POST** *HTTP* method
|
Add an API URL under the **POST** *HTTP* method
|
||||||
|
|
||||||
|
@ -339,7 +352,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"POST"}),
|
methods=frozenset({"POST"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -350,6 +365,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def put(
|
def put(
|
||||||
|
@ -363,7 +379,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **PUT** *HTTP* method
|
Add an API URL under the **PUT** *HTTP* method
|
||||||
|
|
||||||
|
@ -379,7 +395,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"PUT"}),
|
methods=frozenset({"PUT"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -390,6 +408,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def head(
|
def head(
|
||||||
|
@ -403,7 +422,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **HEAD** *HTTP* method
|
Add an API URL under the **HEAD** *HTTP* method
|
||||||
|
|
||||||
|
@ -427,7 +446,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"HEAD"}),
|
methods=frozenset({"HEAD"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -438,6 +459,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def options(
|
def options(
|
||||||
|
@ -451,7 +473,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **OPTIONS** *HTTP* method
|
Add an API URL under the **OPTIONS** *HTTP* method
|
||||||
|
|
||||||
|
@ -475,7 +497,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"OPTIONS"}),
|
methods=frozenset({"OPTIONS"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -486,6 +510,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def patch(
|
def patch(
|
||||||
|
@ -499,7 +524,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **PATCH** *HTTP* method
|
Add an API URL under the **PATCH** *HTTP* method
|
||||||
|
|
||||||
|
@ -525,7 +550,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"PATCH"}),
|
methods=frozenset({"PATCH"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -536,6 +563,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def delete(
|
def delete(
|
||||||
|
@ -549,7 +577,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix: str = "/v",
|
version_prefix: str = "/v",
|
||||||
error_format: Optional[str] = None,
|
error_format: Optional[str] = None,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
) -> RouteWrapper:
|
) -> RouteHandler:
|
||||||
"""
|
"""
|
||||||
Add an API URL under the **DELETE** *HTTP* method
|
Add an API URL under the **DELETE** *HTTP* method
|
||||||
|
|
||||||
|
@ -565,7 +593,9 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
will be appended to the route context (``route.ctx``)
|
will be appended to the route context (``route.ctx``)
|
||||||
:return: Object decorated with :func:`route` method
|
:return: Object decorated with :func:`route` method
|
||||||
"""
|
"""
|
||||||
return self.route(
|
return cast(
|
||||||
|
RouteHandler,
|
||||||
|
self.route(
|
||||||
uri,
|
uri,
|
||||||
methods=frozenset({"DELETE"}),
|
methods=frozenset({"DELETE"}),
|
||||||
host=host,
|
host=host,
|
||||||
|
@ -576,6 +606,7 @@ class RouteMixin(metaclass=SanicMeta):
|
||||||
version_prefix=version_prefix,
|
version_prefix=version_prefix,
|
||||||
error_format=error_format,
|
error_format=error_format,
|
||||||
**ctx_kwargs,
|
**ctx_kwargs,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
def websocket(
|
def websocket(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user