Skip to content

Commit 15a8d7e

Browse files
authored
Merge pull request #27 from tcfranks/main
Add Missing Type Annotations
2 parents f148ac2 + fb6071e commit 15a8d7e

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

adafruit_l3gd20.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@
3636
from micropython import const
3737
from adafruit_register.i2c_struct import Struct
3838

39+
try:
40+
from typing import Tuple
41+
from digitalio import DigitalInOut
42+
from busio import I2C, SPI
43+
from circuitpython_typing import WriteableBuffer
44+
except ImportError:
45+
pass
46+
3947
__version__ = "0.0.0+auto.0"
4048
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_L3GD20.git"
4149

@@ -88,12 +96,13 @@ class L3GD20:
8896
Defaults to :const:`L3DS20_RATE_100HZ`
8997
"""
9098

91-
def __init__(self, rng=L3DS20_RANGE_250DPS, rate=L3DS20_RATE_100HZ):
99+
def __init__(
100+
self, rng: int = L3DS20_RANGE_250DPS, rate: int = L3DS20_RATE_100HZ
101+
) -> None:
92102
chip_id = self.read_register(_ID_REGISTER)
93103
if chip_id not in (_L3GD20_CHIP_ID, _L3GD20H_CHIP_ID):
94104
raise RuntimeError(
95-
"bad chip id (%x != %x or %x)"
96-
% (chip_id, _L3GD20_CHIP_ID, _L3GD20H_CHIP_ID)
105+
f"bad chip id ({chip_id:#x} != {_L3GD20_CHIP_ID:#x} or {_L3GD20H_CHIP_ID:#x})"
97106
)
98107

99108
if rng not in (L3DS20_RANGE_250DPS, L3DS20_RANGE_500DPS, L3DS20_RANGE_2000DPS):
@@ -185,7 +194,7 @@ def __init__(self, rng=L3DS20_RANGE_250DPS, rate=L3DS20_RATE_100HZ):
185194
# ------------------------------------------------------------------
186195

187196
@property
188-
def gyro(self):
197+
def gyro(self) -> Tuple[float, float, float]:
189198
"""
190199
x, y, z angular momentum tuple floats, rescaled appropriately for
191200
range selected in rad/s
@@ -233,8 +242,12 @@ class L3GD20_I2C(L3GD20):
233242
"""Gives the raw gyro readings, in units of rad/s."""
234243

235244
def __init__(
236-
self, i2c, rng=L3DS20_RANGE_250DPS, address=0x6B, rate=L3DS20_RATE_100HZ
237-
):
245+
self,
246+
i2c: I2C,
247+
rng: int = L3DS20_RANGE_250DPS,
248+
address: int = 0x6B,
249+
rate: int = L3DS20_RATE_100HZ,
250+
) -> None:
238251
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
239252
i2c_device,
240253
)
@@ -243,7 +256,7 @@ def __init__(
243256
self.buffer = bytearray(2)
244257
super().__init__(rng, rate)
245258

246-
def write_register(self, register, value):
259+
def write_register(self, register: int, value: int) -> None:
247260
"""
248261
Update a register with a byte value
249262
@@ -255,7 +268,7 @@ def write_register(self, register, value):
255268
with self.i2c_device as i2c:
256269
i2c.write(self.buffer)
257270

258-
def read_register(self, register):
271+
def read_register(self, register: int) -> int:
259272
"""
260273
Returns a byte value from a register
261274
@@ -303,14 +316,14 @@ class L3GD20_SPI(L3GD20):
303316
304317
"""
305318

306-
def __init__(
319+
def __init__( # pylint: disable=too-many-arguments
307320
self,
308-
spi_busio,
309-
cs,
310-
rng=L3DS20_RANGE_250DPS,
311-
baudrate=100000,
312-
rate=L3DS20_RATE_100HZ,
313-
): # pylint: disable=too-many-arguments
321+
spi_busio: SPI,
322+
cs: DigitalInOut,
323+
rng: int = L3DS20_RANGE_250DPS,
324+
baudrate: int = 100000,
325+
rate: int = L3DS20_RATE_100HZ,
326+
) -> None:
314327
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
315328
spi_device,
316329
)
@@ -320,7 +333,7 @@ def __init__(
320333
self._spi_bytearray6 = bytearray(6)
321334
super().__init__(rng, rate)
322335

323-
def write_register(self, register, value):
336+
def write_register(self, register: int, value: int) -> None:
324337
"""
325338
Low level register writing over SPI, writes one 8-bit value
326339
@@ -331,7 +344,7 @@ def write_register(self, register, value):
331344
with self._spi as spi:
332345
spi.write(bytes([register, value & 0xFF]))
333346

334-
def read_register(self, register):
347+
def read_register(self, register: int) -> int:
335348
"""
336349
Low level register reading over SPI, returns a list of values
337350
@@ -346,7 +359,7 @@ def read_register(self, register):
346359
# print("$%02X => %s" % (register, [hex(i) for i in self._spi_bytearray1]))
347360
return self._spi_bytearray1[0]
348361

349-
def read_bytes(self, register, buffer):
362+
def read_bytes(self, register: int, buffer: WriteableBuffer) -> None:
350363
"""
351364
Low level register stream reading over SPI, returns a list of values
352365
@@ -360,7 +373,7 @@ def read_bytes(self, register, buffer):
360373
spi.readinto(buffer)
361374

362375
@property
363-
def gyro_raw(self):
376+
def gyro_raw(self) -> Tuple[int, int, int]:
364377
"""Gives the dynamic rate raw gyro readings, in units rad/s."""
365378
buffer = self._spi_bytearray6
366379
self.read_bytes(_L3GD20_REGISTER_OUT_X_L_X40, buffer)

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44

55
Adafruit-Blinka
66
adafruit-circuitpython-register
7+
adafruit-circuitpython-typing

0 commit comments

Comments
 (0)