interim
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from enum import Enum, auto
|
||||
from functools import partial
|
||||
from typing import Set
|
||||
from typing import List
|
||||
|
||||
from sanic.models.futures import FutureListener
|
||||
|
||||
@@ -17,7 +17,7 @@ class ListenerEvent(str, Enum):
|
||||
|
||||
class ListenerMixin:
|
||||
def __init__(self, *args, **kwargs) -> None:
|
||||
self._future_listeners: Set[FutureListener] = set()
|
||||
self._future_listeners: List[FutureListener] = list()
|
||||
|
||||
def _apply_listener(self, listener: FutureListener):
|
||||
raise NotImplementedError
|
||||
@@ -32,7 +32,7 @@ class ListenerMixin:
|
||||
nonlocal apply
|
||||
|
||||
future_listener = FutureListener(listener, event)
|
||||
self._future_listeners.add(future_listener)
|
||||
self._future_listeners.append(future_listener)
|
||||
if apply:
|
||||
self._apply_listener(future_listener)
|
||||
return listener
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
from functools import partial
|
||||
from typing import Set
|
||||
from typing import List
|
||||
|
||||
from sanic.models.futures import FutureMiddleware
|
||||
|
||||
|
||||
class MiddlewareMixin:
|
||||
def __init__(self, *args, **kwargs) -> None:
|
||||
self._future_middleware: Set[FutureMiddleware] = set()
|
||||
self._future_middleware: List[FutureMiddleware] = list()
|
||||
|
||||
def _apply_middleware(self, middleware: FutureMiddleware):
|
||||
raise NotImplementedError
|
||||
@@ -27,7 +27,7 @@ class MiddlewareMixin:
|
||||
nonlocal apply
|
||||
|
||||
future_middleware = FutureMiddleware(middleware, attach_to)
|
||||
self._future_middleware.add(future_middleware)
|
||||
self._future_middleware.append(future_middleware)
|
||||
if apply:
|
||||
self._apply_middleware(future_middleware)
|
||||
return middleware
|
||||
|
||||
@@ -52,11 +52,6 @@ class RouteMixin:
|
||||
of type :class:`FutureRoute`
|
||||
"""
|
||||
|
||||
# TODO:
|
||||
# - run when applying future, not here
|
||||
if websocket:
|
||||
self.enable_websocket()
|
||||
|
||||
# Fix case where the user did not prefix the URL with a /
|
||||
# and will probably get confused as to why it's not working
|
||||
if not uri.startswith("/"):
|
||||
@@ -85,20 +80,6 @@ class RouteMixin:
|
||||
# variable will be a tuple of (existing routes, handler fn)
|
||||
_, handler = handler
|
||||
|
||||
# TODO:
|
||||
# - move websocket handler out and attach it when applying
|
||||
if websocket:
|
||||
websocket_handler = partial(
|
||||
self._websocket_handler,
|
||||
handler,
|
||||
subprotocols=subprotocols,
|
||||
)
|
||||
websocket_handler.__name__ = (
|
||||
"websocket_handler_" + handler.__name__
|
||||
)
|
||||
websocket_handler.is_websocket = True
|
||||
handler = websocket_handler
|
||||
|
||||
# TODO:
|
||||
# - THink this thru.... do we want all routes namespaced?
|
||||
# -
|
||||
@@ -119,6 +100,8 @@ class RouteMixin:
|
||||
version,
|
||||
name,
|
||||
ignore_body,
|
||||
websocket,
|
||||
subprotocols,
|
||||
)
|
||||
|
||||
self._future_routes.add(route)
|
||||
|
||||
Reference in New Issue
Block a user