Skip to content

Commit 7557b22

Browse files
authored
Merge pull request #60 from tekktrik/doc/add-typing
Add type annotations, update docstrings
2 parents e1ca735 + 72c2d68 commit 7557b22

File tree

2 files changed

+62
-51
lines changed

2 files changed

+62
-51
lines changed

adafruit_bme280/advanced.py

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
from micropython import const
3333
from adafruit_bme280.basic import Adafruit_BME280
3434

35+
try:
36+
import typing # pylint: disable=unused-import
37+
from busio import I2C, SPI
38+
from digitalio import DigitalInOut
39+
except ImportError:
40+
pass
41+
3542
__version__ = "0.0.0-auto.0"
3643
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BME280.git"
3744

@@ -134,7 +141,7 @@ class Adafruit_BME280_Advanced(Adafruit_BME280):
134141
"""
135142

136143
# pylint: disable=too-many-instance-attributes
137-
def __init__(self):
144+
def __init__(self) -> None:
138145
"""Check the BME280 was found, read the coefficients and enable the sensor"""
139146
self._overscan_humidity = OVERSCAN_X1
140147
self._overscan_temperature = OVERSCAN_X1
@@ -144,15 +151,15 @@ def __init__(self):
144151
super().__init__()
145152

146153
@property
147-
def standby_period(self):
154+
def standby_period(self) -> int:
148155
"""
149156
Control the inactive period when in Normal mode
150157
Allowed standby periods are the constants STANDBY_TC_*
151158
"""
152159
return self._t_standby
153160

154161
@standby_period.setter
155-
def standby_period(self, value):
162+
def standby_period(self, value: int) -> None:
156163
if not value in _BME280_STANDBY_TCS:
157164
raise ValueError("Standby Period '%s' not supported" % (value))
158165
if self._t_standby == value:
@@ -161,67 +168,67 @@ def standby_period(self, value):
161168
self._write_config()
162169

163170
@property
164-
def overscan_humidity(self):
171+
def overscan_humidity(self) -> int:
165172
"""
166173
Humidity Oversampling
167174
Allowed values are the constants OVERSCAN_*
168175
"""
169176
return self._overscan_humidity
170177

171178
@overscan_humidity.setter
172-
def overscan_humidity(self, value):
179+
def overscan_humidity(self, value: int) -> None:
173180
if not value in _BME280_OVERSCANS:
174181
raise ValueError("Overscan value '%s' not supported" % (value))
175182
self._overscan_humidity = value
176183
self._write_ctrl_meas()
177184

178185
@property
179-
def overscan_temperature(self):
186+
def overscan_temperature(self) -> int:
180187
"""
181188
Temperature Oversampling
182189
Allowed values are the constants OVERSCAN_*
183190
"""
184191
return self._overscan_temperature
185192

186193
@overscan_temperature.setter
187-
def overscan_temperature(self, value):
194+
def overscan_temperature(self, value: int) -> None:
188195
if not value in _BME280_OVERSCANS:
189196
raise ValueError("Overscan value '%s' not supported" % (value))
190197
self._overscan_temperature = value
191198
self._write_ctrl_meas()
192199

193200
@property
194-
def overscan_pressure(self):
201+
def overscan_pressure(self) -> int:
195202
"""
196203
Pressure Oversampling
197204
Allowed values are the constants OVERSCAN_*
198205
"""
199206
return self._overscan_pressure
200207

201208
@overscan_pressure.setter
202-
def overscan_pressure(self, value):
209+
def overscan_pressure(self, value: int) -> None:
203210
if not value in _BME280_OVERSCANS:
204211
raise ValueError("Overscan value '%s' not supported" % (value))
205212
self._overscan_pressure = value
206213
self._write_ctrl_meas()
207214

208215
@property
209-
def iir_filter(self):
216+
def iir_filter(self) -> int:
210217
"""
211218
Controls the time constant of the IIR filter
212219
Allowed values are the constants IIR_FILTER_*
213220
"""
214221
return self._iir_filter
215222

216223
@iir_filter.setter
217-
def iir_filter(self, value):
224+
def iir_filter(self, value: int) -> None:
218225
if not value in _BME280_IIR_FILTERS:
219226
raise ValueError("IIR Filter '%s' not supported" % (value))
220227
self._iir_filter = value
221228
self._write_config()
222229

223230
@property
224-
def _config(self):
231+
def _config(self) -> int:
225232
"""Value to be written to the device's config register """
226233
config = 0
227234
if self.mode == MODE_NORMAL:
@@ -231,15 +238,15 @@ def _config(self):
231238
return config
232239

