34
34
import digitalio
35
35
36
36
try :
37
- from typing import Optional , Union
37
+ from typing import Optional
38
38
from typing_extensions import Literal
39
39
from busio import I2C
40
40
except ImportError :
@@ -106,7 +106,7 @@ def __index__(self) -> int:
106
106
val &= 0x3FFFF
107
107
return val
108
108
109
- def __getitem__ (self , pin_number : int ) -> int :
109
+ def __getitem__ (self , pin_number : int ) -> bool :
110
110
"""Read the single bit at 'pin_number' offset"""
111
111
value = self ._tca ._get_gpio_register (self ._baseaddr , pin_number )
112
112
if self ._invert :
@@ -245,7 +245,7 @@ def _get_gpio_register(self, reg_base_addr, pin_number):
245
245
reg_base_addr += pin_number // 8
246
246
return self ._get_reg_bit (reg_base_addr , pin_number % 8 )
247
247
248
- def get_pin (self , pin : int ) -> digitalio . DigitalInOut :
248
+ def get_pin (self , pin : int ) -> " DigitalInOut" :
249
249
"""Convenience function to create an instance of the DigitalInOut class
250
250
pointing at the specified pin of this TCA8418 device.
251
251
@@ -257,7 +257,7 @@ def get_pin(self, pin: int) -> digitalio.DigitalInOut:
257
257
258
258
# register helpers
259
259
260
- def _set_reg_bit (self , addr : int , bitoffset : int , value : int ) -> None :
260
+ def _set_reg_bit (self , addr : int , bitoffset : int , value : bool ) -> None :
261
261
temp = self ._read_reg (addr )
262
262
if value :
263
263
temp |= 1 << bitoffset
@@ -269,7 +269,7 @@ def _get_reg_bit(self, addr: int, bitoffset: int) -> bool:
269
269
temp = self ._read_reg (addr )
270
270
return bool (temp & (1 << bitoffset ))
271
271
272
- def _write_reg (self , addr : int , val : int ):
272
+ def _write_reg (self , addr : int , val : int ) -> None :
273
273
with self .i2c_device as i2c :
274
274
self ._buf [0 ] = addr
275
275
self ._buf [1 ] = val
@@ -355,7 +355,7 @@ def direction(self, val: digitalio.Direction) -> None:
355
355
self ._dir = val
356
356
357
357
@property
358
- def pull (self ) -> Union [ None , Literal [digitalio .Pull .UP ]]:
358
+ def pull (self ) -> Optional [ Literal [digitalio .Pull .UP ]]:
359
359
"""The pull setting for the digital IO, either `digitalio.Pull.UP`
360
360
for pull up, or ``None`` for no pull up
361
361
"""
0 commit comments