2626
2727from ._core import Zeroconf
2828from ._exceptions import NonUniqueNameException
29+ from ._services import ServiceListener
2930from ._services .browser import _ServiceBrowserBase
3031from ._services .info import ServiceInfo , instance_name_from_service_info
3132from ._services .types import ZeroconfServiceTypes
4546 "AsyncZeroconf" ,
4647 "AsyncServiceInfo" ,
4748 "AsyncServiceBrowser" ,
48- "AsyncServiceListener" ,
4949 "AsyncZeroconfServiceTypes" ,
5050]
5151
5252
53- class AsyncServiceListener :
54- def add_service (self , aiozc : 'AsyncZeroconf' , type_ : str , name : str ) -> None :
55- raise NotImplementedError ()
56-
57- def remove_service (self , aiozc : 'AsyncZeroconf' , type_ : str , name : str ) -> None :
58- raise NotImplementedError ()
59-
60- def update_service (self , aiozc : 'AsyncZeroconf' , type_ : str , name : str ) -> None :
61- raise NotImplementedError ()
62-
63-
6453class AsyncServiceInfo (ServiceInfo ):
6554 """An async version of ServiceInfo."""
6655
@@ -74,15 +63,15 @@ class AsyncServiceBrowser(_ServiceBrowserBase):
7463
7564 def __init__ (
7665 self ,
77- aiozc : 'AsyncZeroconf ' ,
66+ zeroconf : 'Zeroconf ' ,
7867 type_ : Union [str , list ],
79- handlers : Optional [Union [AsyncServiceListener , List [Callable [..., None ]]]] = None ,
80- listener : Optional [AsyncServiceListener ] = None ,
68+ handlers : Optional [Union [ServiceListener , List [Callable [..., None ]]]] = None ,
69+ listener : Optional [ServiceListener ] = None ,
8170 addr : Optional [str ] = None ,
8271 port : int = _MDNS_PORT ,
8372 delay : int = _BROWSER_TIME ,
8473 ) -> None :
85- super ().__init__ (aiozc . zeroconf , type_ , handlers , listener , addr , port , delay ) # type: ignore
74+ super ().__init__ (zeroconf , type_ , handlers , listener , addr , port , delay )
8675 self ._browser_task = cast (asyncio .Task , asyncio .ensure_future (self .async_browser_task ()))
8776
8877 async def async_cancel (self ) -> None :
@@ -115,7 +104,7 @@ async def async_find(
115104 local_zc = aiozc or AsyncZeroconf (interfaces = interfaces , ip_version = ip_version )
116105 listener = cls ()
117106 async_browser = AsyncServiceBrowser (
118- local_zc , _SERVICE_TYPE_ENUMERATION_NAME , listener = listener # type: ignore
107+ local_zc . zeroconf , _SERVICE_TYPE_ENUMERATION_NAME , listener = listener
119108 )
120109
121110 # wait for responses
@@ -168,7 +157,7 @@ def __init__(
168157 ip_version = ip_version ,
169158 apple_p2p = apple_p2p ,
170159 )
171- self .async_browsers : Dict [AsyncServiceListener , AsyncServiceBrowser ] = {}
160+ self .async_browsers : Dict [ServiceListener , AsyncServiceBrowser ] = {}
172161
173162 async def _async_broadcast_service (self , info : ServiceInfo , interval : int , ttl : Optional [int ]) -> None :
174163 """Send a broadcasts to announce a service at intervals."""
@@ -269,14 +258,14 @@ async def async_get_service_info(
269258 return info
270259 return None
271260
272- async def async_add_service_listener (self , type_ : str , listener : AsyncServiceListener ) -> None :
261+ async def async_add_service_listener (self , type_ : str , listener : ServiceListener ) -> None :
273262 """Adds a listener for a particular service type. This object
274263 will then have its add_service and remove_service methods called when
275264 services of that type become available and unavailable."""
276265 await self .async_remove_service_listener (listener )
277- self .async_browsers [listener ] = AsyncServiceBrowser (self , type_ , listener )
266+ self .async_browsers [listener ] = AsyncServiceBrowser (self . zeroconf , type_ , listener )
278267
279- async def async_remove_service_listener (self , listener : AsyncServiceListener ) -> None :
268+ async def async_remove_service_listener (self , listener : ServiceListener ) -> None :
280269 """Removes a listener from the set that is currently listening."""
281270 if listener in self .async_browsers :
282271 await self .async_browsers [listener ].async_cancel ()
0 commit comments