233240
@property
234-
def _ctrl_meas(self):
241+
def _ctrl_meas(self) -> int:
235242
"""Value to be written to the device's ctrl_meas register """
236243
ctrl_meas = self.overscan_temperature << 5
237244
ctrl_meas += self.overscan_pressure << 2
238245
ctrl_meas += self.mode
239246
return ctrl_meas
240247

241248
@property
242-
def measurement_time_typical(self):
249+
def measurement_time_typical(self) -> float:
243250
"""Typical time in milliseconds required to complete a measurement in normal mode"""
244251
meas_time_ms = 1.0
245252
if self.overscan_temperature != OVERSCAN_DISABLE:
@@ -251,7 +258,7 @@ def measurement_time_typical(self):
251258
return meas_time_ms
252259

253260
@property
254-
def measurement_time_max(self):
261+
def measurement_time_max(self) -> float:
255262
"""Maximum time in milliseconds required to complete a measurement in normal mode"""
256263
meas_time_ms = 1.25
257264
if self.overscan_temperature != OVERSCAN_DISABLE:
@@ -309,23 +316,23 @@ class Adafruit_BME280_I2C(Adafruit_BME280_Advanced):
309316
310317
"""
311318

312-
def __init__(self, i2c, address=_BME280_ADDRESS):
319+
def __init__(self, i2c: I2C, address: int = _BME280_ADDRESS) -> None:
313320
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
314321
i2c_device,
315322
)
316323

317324
self._i2c = i2c_device.I2CDevice(i2c, address)
318325
super().__init__()
319326

320-
def _read_register(self, register, length):
327+
def _read_register(self, register: int, length: int) -> bytearray:
321328
with self._i2c as i2c:
322329
i2c.write(bytes([register & 0xFF]))
323330
result = bytearray(length)
324331
i2c.readinto(result)
325332
# print("$%02X => %s" % (register, [hex(i) for i in result]))
326333
return result
327334

328-
def _write_register_byte(self, register, value):
335+
def _write_register_byte(self, register: int, value: int) -> None:
329336
with self._i2c as i2c:
330337
i2c.write(bytes([register & 0xFF, value & 0xFF]))
331338
# print("$%02X <= 0x%02X" % (register, value))
@@ -379,15 +386,15 @@ class Adafruit_BME280_SPI(Adafruit_BME280_Advanced):
379386
380387
"""
381388

382-
def __init__(self, spi, cs, baudrate=100000):
389+
def __init__(self, spi: SPI, cs: DigitalInOut, baudrate: int = 100000) -> None:
383390
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
384391
spi_device,
385392
)
386393

387394
self._spi = spi_device.SPIDevice(spi, cs, baudrate=baudrate)
388395
super().__init__()
389396

390-
def _read_register(self, register, length):
397+
def _read_register(self, register: int, length: int) -> bytearray:
391398
register = (register | 0x80) & 0xFF # Read single, bit 7 high.
392399
with self._spi as spi:
393400
spi.write(bytearray([register])) # pylint: disable=no-member
@@ -396,7 +403,7 @@ def _read_register(self, register, length):
396403
# print("$%02X => %s" % (register, [hex(i) for i in result]))
397404
return result
398405

399-
def _write_register_byte(self, register, value):
406+
def _write_register_byte(self, register: int, value: int) -> None:
400407
register &= 0x7F # Write, bit 7 low.
401408
with self._spi as spi:
402409
spi.write(bytes([register, value & 0xFF])) # pylint: disable=no-member

0 commit comments

Comments
 (0)