Skip to content

Commit f0feb8a

Browse files
committed
Updated type hints for return values, fix type hint imports, update requirements
1 parent 76f906c commit f0feb8a

File tree

5 files changed

+40
-25
lines changed

5 files changed

+40
-25
lines changed

adafruit_is31fl3741/__init__.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
import busio
3131

3232
try:
33-
from typing import Optional
33+
# Used only for typing
34+
from typing import Optional, Tuple, Union # pylint: disable=unused-import
3435
from PIL import Image
3536
except ImportError:
3637
pass
@@ -106,16 +107,16 @@ def __init__(
106107
self._page = None
107108
self.reset()
108109

109-
def reset(self):
110+
def reset(self) -> None:
110111
"""Reset"""
111112
self.page = 4
112113
self._reset_reg = 0xAE
113114

114-
def unlock(self):
115+
def unlock(self) -> None:
115116
"""Unlock"""
116117
self._lock_reg = 0xC5
117118

118-
def set_led_scaling(self, scale: int):
119+
def set_led_scaling(self, scale: int) -> None:
119120
"""Set LED scaling.
120121
121122
param scale: The scale.
@@ -130,34 +131,34 @@ def set_led_scaling(self, scale: int):
130131
i2c.write(bytes(scalebuf))
131132

132133
@property
133-
def global_current(self):
134+
def global_current(self) -> int:
134135
"""Global current"""
135136
self.page = 4
136137
return self._gcurrent_reg
137138

138139
@global_current.setter
139-
def global_current(self, current: int):
140+
def global_current(self, current: int) -> None:
140141
self.page = 4
141142
self._gcurrent_reg = current
142143

143144
@property
144-
def enable(self):
145+
def enable(self) -> bool:
145146
"""Enable"""
146147
self.page = 4
147148
return self._shutdown_bit
148149

149150
@enable.setter
150-
def enable(self, enable: bool):
151+
def enable(self, enable: bool) -> None:
151152
self.page = 4
152153
self._shutdown_bit = enable
153154

154155
@property
155-
def page(self):
156+
def page(self) -> Union[int, None]:
156157
"""Page"""
157158
return self._page
158159

159160
@page.setter
160-
def page(self, page_value: int):
161+
def page(self, page_value: int) -> None:
161162
if page_value == self._page:
162163
return # already set
163164
if page_value > 4:
@@ -166,7 +167,7 @@ def page(self, page_value: int):
166167
self.unlock()
167168
self._page_reg = page_value
168169

169-
def __getitem__(self, led: int):
170+
def __getitem__(self, led: int) -> int:
170171
if not 0 <= led <= 350:
171172
raise ValueError("LED must be 0 ~ 350")
172173
if self._pixel_buffer:
@@ -184,7 +185,7 @@ def __getitem__(self, led: int):
184185
)
185186
return self._buf[1]
186187

187-
def __setitem__(self, led: int, pwm: int):
188+
def __setitem__(self, led: int, pwm: int) -> None:
188189
if not 0 <= led <= 350:
189190
raise ValueError("LED must be 0 ~ 350")
190191
if not 0 <= pwm <= 255:
@@ -205,12 +206,12 @@ def __setitem__(self, led: int, pwm: int):
205206

206207
# This function must be replaced for each board
207208
@staticmethod
208-
def pixel_addrs(x: int, y: int):
209+
def pixel_addrs(x: int, y: int) -> Tuple[int, ...]:
209210
"""Calulate the offset into the device array for x,y pixel"""
210211
raise NotImplementedError("Supported in subclasses only")
211212

212213
# pylint: disable-msg=too-many-arguments
213-
def pixel(self, x: int, y: int, color: Optional[int] = None):
214+
def pixel(self, x: int, y: int, color: Optional[int] = None) -> Union[int, None]:
214215
"""
215216
Color of for x-, y-pixel
216217
@@ -232,7 +233,7 @@ def pixel(self, x: int, y: int, color: Optional[int] = None):
232233

233234
# pylint: enable-msg=too-many-arguments
234235

235-
def image(self, img: Image):
236+
def image(self, img: Image) -> None:
236237
"""Set buffer to value of Python Imaging Library image. The image should
237238
be in 8-bit mode (L) and a size equal to the display size.
238239
@@ -255,7 +256,7 @@ def image(self, img: Image):
255256
for y in range(self.height): # but these displays are small!
256257
self.pixel(x, y, pixels[(x, y)])
257258

258-
def show(self):
259+
def show(self) -> None:
259260
"""Issue in-RAM pixel data to device. No effect if pixels are
260261
unbuffered.
261262
"""

adafruit_is31fl3741/adafruit_ledglasses.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,16 @@
2323
2424
"""
2525
from struct import unpack_from
26-
import busio
2726
import adafruit_is31fl3741
2827
from . import IS31FL3741
2928

29+
try:
30+
# Used only for typing
31+
from typing import Tuple # pylint: disable=unused-import
32+
import busio
33+
except ImportError:
34+
pass
35+
3036

3137
class Right_Ring:
3238
"""The right eye ring of the LED glasses"""
@@ -87,7 +93,7 @@ class Right_Ring:
8793
def __init__(self, is31_controller: IS31FL3741):
8894
self._is31 = is31_controller
8995

90-
def __setitem__(self, led: int, color: int):
96+
def __setitem__(self, led: int, color: int) -> None:
9197
if not 0 <= led <= 23:
9298
raise ValueError("led must be 0~23")
9399

@@ -96,7 +102,7 @@ def __setitem__(self, led: int, color: int):
96102
self._is31[rgb[1]] = (color >> 8) & 0xFF
97103
self._is31[rgb[2]] = color & 0xFF
98104

99-
def __getitem__(self, led: int):
105+
def __getitem__(self, led: int) -> int:
100106
if not 0 <= led <= 23:
101107
raise ValueError("led must be 0~23")
102108
rgb = unpack_from(">HHH", self.ledmap_bytes, led * 6)
@@ -161,10 +167,10 @@ class Left_Ring:
161167
b"\x00\xF1\x00\xF0\x01\x5E"
162168
)
163169

