Skip to content

Commit a42512c

Browse files
authored
Cleanup typing in zeroconf._services (#711)
1 parent 6b923de commit a42512c

1 file changed

Lines changed: 31 additions & 32 deletions

File tree

zeroconf/_services/__init__.py

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def update_service(self, zc: 'Zeroconf', type_: str, name: str) -> None:
9999

100100
class Signal:
101101
def __init__(self) -> None:
102-
self._handlers = [] # type: List[Callable[..., None]]
102+
self._handlers: List[Callable[..., None]] = []
103103

104104
def fire(self, **kwargs: Any) -> None:
105105
for h in list(self._handlers):
@@ -233,7 +233,7 @@ def __init__(
233233
) -> None:
234234
"""Creates a browser for a specific type"""
235235
assert handlers or listener, 'You need to specify at least one handler'
236-
self.types = set(type_ if isinstance(type_, list) else [type_]) # type: Set[str]
236+
self.types: Set[str] = set(type_ if isinstance(type_, list) else [type_])
237237
for check_type_ in self.types:
238238
# Will generate BadTypeInNameException on a bad name
239239
service_type_name(check_type_, strict=False)
@@ -245,9 +245,8 @@ def __init__(
245245
current_time = current_time_millis()
246246
self._next_time = {check_type_: current_time for check_type_ in self.types}
247247
self._delay = {check_type_: delay for check_type_ in self.types}
248-
self._pending_handlers = OrderedDict() # type: OrderedDict[Tuple[str, str], ServiceStateChange]
249-
self._handlers_to_call = OrderedDict() # type: OrderedDict[Tuple[str, str], ServiceStateChange]
250-
248+
self._pending_handlers: OrderedDict[Tuple[str, str], ServiceStateChange] = OrderedDict()
249+
self._handlers_to_call: OrderedDict[Tuple[str, str], ServiceStateChange] = OrderedDict()
251250
self._service_state_changed = Signal()
252251

253252
self.done = False
@@ -552,13 +551,13 @@ def __init__(
552551
self.port = port
553552
self.weight = weight
554553
self.priority = priority
555-
if server:
556-
self.server = server
557-
else:
558-
self.server = name
554+
self.server = server if server else name
559555
self.server_key = self.server.lower()
560-
self._properties = {} # type: Dict
561-
self._set_properties(properties)
556+
self._properties: Dict[Union[str, bytes], Optional[Union[str, bytes]]] = {}
557+
if isinstance(properties, bytes):
558+
self._set_text(properties)
559+
else:
560+
self._set_properties(properties)
562561
self.host_ttl = host_ttl
563562
self.other_ttl = other_ttl
564563

@@ -618,33 +617,33 @@ def parsed_addresses(self, version: IPVersion = IPVersion.All) -> List[str]:
618617
for addr in result
619618
]
620619

621-
def _set_properties(self, properties: Union[bytes, Dict]) -> None:
620+
def _set_properties(self, properties: Dict) -> None:
622621
"""Sets properties and text of this info from a dictionary"""
623-
if isinstance(properties, dict):
624-
self._properties = properties
625-
list_ = []
626-
result = b''
627-
for key, value in properties.items():
628-
if isinstance(key, str):
629-
key = key.encode('utf-8')
630-
631-
record = key
632-
if value is not None:
633-
if not isinstance(value, bytes):
634-
value = str(value).encode('utf-8')
635-
record += b'=' + value
636-
list_.append(record)
637-
for item in list_:
638-
result = b''.join((result, int2byte(len(item)), item))
639-
self.text = result
640-
else:
641-
self.text = properties
622+
self._properties = properties
623+
list_ = []
624+
result = b''
625+
for key, value in properties.items():
626+
if isinstance(key, str):
627+
key = key.encode('utf-8')
628+
629+
record = key
630+
if value is not None:
631+
if not isinstance(value, bytes):
632+
value = str(value).encode('utf-8')
633+
record += b'=' + value
634+
list_.append(record)
635+
for item in list_:
636+
result = b''.join((result, int2byte(len(item)), item))
637+
self.text = result
642638

643639
def _set_text(self, text: bytes) -> None:
644640
"""Sets properties and text given a text field"""
645641
self.text = text
646-
result = {} # type: Dict
647642
end = len(text)
643+
if end == 0:
644+
self._properties = {}
645+
return
646+
result: Dict[Union[str, bytes], Optional[Union[str, bytes]]] = {}
648647
index = 0
649648
strs = []
650649
while index < end:

0 commit comments

Comments
 (0)