@@ -6,14 +6,31 @@ from typing import Any, ClassVar, Generic, Literal, overload
66import engineio
77from engineio .async_client import AsyncClient
88from engineio .client import Client
9- from socketio ._types import JsonModule , SerializerType , TransportType
9+ from socketio ._types import (
10+ CatchAllHandler ,
11+ ClientConnectErrorHandler ,
12+ ClientConnectHandler ,
13+ ClientDisconnectHandler ,
14+ ClientDisconnectLegacyHandler ,
15+ EventHandler ,
16+ JsonModule ,
17+ SerializerType ,
18+ TransportType ,
19+ )
1020from socketio .base_namespace import BaseClientNamespace
1121from socketio .packet import Packet
1222from typing_extensions import TypeVar
1323
1424_T_co = TypeVar ("_T_co" , bound = Client | AsyncClient , covariant = True , default = Any )
1525_IsAsyncio = TypeVar ("_IsAsyncio" , bound = bool , default = Literal [False ])
1626_F = TypeVar ("_F" , bound = Callable [..., Any ])
27+ _F_event = TypeVar ("_F_event" , bound = EventHandler )
28+ _F_connect = TypeVar ("_F_connect" , bound = ClientConnectHandler )
29+ _F_connect_error = TypeVar ("_F_connect_error" , bound = ClientConnectErrorHandler )
30+ _F_disconnect = TypeVar (
31+ "_F_disconnect" , bound = ClientDisconnectHandler | ClientDisconnectLegacyHandler
32+ )
33+ _F_catch_all = TypeVar ("_F_catch_all" , bound = CatchAllHandler )
1734
1835default_logger : logging .Logger
1936reconnecting_clients : list [BaseClient [Any ]]
@@ -62,12 +79,40 @@ class BaseClient(Generic[_IsAsyncio, _T_co]):
6279 def is_asyncio_based (self ) -> _IsAsyncio : ...
6380 @overload
6481 def on (
65- self , event : Callable [..., Any ], handler : None = ..., namespace : None = ...
66- ) -> None : ...
82+ self ,
83+ event : Literal ["connect" ],
84+ handler : None = ...,
85+ namespace : str | None = ...,
86+ ) -> Callable [[_F_connect ], _F_connect ]: ...
6787 @overload
6888 def on (
69- self , event : str , handler : Callable [..., Any ], namespace : str | None = ...
70- ) -> Callable [[_F ], _F ] | None : ...
89+ self ,
90+ event : Literal ["connect_error" ],
91+ handler : None = ...,
92+ namespace : str | None = ...,
93+ ) -> Callable [[_F_connect_error ], _F_connect_error ]: ...
94+ @overload
95+ def on (
96+ self ,
97+ event : Literal ["disconnect" ],
98+ handler : None = ...,
99+ namespace : str | None = ...,
100+ ) -> Callable [[_F_disconnect ], _F_disconnect ]: ...
101+ @overload
102+ def on (
103+ self , event : Literal ["*" ], handler : None = ..., namespace : str | None = ...
104+ ) -> Callable [[_F_catch_all ], _F_catch_all ]: ...
105+ @overload
106+ def on (
107+ self , event : str , handler : None = ..., namespace : str | None = ...
108+ ) -> Callable [[_F_event ], _F_event ]: ...
109+ @overload
110+ def on (
111+ self ,
112+ event : Callable [..., Any ],
113+ handler : None = ...,
114+ namespace : str | None = ...,
115+ ) -> None : ...
71116 @overload
72117 def on (
73118 self ,
@@ -76,15 +121,9 @@ class BaseClient(Generic[_IsAsyncio, _T_co]):
76121 namespace : str | None = ...,
77122 ) -> Callable [[_F ], _F ] | None : ...
78123 @overload
79- def event (self , handler : Callable [..., Any ] ) -> None : ...
124+ def event (self , handler : EventHandler ) -> None : ...
80125 @overload
81- def event (
82- self , handler : Callable [..., Any ], namespace : str | None
83- ) -> Callable [[_F ], _F ]: ...
84- @overload
85- def event (
86- self , handler : Callable [..., Any ], namespace : str | None = ...
87- ) -> Callable [[_F ], _F ] | None : ...
126+ def event (self , namespace : str | None ) -> Callable [[_F_event ], _F_event ]: ...
88127 def register_namespace (self , namespace_handler : BaseClientNamespace ) -> None : ...
89128 def get_sid (self , namespace : str | None = ...) -> str | None : ...
90129 def transport (self ) -> TransportType : ...
0 commit comments