Skip to content

Commit 91fb391

Browse files
authored
Merge pull request #7 from tcfranks/main
resolves #3 Missing Type Annotations
2 parents 1c96720 + 09a54ea commit 91fb391

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

adafruit_bh1750.py

+20-13
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
from micropython import const
3838
from adafruit_bus_device import i2c_device
3939

40+
try:
41+
from typing import Optional, List, Tuple, Type
42+
from busio import I2C
43+
except ImportError:
44+
pass
4045

4146
_BH1750_DEVICE_ID = 0xE1 # Correct content of WHO_AM_I register
4247

@@ -67,7 +72,9 @@ class CV:
6772
"""struct helper"""
6873

6974
@classmethod
70-
def add_values(cls, value_tuples):
75+
def add_values(
76+
cls, value_tuples: List[Tuple[str, int, str, Optional[int]]]
77+
) -> None:
7178
"""Add CV values to the class"""
7279
cls.string = {}
7380
cls.lsb = {}
@@ -79,7 +86,7 @@ def add_values(cls, value_tuples):
7986
cls.lsb[value] = lsb
8087

8188
@classmethod
82-
def is_valid(cls, value):
89+
def is_valid(cls, value: int) -> bool:
8390
"""Validate that a given value is a member"""
8491
return value in cls.string
8592

@@ -97,15 +104,15 @@ class RWBitfields:
97104
98105
"""
99106

100-
def __init__(self, num_bits, lowest_bit):
107+
def __init__(self, num_bits: int, lowest_bit: int) -> None:
101108
self._bit_mask = ((1 << num_bits) - 1) << lowest_bit
102109
self._lowest_bit = lowest_bit
103110

104-
def __get__(self, obj, objtype=None):
111+
def __get__(self, obj: Optional["BH1750"], objtype: Type["BH1750"]) -> int:
105112

106113
return (obj._settings & self._bit_mask) >> self._lowest_bit
107114

108-
def __set__(self, obj, value):
115+
def __set__(self, obj: "BH1750", value: int) -> None:
109116
# shift the value over to the right spot
110117
value <<= self._lowest_bit
111118
settings = obj._settings
@@ -182,31 +189,31 @@ class BH1750: # pylint:disable=too-many-instance-attributes
182189
mode = RWBitfields(2, 4)
183190
resolution = RWBitfields(2, 0)
184191

185-
def __init__(self, i2c, address=_BH1750_DEFAULT_ADDRESS):
192+
def __init__(self, i2c: I2C, address: int = _BH1750_DEFAULT_ADDRESS) -> None:
186193

187194
self.i2c_device = i2c_device.I2CDevice(i2c, address)
188195
self._buffer = bytearray(2)
189196
self._settings_byte = 0
190197

191198
self.initialize()
192199

193-
def initialize(self):
200+
def initialize(self) -> None:
194201
"""Configure the sensors with the default settings."""
195202
self.mode = Mode.CONTINUOUS # pylint:disable=no-member
196203
self.resolution = Resolution.HIGH # pylint:disable=no-member
197204

198205
@property
199-
def _settings(self):
206+
def _settings(self) -> int:
200207
return self._settings_byte
201208

202209
@_settings.setter
203-
def _settings(self, value):
210+
def _settings(self, value: int) -> None:
204211
self._settings_byte = value
205212
self._write(self._settings_byte)
206213
sleep(0.180) # worse case time to take a new measurement
207214

208215
@property
209-
def _raw_reading(self):
216+
def _raw_reading(self) -> int:
210217

211218
self._buffer[0] = 0
212219
self._buffer[1] = 0
@@ -217,19 +224,19 @@ def _raw_reading(self):
217224
return unpack_from(">H", self._buffer)[0]
218225

219226
@property
220-
def lux(self):
227+
def lux(self) -> float:
221228
"""Light value in lux."""
222229
raw_lux = self._raw_reading
223230

224231
return self._convert_to_lux(raw_lux)
225232

226-
def _convert_to_lux(self, raw_lux):
233+
def _convert_to_lux(self, raw_lux: int) -> float:
227234
measured_lux = raw_lux / 1.2
228235
if self.resolution == Resolution.HIGH: # pylint:disable=no-member
229236
measured_lux = measured_lux / 2
230237
return measured_lux
231238

232-
def _write(self, cmd_byte):
239+
def _write(self, cmd_byte: int) -> None:
233240
self._buffer[0] = cmd_byte
234241
with self.i2c_device as i2c:
235242
i2c.write(self._buffer, end=1)

0 commit comments

Comments
 (0)