Skip to content

Commit 7ebfc2b

Browse files
authored
Prevent an error in the log when using a generator with sanic datastar_response (#986)
1 parent bb25511 commit 7ebfc2b

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/datastar_py/sanic.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ async def datastar_respond(
5757

5858
def datastar_response(
5959
func: Callable[P, Awaitable[DatastarEvents] | DatastarEvents],
60-
) -> Callable[P, Awaitable[DatastarResponse]]:
60+
) -> Callable[P, Awaitable[DatastarResponse | None]]:
6161
"""A decorator which wraps a function result in DatastarResponse.
6262
6363
Can be used on a sync or async function or generator function.
6464
"""
6565

6666
@wraps(func)
67-
async def wrapper(*args: P.args, **kwargs: P.kwargs) -> DatastarResponse:
67+
async def wrapper(*args: P.args, **kwargs: P.kwargs) -> DatastarResponse | None:
6868
r = func(*args, **kwargs)
6969
if isinstance(r, Awaitable):
7070
return DatastarResponse(await r)
@@ -74,14 +74,14 @@ async def wrapper(*args: P.args, **kwargs: P.kwargs) -> DatastarResponse:
7474
async for event in r:
7575
await response.send(event)
7676
await response.eof()
77-
return response
77+
return None
7878
if isgenerator(r):
7979
request = args[0]
8080
response = await request.respond(response=DatastarResponse())
8181
for event in r:
8282
await response.send(event)
8383
await response.eof()
84-
return response
84+
return None
8585
return DatastarResponse(r)
8686

8787
wrapper.__annotations__["return"] = "DatastarResponse"

0 commit comments

Comments
 (0)