Skip to content

Commit 49c83aa

Browse files
authored
Merge pull request #16 from tcfranks/main
Add Missing Type Annotations
2 parents e3d1f10 + 6c2c754 commit 49c83aa

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

adafruit_lis2mdl.py

+22-16
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@
3636
from adafruit_register.i2c_bit import RWBit
3737
from adafruit_register.i2c_bits import RWBits
3838

39+
try:
40+
from typing import Tuple
41+
from typing_extensions import Literal
42+
from busio import I2C
43+
except ImportError:
44+
pass
3945

4046
__version__ = "0.0.0+auto.0"
4147
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_LIS2MDL.git"
@@ -158,15 +164,15 @@ class LIS2MDL: # pylint: disable=too-many-instance-attributes
158164
_y_offset = UnaryStruct(OFFSET_Y_REG_L, "<h")
159165
_z_offset = UnaryStruct(OFFSET_Z_REG_L, "<h")
160166

161-
def __init__(self, i2c):
167+
def __init__(self, i2c: I2C) -> None:
162168
self.i2c_device = I2CDevice(i2c, _ADDRESS_MAG)
163169

164170
if self._device_id != 0x40:
165171
raise AttributeError("Cannot find an LIS2MDL")
166172

167173
self.reset()
168174

169-
def reset(self):
175+
def reset(self) -> None:
170176
"""Reset the sensor to the default state set by the library"""
171177
self._soft_reset = True
172178
sleep(0.100)
@@ -183,7 +189,7 @@ def reset(self):
183189
sleep(0.030) # sleep 20ms to allow measurements to stabilize
184190

185191
@property
186-
def magnetic(self):
192+
def magnetic(self) -> Tuple[float, float, float]:
187193
"""The processed magnetometer sensor values.
188194
A 3-tuple of X, Y, Z axis values in microteslas that are signed floats.
189195
"""
@@ -195,12 +201,12 @@ def magnetic(self):
195201
)
196202

197203
@property
198-
def data_rate(self):
204+
def data_rate(self) -> Literal[0x00, 0x01, 0x02, 0x03]:
199205
"""The magnetometer update rate."""
200206
return self._data_rate
201207

202208
@data_rate.setter
203-
def data_rate(self, value):
209+
def data_rate(self, value: Literal[0x00, 0x01, 0x02, 0x03]) -> None:
204210
if not value in (
205211
DataRate.Rate_10_HZ,
206212
DataRate.Rate_20_HZ,
@@ -211,31 +217,31 @@ def data_rate(self, value):
211217
self._data_rate = value
212218

213219
@property
214-
def interrupt_threshold(self):
220+
def interrupt_threshold(self) -> float:
215221
"""The threshold (in microteslas) for magnetometer interrupt generation. Given value is
216222
compared against all axes in both the positive and negative direction"""
217223
return self._interrupt_threshold * _MAG_SCALE
218224

219225
@interrupt_threshold.setter
220-
def interrupt_threshold(self, value):
226+
def interrupt_threshold(self, value: float) -> None:
221227
if value < 0:
222228
value = -value
223229
self._interrupt_threshold = int(value / _MAG_SCALE)
224230

225231
@property
226-
def interrupt_enabled(self):
232+
def interrupt_enabled(self) -> bool:
227233
"""Enable or disable the magnetometer interrupt"""
228234
return self._int_enable
229235

230236
@interrupt_enabled.setter
231-
def interrupt_enabled(self, val):
237+
def interrupt_enabled(self, val: bool) -> None:
232238
self._x_int_enable = val
233239
self._y_int_enable = val
234240
self._z_int_enable = val
235241
self._int_enable = val
236242

237243
@property
238-
def faults(self):
244+
def faults(self) -> Tuple[bool, bool, bool, bool, bool, bool, bool]:
239245
"""A tuple representing interrupts on each axis in a positive and negative direction
240246
``(x_hi, y_hi, z_hi, x_low, y_low, z_low, int_triggered)``"""
241247
int_status = self._int_source
@@ -250,31 +256,31 @@ def faults(self):
250256
return (x_hi, y_hi, z_hi, x_low, y_low, z_low, int_triggered)
251257

252258
@property
253-
def x_offset(self):
259+
def x_offset(self) -> float:
254260
"""An offset for the X-Axis to subtract from the measured value to correct
255261
for magnetic interference"""
256262
return self._x_offset * _MAG_SCALE
257263

258264
@x_offset.setter
259-
def x_offset(self, value):
265+
def x_offset(self, value: float) -> None:
260266
self._x_offset = int(value / _MAG_SCALE)
261267

262268
@property
263-
def y_offset(self):
269+
def y_offset(self) -> float:
264270
"""An offset for the Y-Axis to subtract from the measured value to correct
265271
for magnetic interference"""
266272
return self._y_offset * _MAG_SCALE
267273

268274
@y_offset.setter
269-
def y_offset(self, value):
275+
def y_offset(self, value: float) -> None:
270276
self._y_offset = int(value / _MAG_SCALE)
271277

272278
@property
273-
def z_offset(self):
279+
def z_offset(self) -> float:
274280
"""An offset for the Z-Axis to subtract from the measured value to correct
275281
for magnetic interference"""
276282
return self._z_offset * _MAG_SCALE
277283

278284
@z_offset.setter
279-
def z_offset(self, value):
285+
def z_offset(self, value: float) -> None:
280286
self._z_offset = int(value / _MAG_SCALE)

requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
Adafruit-Blinka
66
adafruit-circuitpython-register
77
adafruit-circuitpython-busdevice
8+
typing-extensions~=4.0

0 commit comments

Comments
 (0)