Skip to content

Commit 33b2cc8

Browse files
authored
Merge pull request #10 from adafruit/doc/add-typing
Add type annotations
2 parents 88cb4ee + 22a1326 commit 33b2cc8

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

adafruit_tpa2016.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@
3232
from adafruit_register.i2c_bits import RWBits
3333
from adafruit_register.i2c_bit import RWBit
3434

35+
try:
36+
import typing # pylint: disable=unused-import
37+
from busio import I2C
38+
except ImportError:
39+
pass
40+
3541
__version__ = "0.0.0-auto.0"
3642
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_TPA2016.git"
3743

@@ -135,11 +141,11 @@ class TPA2016:
135141
136142
"""
137143

138-
def __init__(self, i2c_bus):
144+
def __init__(self, i2c_bus: I2C) -> None:
139145
self.i2c_device = i2cdevice.I2CDevice(i2c_bus, 0x58)
140146

141147
@property
142-
def attack_time(self):
148+
def attack_time(self) -> int:
143149
"""The attack time. This is the minimum time between gain decreases. Set to ``1`` - ``63``
144150
where 1 = 0.1067ms and the time increases 0.1067ms with each step, for a maximum of 6.722ms.
145151
Defaults to 5, or 0.5335ms.
@@ -161,14 +167,14 @@ def attack_time(self):
161167
return self._attack_control
162168

163169
@attack_time.setter
164-
def attack_time(self, value):
170+
def attack_time(self, value: int) -> None:
165171
if 1 <= value <= 63:
166172
self._attack_control = value
167173
else:
168174
raise ValueError("Attack time must be 1 to 63!")
169175

170176
@property
171-
def release_time(self):
177+
def release_time(self) -> int:
172178
"""The release time. This is the minimum time between gain increases. Set to ``1`` - ``63``
173179
where 1 = 0.0137ms, and the time increases 0.0137ms with each step, for a maximum of
174180
0.8631ms. Defaults to 11, or 0.1507ms.
@@ -190,14 +196,14 @@ def release_time(self):
190196
return self._release_control
191197

192198
@release_time.setter
193-
def release_time(self, value):
199+
def release_time(self, value: int) -> None:
194200
if 1 <= value <= 63:
195201
self._release_control = value
196202
else:
197203
raise ValueError("Release time must be 1 to 63!")
198204

199205
@property
200-
def hold_time(self):
206+
def hold_time(self) -> int:
201207
"""The hold time. This is the minimum time between attack and release. Set to ``0`` -
202208
``63`` where 0 = disabled, and the time increases 0.0137ms with each step, for a maximum of
203209
0.8631ms. Defaults to 0, or disabled.
@@ -219,14 +225,14 @@ def hold_time(self):
219225
return self._hold_time_control
220226

221227
@hold_time.setter
222-
def hold_time(self, value):
228+
def hold_time(self, value: int) -> None:
223229
if 0 <= value <= 63:
224230
self._hold_time_control = value
225231
else:
226232
raise ValueError("Hold time must be 0 to 63!")
227233

228234
@property
229-
def fixed_gain(self):
235+
def fixed_gain(self) -> int:
230236
"""The fixed gain of the amplifier in dB. If compression is enabled, fixed gain is
231237
adjustable from ``–28`` to ``30``. If compression is disabled, fixed gain is adjustable
232238
from ``0`` to ``30``.
@@ -248,7 +254,7 @@ def fixed_gain(self):
248254
return self._fixed_gain_control
249255

250256
@fixed_gain.setter
251-
def fixed_gain(self, value):
257+
def fixed_gain(self, value: int) -> None:
252258
if self.compression_ratio:
253259
if -28 <= value <= 30:
254260
ratio = value & 0x3F
@@ -262,26 +268,26 @@ def fixed_gain(self, value):
262268
raise ValueError("Compression is disabled, gain must be 0 to 30!")
263269

264270
@property
265-
def output_limiter_level(self):
271+
def output_limiter_level(self) -> float:
266272
"""The output limiter level in dBV. Must be between ``-6.5`` and ``9``, set in increments
267273
of 0.5."""
268274
return -6.5 + 0.5 * self._output_limiter_level
269275

270276
@output_limiter_level.setter
271-
def output_limiter_level(self, value):
277+
def output_limiter_level(self, value: float) -> None:
272278
if -6.5 <= value <= 9:
273279
output = int((value + 6.5) / 0.5)
274280
self._output_limiter_level = output
275281
else:
276282
raise ValueError("Output limiter level must be -6.5 to 9!")
277283

278284
@property
279-
def max_gain(self):
285+
def max_gain(self) -> int:
280286
"""The max gain in dB. Must be between ``18`` and ``30``."""
281287
return self._max_gain + 18
282288

283289
@max_gain.setter
284-
def max_gain(self, value):
290+
def max_gain(self, value: int) -> None:
285291
if 18 <= value <= 30:
286292
max_value = value - 18
287293
self._max_gain = max_value

0 commit comments

Comments
 (0)