Skip to content

Commit 9cfc960

Browse files
committed
Add Missing Type Annotations
1 parent 9c9fd32 commit 9cfc960

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

adafruit_si1145.py

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@
3131
from adafruit_bus_device import i2c_device
3232
from adafruit_register.i2c_struct import Struct
3333

34+
try:
35+
from typing import Tuple, Union
36+
from circuitpython_typing import ReadableBuffer
37+
from busio import I2C
38+
except ImportError:
39+
pass
40+
3441
__version__ = "0.0.0+auto.0"
3542
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_SI1145.git"
3643

@@ -71,7 +78,7 @@ class SI1145:
7178
_als_data = Struct(_ALS_VIS_DATA0, "<HH")
7279
_aux_data = Struct(_UV_INDEX_DATA0, "<H")
7380

74-
def __init__(self, i2c, address=_DEFAULT_ADDRESS):
81+
def __init__(self, i2c: I2C, address: int = _DEFAULT_ADDRESS) -> None:
7582
self.i2c_device = i2c_device.I2CDevice(i2c, address)
7683
dev_id, dev_rev, dev_seq = self.device_info
7784
if dev_id != 69 or dev_rev != 0 or dev_seq != 8:
@@ -84,17 +91,17 @@ def __init__(self, i2c, address=_DEFAULT_ADDRESS):
8491
self.uv_index_enabled = self._uv_index_enabled
8592

8693
@property
87-
def device_info(self):
94+
def device_info(self) -> Tuple[int, int, int]:
8895
"""A three tuple of part, revision, and sequencer ID"""
8996
return self._device_info
9097

9198
@property
92-
def als_enabled(self):
99+
def als_enabled(self) -> bool:
93100
"""The Ambient Light System enabled state."""
94101
return self._als_enabled
95102

96103
@als_enabled.setter
97-
def als_enabled(self, enable):
104+
def als_enabled(self, enable: bool) -> None:
98105
chlist = self._param_query(_RAM_CHLIST)
99106
if enable:
100107
chlist |= 0b00110000
@@ -104,18 +111,18 @@ def als_enabled(self, enable):
104111
self._als_enabled = enable
105112

106113
@property
107-
def als(self):
114+
def als(self) -> Tuple[int, int]:
108115
"""A two tuple of the Ambient Light System (ALS) visible and infrared raw sensor values."""
109116
self._send_command(_CMD_ALS_FORCE)
110117
return self._als_data
111118

112119
@property
113-
def uv_index_enabled(self):
120+
def uv_index_enabled(self) -> bool:
114121
"""The UV Index system enabled state"""
115122
return self._uv_index_enabled
116123

117124
@uv_index_enabled.setter
118-
def uv_index_enabled(self, enable):
125+
def uv_index_enabled(self, enable: bool) -> None:
119126
chlist = self._param_query(_RAM_CHLIST)
120127
if enable:
121128
chlist |= 0b10000000
@@ -132,47 +139,47 @@ def uv_index_enabled(self, enable):
132139
self._uv_index_enabled = enable
133140

134141
@property
135-
def uv_index(self):
142+
def uv_index(self) -> float:
136143
"""The UV Index value"""
137144
self._send_command(_CMD_ALS_FORCE)
138145
return self._aux_data[0] / 100
139146

140-
def reset(self):
147+
def reset(self) -> None:
141148
"""Perform a software reset of the firmware."""
142149
self._send_command(_CMD_RESET)
143150
time.sleep(0.05) # doubling 25ms datasheet spec
144151

145-
def clear_error(self):
152+
def clear_error(self) -> None:
146153
"""Clear any existing error code."""
147154
self._send_command(_CMD_NOP)
148155

149-
def _param_query(self, param):
156+
def _param_query(self, param: int) -> int:
150157
self._send_command(_CMD_PARAM_QUERY | (param & 0x1F))
151158
return self._read_register(_PARAM_RD)
152159

153-
def _param_set(self, param, value):
160+
def _param_set(self, param: int, value: int) -> None:
154161
self._write_register(_PARAM_WR, value)
155162
self._send_command(_CMD_PARAM_SET | (param & 0x1F))
156163

157-
def _send_command(self, command):
164+
def _send_command(self, command: int) -> int:
158165
counter = self._read_register(_RESPONSE) & 0x0F
159166
self._write_register(_COMMAND, command)
160167
if command in (_CMD_NOP, _CMD_RESET):
161168
return 0
162169
response = self._read_register(_RESPONSE)
163170
while counter == response & 0x0F:
164171
if response & 0xF0:
165-
raise RuntimeError("SI1145 Error: 0x{:02x}".format(response))
172+
raise RuntimeError(f"SI1145 Error: {response:#x}")
166173
response = self._read_register(_RESPONSE)
167174
return response
168175

169-
def _read_register(self, register, length=1):
176+
def _read_register(self, register: int, length: int = 1) -> Union[int, bytearray]:
170177
buffer = bytearray(length)
171178
with self.i2c_device as i2c:
172179
i2c.write_then_readinto(bytes([register]), buffer)
173180
return buffer[0] if length == 1 else buffer
174181

175-
def _write_register(self, register, buffer):
182+
def _write_register(self, register: int, buffer: ReadableBuffer) -> None:
176183
if isinstance(buffer, int):
177184
buffer = bytes([buffer])
178185
with self.i2c_device as i2c:

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-busdevice
77
adafruit-circuitpython-register
8+
adafruit-circuitpython-typing

0 commit comments

Comments
 (0)