Skip to content

Commit b7f712f

Browse files
authored
Merge pull request #22 from tekktrik/feature/add-typing
Add typing
2 parents b84e2fb + fcb180f commit b7f712f

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

adafruit_ble_broadcastnet.py

+19-5
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,28 @@
2020
from adafruit_ble.advertising import Advertisement, LazyObjectField
2121
from adafruit_ble.advertising.standard import ManufacturerData, ManufacturerDataField
2222

23+
try:
24+
from typing import Optional
25+
from _bleio import ScanEntry
26+
except ImportError:
27+
pass
28+
2329
__version__ = "0.0.0-auto.0"
2430
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet.git"
2531

2632
_ble = adafruit_ble.BLERadio() # pylint: disable=invalid-name
2733
_sequence_number = 0 # pylint: disable=invalid-name
2834

2935

30-
def broadcast(measurement, *, broadcast_time=0.1, extended=False):
36+
def broadcast(
37+
measurement: "AdafruitSensorMeasurement",
38+
*,
39+
broadcast_time: float = 0.1,
40+
extended: bool = False
41+
) -> None:
3142
"""Broadcasts the given measurement for the given broadcast time. If extended is False and the
32-
measurement would be too long, it will be split into multiple measurements for transmission.
43+
measurement would be too long, it will be split into multiple measurements for transmission,
44+
each with the given broadcast time.
3345
"""
3446
global _sequence_number # pylint: disable=global-statement,invalid-name
3547
for submeasurement in measurement.split(252 if extended else 31):
@@ -149,13 +161,15 @@ class AdafruitSensorMeasurement(Advertisement):
149161
"""Battery voltage in millivolts. Saves two bytes over voltage and is more readable in bare
150162
packets."""
151163

152-
def __init__(self, *, entry=None, sequence_number=0):
164+
def __init__(
165+
self, *, entry: Optional[ScanEntry] = None, sequence_number: int = 0
166+
) -> None:
153167
super().__init__(entry=entry)
154168
if entry:
155169
return
156170
self.sequence_number = sequence_number
157171

158-
def __str__(self):
172+
def __str__(self) -> str:
159173
parts = []
160174
for attr in dir(self.__class__):
161175
attribute_instance = getattr(self.__class__, attr)
@@ -165,7 +179,7 @@ def __str__(self):
165179
parts.append("{}={}".format(attr, str(value)))
166180
return "<{} {} >".format(self.__class__.__name__, " ".join(parts))
167181

168-
def split(self, max_packet_size=31):
182+
def split(self, max_packet_size: int = 31) -> "AdafruitSensorMeasurement":
169183
"""Split the measurement into multiple measurements with the given max_packet_size. Yields
170184
each submeasurement."""
171185
current_size = 8 # baseline for mfg data and sequence number

0 commit comments

Comments
 (0)