Skip to content

Commit f9c52e7

Browse files
committed
Add type annotations
1 parent 5b04087 commit f9c52e7

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

adafruit_nunchuk.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@
2929
from collections import namedtuple
3030
from adafruit_bus_device.i2c_device import I2CDevice
3131

32+
try:
33+
from typing import Type
34+
from busio import I2C
35+
except ImportError:
36+
pass
37+
3238
__version__ = "0.0.0-auto.0"
3339
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk.git"
3440

@@ -54,7 +60,9 @@ class Nunchuk:
5460
_Buttons = namedtuple("Buttons", ("C", "Z"))
5561
_Acceleration = namedtuple("Acceleration", ("x", "y", "z"))
5662

57-
def __init__(self, i2c, address=0x52, i2c_read_delay=0.002):
63+
def __init__(
64+
self, i2c: I2C, address: int = 0x52, i2c_read_delay: float = 0.002
65+
) -> None:
5866
self.buffer = bytearray(8)
5967
self.i2c_device = I2CDevice(i2c, address)
6068
self._i2c_read_delay = i2c_read_delay
@@ -67,7 +75,7 @@ def __init__(self, i2c, address=0x52, i2c_read_delay=0.002):
6775
i2c_dev.write(b"\xFB\x00")
6876

6977
@property
70-
def values(self):
78+
def values(self) -> Type[tuple]:
7179
"""The current state of all values."""
7280
self._read_data()
7381
return self._Values(
@@ -77,33 +85,33 @@ def values(self):
7785
)
7886

7987
@property
80-
def joystick(self):
88+
def joystick(self) -> Type[tuple]:
8189
"""The current joystick position."""
8290
return self._joystick()
8391

8492
@property
85-
def buttons(self): # pylint: disable=invalid-name
86-
"""The current pressed state of button Z."""
93+
def buttons(self) -> Type[tuple]: # pylint: disable=invalid-name
94+
"""The current pressed state of buttons C and Z."""
8795
return self._buttons()
8896

8997
@property
90-
def acceleration(self):
98+
def acceleration(self) -> Type[tuple]:
9199
"""The current accelerometer reading."""
92100
return self._acceleration()
93101

94-
def _joystick(self, do_read=True):
102+
def _joystick(self, do_read: bool = True) -> Type[tuple]:
95103
if do_read:
96104
self._read_data()
97105
return self._Joystick(self.buffer[0], self.buffer[1]) # x, y
98106

99-
def _buttons(self, do_read=True):
107+
def _buttons(self, do_read: bool = True) -> Type[tuple]:
100108
if do_read:
101109
self._read_data()
102110
return self._Buttons(
103111
not bool(self.buffer[5] & 0x02), not bool(self.buffer[5] & 0x01) # C # Z
104112
)
105113

106-
def _acceleration(self, do_read=True):
114+
def _acceleration(self, do_read: bool = True) -> Type[tuple]:
107115
if do_read:
108116
self._read_data()
109117
return self._Acceleration(
@@ -112,10 +120,10 @@ def _acceleration(self, do_read=True):
112120
((self.buffer[5] & 0x0C) >> 2) | (self.buffer[4] << 2), # az
113121
)
114122

115-
def _read_data(self):
123+
def _read_data(self) -> bytearray:
116124
return self._read_register(b"\x00")
117125

118-
def _read_register(self, address):
126+
def _read_register(self, address) -> bytearray:
119127
with self.i2c_device as i2c:
120128
i2c.write(address)
121129
time.sleep(self._i2c_read_delay) # at least 200us

0 commit comments

Comments
 (0)