Skip to content

Commit 1ea598e

Browse files
authored
Merge pull request #18 from angerer/Issue-17_TypeAnnotations
adds Type Annotations to address Issue #17
2 parents f30dc47 + 951e7b9 commit 1ea598e

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

adafruit_mcp9600.py

+31-16
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@
3535
from adafruit_register.i2c_bits import RWBits, ROBits
3636
from adafruit_register.i2c_bit import RWBit, ROBit
3737

38+
try:
39+
# Used only for typing
40+
import typing # pylint: disable=unused-import
41+
from busio import I2C
42+
except ImportError:
43+
pass
44+
3845
__version__ = "0.0.0-auto.0"
3946
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_MCP9600.git"
4047

@@ -202,7 +209,13 @@ class MCP9600:
202209

203210
types = ("K", "J", "T", "N", "S", "E", "B", "R")
204211

205-
def __init__(self, i2c, address=_DEFAULT_ADDRESS, tctype="K", tcfilter=0):
212+
def __init__(
213+
self,
214+
i2c: I2C,
215+
address: int = _DEFAULT_ADDRESS,
216+
tctype: str = "K",
217+
tcfilter: int = 0,
218+
) -> None:
206219
self.buf = bytearray(3)
207220
self.i2c_device = I2CDevice(i2c, address)
208221
self.type = tctype
@@ -224,14 +237,14 @@ def __init__(self, i2c, address=_DEFAULT_ADDRESS, tctype="K", tcfilter=0):
224237
def alert_config(
225238
self,
226239
*,
227-
alert_number,
228-
alert_temp_source,
229-
alert_temp_limit,
230-
alert_hysteresis,
231-
alert_temp_direction,
232-
alert_mode,
233-
alert_state
234-
):
240+
alert_number: int,
241+
alert_temp_source: int,
242+
alert_temp_limit: float,
243+
alert_hysteresis: float,
244+
alert_temp_direction: int,
245+
alert_mode: int,
246+
alert_state: int
247+
) -> None:
235248
"""Configure a specified alert pin. Alert is enabled by default when alert is configured.
236249
To disable an alert pin, use :meth:`alert_disable`.
237250
@@ -296,7 +309,7 @@ def alert_config(
296309
setattr(self, "_alert_%d_state" % alert_number, alert_state)
297310
setattr(self, "_alert_%d_enable" % alert_number, True)
298311

299-
def alert_disable(self, alert_number):
312+
def alert_disable(self, alert_number: int) -> None:
300313
"""Configuring an alert using :meth:`alert_config` enables the specified alert by default.
301314
Use :meth:`alert_disable` to disable an alert pin.
302315
@@ -307,7 +320,9 @@ def alert_disable(self, alert_number):
307320
raise ValueError("Alert pin number must be 1-4.")
308321
setattr(self, "_alert_%d_enable" % alert_number, False)
309322

310-
def alert_interrupt_clear(self, alert_number, interrupt_clear=True):
323+
def alert_interrupt_clear(
324+
self, alert_number: int, interrupt_clear: bool = True
325+
) -> None:
311326
"""Turns off the alert flag in the MCP9600, and clears the pin state (not used if the alert
312327
is in comparator mode). Required when ``alert_mode`` is ``INTERRUPT``.
313328
@@ -320,13 +335,13 @@ def alert_interrupt_clear(self, alert_number, interrupt_clear=True):
320335
setattr(self, "_alert_%d_interrupt_clear" % alert_number, interrupt_clear)
321336

322337
@property
323-
def version(self):
338+
def version(self) -> int:
324339
""" MCP9600 chip version """
325340
data = self._read_register(_REGISTER_VERSION, 2)
326341
return unpack(">xH", data)[0]
327342

328343
@property
329-
def ambient_temperature(self):
344+
def ambient_temperature(self) -> float:
330345
""" Cold junction/ambient/room temperature in Celsius """
331346
data = self._read_register(_REGISTER_COLD_JUNCTION, 2)
332347
value = unpack(">xH", data)[0] * 0.0625
@@ -335,7 +350,7 @@ def ambient_temperature(self):
335350
return value
336351

337352
@property
338-
def temperature(self):
353+
def temperature(self) -> float:
339354
""" Hot junction temperature in Celsius """
340355
data = self._read_register(_REGISTER_HOT_JUNCTION, 2)
341356
value = unpack(">xH", data)[0] * 0.0625
@@ -344,15 +359,15 @@ def temperature(self):
344359
return value
345360

346361
@property
347-
def delta_temperature(self):
362+
def delta_temperature(self) -> float:
348363
""" Delta temperature in Celsius """
349364
data = self._read_register(_REGISTER_DELTA_TEMP, 2)
350365
value = unpack(">xH", data)[0] * 0.0625
351366
if data[1] & 0x80:
352367
value -= 4096
353368
return value
354369

355-
def _read_register(self, reg, count=1):
370+
def _read_register(self, reg: int, count: int = 1) -> bytearray:
356371
self.buf[0] = reg
357372
with self.i2c_device as i2c:
358373
i2c.write_then_readinto(self.buf, self.buf, out_end=count, in_start=1)

0 commit comments

Comments
 (0)