Skip to content

Commit 2e66994

Browse files
authored
Merge branch 'main' into msgspec-13
2 parents c4a050e + 7e56814 commit 2e66994

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

.all-contributorsrc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,6 +1904,16 @@
19041904
"contributions": [
19051905
"doc"
19061906
]
1907+
},
1908+
{
1909+
"login": "olzhasar",
1910+
"name": "Olzhas Arystanov",
1911+
"avatar_url": "https://avatars.githubusercontent.com/u/12471703?v=4",
1912+
"profile": "https://olzhasar.com",
1913+
"contributions": [
1914+
"bug",
1915+
"doc"
1916+
]
19071917
}
19081918
],
19091919
"contributorsPerLine": 7,

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@ see [the contribution guide](CONTRIBUTING.rst).
582582
<td align="center" valign="top" width="14.28%"><a href="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/mohammedbabelly20"><img src="https://avatars.githubusercontent.com/u/104768048?v=4?s=100" width="100px;" alt="Mohammed Babelly"/><br /><sub><b>Mohammed Babelly</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mohammedbabelly20" title="Code">💻</a></td>
583583
<td align="center" valign="top" width="14.28%"><a href="https://keybase.io/charlesdyfisnet"><img src="https://avatars.githubusercontent.com/u/22370?v=4?s=100" width="100px;" alt="Charles Duffy"/><br /><sub><b>Charles Duffy</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=charles-dyfis-net" title="Code">💻</a></td>
584584
<td align="center" valign="top" width="14.28%"><a href="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/RenameMe1"><img src="https://avatars.githubusercontent.com/u/165988121?v=4?s=100" width="100px;" alt="Evgeny Demchenko"/><br /><sub><b>Evgeny Demchenko</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=RenameMe1" title="Documentation">📖</a></td>
585+
<td align="center" valign="top" width="14.28%"><a href="https://olzhasar.com"><img src="https://avatars.githubusercontent.com/u/12471703?v=4?s=100" width="100px;" alt="Olzhas Arystanov"/><br /><sub><b>Olzhas Arystanov</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/issues?q=author%3Aolzhasar" title="Bug reports">🐛</a> <a href="https://github.com/litestar-org/litestar/commits?author=olzhasar" title="Documentation">📖</a></td>
585586
</tr>
586587
</tbody>
587588
</table>

litestar/handlers/websocket_handlers/listener.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,6 @@ class WebsocketListener(ABC):
335335
"""A sequence of :class:`Guard <.types.Guard>` callables."""
336336
middleware: list[Middleware] | None = None
337337
"""A sequence of :class:`Middleware <.types.Middleware>`."""
338-
on_accept: AnyCallable | None = None
339-
"""Called after a :class:`WebSocket <.connection.WebSocket>` connection has been accepted. Can receive any dependencies"""
340-
on_disconnect: AnyCallable | None = None
341-
"""Called after a :class:`WebSocket <.connection.WebSocket>` connection has been disconnected. Can receive any dependencies"""
342338
receive_mode: WebSocketMode = "text"
343339
""":class:`WebSocket <.connection.WebSocket>` mode to receive data in, either ``text`` or ``binary``."""
344340
send_mode: WebSocketMode = "text"
@@ -380,6 +376,9 @@ def __init__(self, owner: Router) -> None:
380376
self._owner = owner
381377

382378
def to_handler(self) -> WebsocketListenerRouteHandler:
379+
on_accept = self.on_accept if self.on_accept != WebsocketListener.on_accept else None
380+
on_disconnect = self.on_disconnect if self.on_disconnect != WebsocketListener.on_disconnect else None
381+
383382
handler = WebsocketListenerRouteHandler(
384383
dependencies=self.dependencies,
385384
dto=self.dto,
@@ -389,8 +388,8 @@ def to_handler(self) -> WebsocketListenerRouteHandler:
389388
send_mode=self.send_mode,
390389
receive_mode=self.receive_mode,
391390
name=self.name,
392-
on_accept=self.on_accept,
393-
on_disconnect=self.on_disconnect,
391+
on_accept=on_accept,
392+
on_disconnect=on_disconnect,
394393
opt=self.opt,
395394
path=self.path,
396395
return_dto=self.return_dto,
@@ -402,6 +401,16 @@ def to_handler(self) -> WebsocketListenerRouteHandler:
402401
handler.owner = self._owner
403402
return handler
404403

404+
def on_accept(self, *args: Any, **kwargs: Any) -> Any:
405+
"""Called after a :class:`WebSocket <.connection.WebSocket>` connection
406+
has been accepted. Can receive any dependencies
407+
"""
408+
409+
def on_disconnect(self, *args: Any, **kwargs: Any) -> Any:
410+
"""Called after a :class:`WebSocket <.connection.WebSocket>` connection
411+
has been disconnected. Can receive any dependencies
412+
"""
413+
405414
@abstractmethod
406415
def on_receive(self, *args: Any, **kwargs: Any) -> Any:
407416
"""Called after data has been received from the WebSocket.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ known-first-party = ["litestar", "tests", "examples"]
464464
"litestar/_openapi/schema_generation/schema.py" = ["C901"]
465465
"litestar/exceptions/*.*" = ["N818"]
466466
"litestar/handlers/**/*.*" = ["N801"]
467+
"litestar/handlers/websocket_handlers/listener.py" = ["B027"]
467468
"litestar/params.py" = ["N802"]
468469
"test_apps/**/*.*" = ["D", "TRY", "EM", "S", "PTH"]
469470
"tests/**/*.*" = [

tests/unit/test_handlers/test_websocket_handlers/test_listeners.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,10 +394,10 @@ def some_dependency() -> str:
394394
class Listener(WebsocketListener):
395395
path = "/{name: str}"
396396

397-
def on_accept(self, name: str, state: State, query: dict, some: str) -> None: # type: ignore[override]
397+
def on_accept(self, name: str, state: State, query: dict, some: str) -> None: # pyright: ignore
398398
on_accept_mock(name=name, state=state, query=query, some=some)
399399

400-
def on_disconnect(self, name: str, state: State, query: dict, some: str) -> None: # type: ignore[override]
400+
def on_disconnect(self, name: str, state: State, query: dict, some: str) -> None: # pyright: ignore
401401
on_disconnect_mock(name=name, state=state, query=query, some=some)
402402

403403
def on_receive(self, data: bytes) -> None: # pyright: ignore

0 commit comments

Comments
 (0)