Skip to content

Commit 1b7c06f

Browse files
authored
Fix some type checker errors in network module (#534)
* Annotate PeriodicMessageTask in NmtMaster and NmtSlave. * Type annotate Network.notifier. * Remove duplicate initialization of PeriodicMessageTask._task. The attribute is set within the method directly following. So there is no need to initialize it to None before, only to confuse type checkers.
1 parent 6ef4f5e commit 1b7c06f

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

canopen/network.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(self, bus: Optional[can.BusABC] = None):
4141
#: List of :class:`can.Listener` objects.
4242
#: Includes at least MessageListener.
4343
self.listeners = [MessageListener(self)]
44-
self.notifier = None
44+
self.notifier: Optional[can.Notifier] = None
4545
self.nodes: Dict[int, Union[RemoteNode, LocalNode]] = {}
4646
self.subscribers: Dict[int, List[Callback]] = {}
4747
self.send_lock = threading.Lock()
@@ -311,7 +311,6 @@ def __init__(
311311
self.msg = can.Message(is_extended_id=can_id > 0x7FF,
312312
arbitration_id=can_id,
313313
data=data, is_remote_frame=remote)
314-
self._task = None
315314
self._start()
316315

317316
def _start(self):

canopen/nmt.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
import logging
33
import struct
44
import time
5-
from typing import Callable, Optional
5+
from typing import Callable, Optional, TYPE_CHECKING
6+
7+
if TYPE_CHECKING:
8+
from canopen.network import PeriodicMessageTask
9+
610

711
logger = logging.getLogger(__name__)
812

@@ -107,7 +111,7 @@ class NmtMaster(NmtBase):
107111
def __init__(self, node_id: int):
108112
super(NmtMaster, self).__init__(node_id)
109113
self._state_received = None
110-
self._node_guarding_producer = None
114+
self._node_guarding_producer: Optional[PeriodicMessageTask] = None
111115
#: Timestamp of last heartbeat message
112116
self.timestamp: Optional[float] = None
113117
self.state_update = threading.Condition()
@@ -197,7 +201,7 @@ class NmtSlave(NmtBase):
197201

198202
def __init__(self, node_id: int, local_node):
199203
super(NmtSlave, self).__init__(node_id)
200-
self._send_task = None
204+
self._send_task: Optional[PeriodicMessageTask] = None
201205
self._heartbeat_time_ms = 0
202206
self._local_node = local_node
203207

0 commit comments

Comments
 (0)