@@ -163,7 +163,7 @@ def __iter__(self) -> Iterator[int]:
163163 def __len__ (self ) -> int :
164164 return len (self .indices )
165165
166- def __contains__ (self , index : Union [ int , str ]) :
166+ def __contains__ (self , index : object ) -> bool :
167167 return index in self .names or index in self .indices
168168
169169 def add_object (self , obj : Union [ODArray , ODRecord , ODVariable ]) -> None :
@@ -211,8 +211,8 @@ def __init__(self, name: str, index: int):
211211 self .name = name
212212 #: Storage location of index
213213 self .storage_location = None
214- self .subindices = {}
215- self .names = {}
214+ self .subindices : dict [ int , ODVariable ] = {}
215+ self .names : dict [ str , ODVariable ] = {}
216216
217217 def __repr__ (self ) -> str :
218218 return f"<{ type (self ).__qualname__ } { self .name !r} at { pretty_index (self .index )} >"
@@ -238,10 +238,12 @@ def __len__(self) -> int:
238238 def __iter__ (self ) -> Iterator [int ]:
239239 return iter (sorted (self .subindices ))
240240
241- def __contains__ (self , subindex : Union [ int , str ] ) -> bool :
241+ def __contains__ (self , subindex : object ) -> bool :
242242 return subindex in self .names or subindex in self .subindices
243243
244- def __eq__ (self , other : ODRecord ) -> bool :
244+ def __eq__ (self , other : object ) -> bool :
245+ if not isinstance (other , ODRecord ):
246+ return NotImplemented
245247 return self .index == other .index
246248
247249 def add_member (self , variable : ODVariable ) -> None :
@@ -270,8 +272,8 @@ def __init__(self, name: str, index: int):
270272 self .name = name
271273 #: Storage location of index
272274 self .storage_location = None
273- self .subindices = {}
274- self .names = {}
275+ self .subindices : dict [ int , ODVariable ] = {}
276+ self .names : dict [ str , ODVariable ] = {}
275277
276278 def __repr__ (self ) -> str :
277279 return f"<{ type (self ).__qualname__ } { self .name !r} at { pretty_index (self .index )} >"
@@ -302,7 +304,9 @@ def __len__(self) -> int:
302304 def __iter__ (self ) -> Iterator [int ]:
303305 return iter (sorted (self .subindices ))
304306
305- def __eq__ (self , other : ODArray ) -> bool :
307+ def __eq__ (self , other : object ) -> bool :
308+ if not isinstance (other , ODArray ):
309+ return NotImplemented
306310 return self .index == other .index
307311
308312 def add_member (self , variable : ODVariable ) -> None :
@@ -391,7 +395,9 @@ def qualname(self) -> str:
391395 return f"{ self .parent .name } .{ self .name } "
392396 return self .name
393397
394- def __eq__ (self , other : ODVariable ) -> bool :
398+ def __eq__ (self , other : object ) -> bool :
399+ if not isinstance (other , ODVariable ):
400+ return NotImplemented
395401 return (self .index == other .index and
396402 self .subindex == other .subindex )
397403
@@ -417,7 +423,7 @@ def add_value_description(self, value: int, descr: str) -> None:
417423 """
418424 self .value_descriptions [value ] = descr
419425
420- def add_bit_definition (self , name : str , bits : List [int ]) -> None :
426+ def add_bit_definition (self , name : str , bits : list [int ]) -> None :
421427 """Associate bit(s) with a string description.
422428
423429 :param name: Name of bit(s)
@@ -511,7 +517,7 @@ def encode_desc(self, desc: str) -> int:
511517 raise ValueError (
512518 f"No value corresponds to '{ desc } '. Valid values are: { valid_values } " )
513519
514- def decode_bits (self , value : int , bits : List [int ]) -> int :
520+ def decode_bits (self , value : int , bits : list [int ]) -> int :
515521 try :
516522 bits = self .bit_definitions [bits ]
517523 except (TypeError , KeyError ):
@@ -521,7 +527,7 @@ def decode_bits(self, value: int, bits: List[int]) -> int:
521527 mask |= 1 << bit
522528 return (value & mask ) >> min (bits )
523529
524- def encode_bits (self , original_value : int , bits : List [int ], bit_value : int ):
530+ def encode_bits (self , original_value : int , bits : list [int ], bit_value : int ):
525531 try :
526532 bits = self .bit_definitions [bits ]
527533 except (TypeError , KeyError ):
0 commit comments