164-
def __init__(self, is31_controller: IS31FL3741):
170+
def __init__(self, is31_controller: IS31FL3741) -> None:
165171
self._is31 = is31_controller
166172

167-
def __setitem__(self, led: int, color: int):
173+
def __setitem__(self, led: int, color: int) -> None:
168174
if not 0 <= led <= 23:
169175
raise ValueError("led must be 0~23")
170176

@@ -173,7 +179,7 @@ def __setitem__(self, led: int, color: int):
173179
self._is31[rgb[1]] = (color >> 8) & 0xFF
174180
self._is31[rgb[2]] = color & 0xFF
175181

176-
def __getitem__(self, led: int):
182+
def __getitem__(self, led: int) -> int:
177183
if not 0 <= led <= 23:
178184
raise ValueError("led must be 0~23")
179185
rgb = unpack_from(">HHH", self.ledmap_bytes, led * 6)
@@ -387,7 +393,7 @@ def __init__(self, i2c: busio.I2C, allocate: int = adafruit_is31fl3741.NO_BUFFER
387393
self.grid = self
388394

389395
@staticmethod
390-
def pixel_addrs(x: int, y: int):
396+
def pixel_addrs(x: int, y: int) -> Tuple[int, ...]:
391397
return unpack_from(
392398
">HHH", LED_Glasses.ledmap_bytes, ((y * LED_Glasses.width) + x) * 6
393399
)

adafruit_is31fl3741/adafruit_rgbmatrixqt.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525

2626
# imports
2727
try:
28-
from typing import Tuple
28+
# Used only for typing
29+
from typing import Tuple # pylint: disable=unused-import
2930
except ImportError:
3031
pass
3132
from . import IS31FL3741

adafruit_is31fl3741/issi_evb.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@
2929
# imports
3030
from . import IS31FL3741
3131

32+
try:
33+
# Used only for typing
34+
from typing import Tuple # pylint: disable=unused-import
35+
except ImportError:
36+
pass
37+
3238

3339
class ISSI_EVB(IS31FL3741):
3440
"""Supports the ISSI IS31FL3741 eval board"""
@@ -37,7 +43,7 @@ class ISSI_EVB(IS31FL3741):
3743
height = 9
3844

3945
@staticmethod
40-
def pixel_addrs(x: int, y: int):
46+
def pixel_addrs(x: int, y: int) -> Tuple[int, int, int]:
4147
"""Calulate the RGB offsets into the device array for x,y pixel"""
4248
if x > 9:
4349
offset = (x + 80 + y * 3) * 3

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
Adafruit-Blinka
66
adafruit-circuitpython-framebuf
77
adafruit-circuitpython-register
8+
Pillow

0 commit comments

Comments
 (0)