Skip to content

Commit

Permalink
[3.5] Use correct type for add_view (aio-libs#3633) (aio-libs#3886)
Browse files Browse the repository at this point in the history
(cherry picked from commit 5ea9169)

Co-authored-by: Tomasz Trębski <kornicameister@gmail.com>
  • Loading branch information
asvetlov and kornicameister authored Jul 5, 2019
1 parent 43b8304 commit 84ddd56
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
1 change: 1 addition & 0 deletions CHANGES/3633.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use correct type for add_view and family
5 changes: 3 additions & 2 deletions aiohttp/web_routedef.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
List,
Optional,
Sequence,
Type,
Union,
overload,
)
Expand Down Expand Up @@ -40,7 +41,7 @@ def register(self, router: UrlDispatcher) -> None:


_SimpleHandler = Callable[[Request], Awaitable[StreamResponse]]
_HandlerType = Union[AbstractView, _SimpleHandler]
_HandlerType = Union[Type[AbstractView], _SimpleHandler]


@attr.s(frozen=True, repr=False, slots=True)
Expand Down Expand Up @@ -120,7 +121,7 @@ def delete(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef:
return route(hdrs.METH_DELETE, path, handler, **kwargs)


def view(path: str, handler: AbstractView, **kwargs: Any) -> RouteDef:
def view(path: str, handler: Type[AbstractView], **kwargs: Any) -> RouteDef:
return route(hdrs.METH_ANY, path, handler, **kwargs)


Expand Down
11 changes: 6 additions & 5 deletions aiohttp/web_urldispatcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
Set,
Sized,
Tuple,
Type,
Union,
cast,
)
Expand Down Expand Up @@ -123,7 +124,7 @@ def raw_match(self, path: str) -> bool:
class AbstractRoute(abc.ABC):

def __init__(self, method: str,
handler: Union[_WebHandler, AbstractView], *,
handler: Union[_WebHandler, Type[AbstractView]], *,
expect_handler: _ExpectHandler=None,
resource: AbstractResource=None) -> None:

Expand Down Expand Up @@ -296,7 +297,7 @@ def __init__(self, *, name: Optional[str]=None) -> None:
self._routes = [] # type: List[ResourceRoute]

def add_route(self, method: str,
handler: Union[AbstractView, _WebHandler], *,
handler: Union[Type[AbstractView], _WebHandler], *,
expect_handler: Optional[_ExpectHandler]=None
) -> 'ResourceRoute':

Expand Down Expand Up @@ -825,7 +826,7 @@ class ResourceRoute(AbstractRoute):
"""A route with resource"""

def __init__(self, method: str,
handler: Union[_WebHandler, AbstractView],
handler: Union[_WebHandler, Type[AbstractView]],
resource: AbstractResource, *,
expect_handler: Optional[_ExpectHandler]=None) -> None:
super().__init__(method, handler, expect_handler=expect_handler,
Expand Down Expand Up @@ -1025,7 +1026,7 @@ def add_resource(self, path: str, *,
return resource

def add_route(self, method: str, path: str,
handler: Union[_WebHandler, AbstractView],
handler: Union[_WebHandler, Type[AbstractView]],
*, name: Optional[str]=None,
expect_handler: Optional[_ExpectHandler]=None
) -> AbstractRoute:
Expand Down Expand Up @@ -1112,7 +1113,7 @@ def add_delete(self, path: str, handler: _WebHandler,
"""
return self.add_route(hdrs.METH_DELETE, path, handler, **kwargs)

def add_view(self, path: str, handler: AbstractView,
def add_view(self, path: str, handler: Type[AbstractView],
**kwargs: Any) -> AbstractRoute:
"""
Shortcut for add_route with ANY methods for a class-based view
Expand Down

0 comments on commit 84ddd56

Please sign in to comment.