Skip to content

Commit 5f45cf5

Browse files
committed
chore: fix cythonize of _service_state_changed_from_listener
#1292 resulted in browser failing to cythonize
1 parent bdcf286 commit 5f45cf5

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

src/zeroconf/_services/browser.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import random
2626
import threading
2727
import warnings
28+
from functools import partial
2829
from types import TracebackType # noqa # used in type hints
2930
from typing import (
3031
TYPE_CHECKING,
@@ -187,6 +188,17 @@ def generate_service_query(
187188
return _group_ptr_queries_with_known_answers(now, multicast, questions_with_known_answers)
188189

189190

191+
def _on_change_dispatcher(
192+
listener: ServiceListener,
193+
zeroconf: 'Zeroconf',
194+
service_type: str,
195+
name: str,
196+
state_change: ServiceStateChange,
197+
) -> None:
198+
"""Dispatch a service state change to a listener."""
199+
getattr(listener, _ON_CHANGE_DISPATCH[state_change])(zeroconf, service_type, name)
200+
201+
190202
def _service_state_changed_from_listener(listener: ServiceListener) -> Callable[..., None]:
191203
"""Generate a service_state_changed handlers from a listener."""
192204
assert listener is not None
@@ -196,13 +208,7 @@ def _service_state_changed_from_listener(listener: ServiceListener) -> Callable[
196208
"don't care about the updates), it'll become mandatory." % (listener,),
197209
FutureWarning,
198210
)
199-
200-
def on_change(
201-
zeroconf: 'Zeroconf', service_type: str, name: str, state_change: ServiceStateChange
202-
) -> None:
203-
getattr(listener, _ON_CHANGE_DISPATCH[state_change])(zeroconf, service_type, name)
204-
205-
return on_change
211+
return partial(_on_change_dispatcher, listener)
206212

207213

208214
class QueryScheduler:

0 commit comments

Comments
 (0)