Skip to content

Commit b8fb9bf

Browse files
committed
recactor sanic server
this greatly simplifies the underlying implementation by avoiding any reliance on inheritance
1 parent 438c169 commit b8fb9bf

File tree

6 files changed

+151
-165
lines changed

6 files changed

+151
-165
lines changed

scripts/live_docs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def new_builder():
4040
server = PerClientStateServer(main.component, {"cors": True})
4141
_running_idom_servers.append(server)
4242
server.run_in_thread("127.0.0.1", 5555, debug=True)
43+
server.wait_until_started()
4344
old_builder()
4445

4546
return new_builder

src/idom/core/dispatcher.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ async def dispatch_single_view(
4242
task_group.start_soon(_single_incoming_loop, layout, recv)
4343

4444

45+
SharedViewDispatcher = Callable[[SendCoroutine, RecvCoroutine], Awaitable[None]]
4546
_SharedViewDispatcherFuture = Callable[[SendCoroutine, RecvCoroutine], "Future[None]"]
46-
_SharedViewDispatcherCoro = Callable[[SendCoroutine, RecvCoroutine], Awaitable[None]]
4747

4848

4949
@asynccontextmanager
@@ -93,8 +93,8 @@ def dispatch_shared_view_soon(
9393

9494
def ensure_shared_view_dispatcher_future(
9595
layout: Layout,
96-
) -> Tuple[Future[None], _SharedViewDispatcherCoro]:
97-
dispatcher_future: Future[_SharedViewDispatcherCoro] = Future()
96+
) -> Tuple[Future[None], SharedViewDispatcher]:
97+
dispatcher_future: Future[SharedViewDispatcher] = Future()
9898

9999
async def dispatch_shared_view_forever() -> None:
100100
with layout:
@@ -121,7 +121,7 @@ async def dispatch(send: SendCoroutine, recv: RecvCoroutine) -> None:
121121

122122
async def _make_shared_view_dispatcher(
123123
layout: Layout,
124-
) -> Tuple[_SharedViewDispatcherCoro, Ref[Any], WeakSet[Queue[LayoutUpdate]]]:
124+
) -> Tuple[SharedViewDispatcher, Ref[Any], WeakSet[Queue[LayoutUpdate]]]:
125125
initial_update = await layout.render()
126126
model_state = Ref(initial_update.apply_to({}))
127127

src/idom/server/prefab.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def run(
6767

6868
run_server = server.run if not daemon else server.run_in_thread
6969
run_server(host, port, **(run_kwargs or {})) # type: ignore
70+
server.wait_until_started()
7071

7172
return server
7273

src/idom/server/proto.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
try:
99
from typing import Protocol
10-
except ImportError:
10+
except ImportError: # pragma: no cover
1111
from typing_extensions import Protocol # type: ignore
1212

1313

0 commit comments

Comments
 (0)