51
51
from adafruit_register import i2c_bcd_alarm
52
52
from adafruit_register import i2c_bcd_datetime
53
53
54
+ try :
55
+ # Used only for typing
56
+ import typing # pylint: disable=unused-import
57
+ from busio import I2C
58
+ from time import struct_time
59
+ except ImportError :
60
+ pass
61
+
54
62
__version__ = "0.0.0-auto.0"
55
63
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_DS3231.git"
56
64
@@ -131,28 +139,28 @@ class DS3231:
131
139
_busy = i2c_bit .ROBit (0x0F , 2 )
132
140
_conv = i2c_bit .RWBit (0x0E , 5 )
133
141
134
- def __init__ (self , i2c ) :
142
+ def __init__ (self , i2c : I2C ) -> None :
135
143
self .i2c_device = I2CDevice (i2c , 0x68 )
136
144
137
145
@property
138
- def datetime (self ):
146
+ def datetime (self ) -> struct_time :
139
147
"""Gets the current date and time or sets the current date and time
140
148
then starts the clock."""
141
149
return self .datetime_register
142
150
143
151
@datetime .setter
144
- def datetime (self , value ) :
152
+ def datetime (self , value : struct_time ) -> None :
145
153
self .datetime_register = value
146
154
self .disable_oscillator = False
147
155
self .lost_power = False
148
156
149
157
@property
150
- def temperature (self ):
158
+ def temperature (self ) -> float :
151
159
"""Returns the last temperature measurement. Temperature is updated
152
160
only every 64 seconds, or when a conversion is forced."""
153
161
return self ._temperature / 4
154
162
155
- def force_temperature_conversion (self ):
163
+ def force_temperature_conversion (self ) -> float :
156
164
"""Forces a conversion and returns the new temperature"""
157
165
while self ._busy :
158
166
pass # Wait for any normal in-progress conversion to complete
@@ -162,7 +170,7 @@ def force_temperature_conversion(self):
162
170
return self .temperature
163
171
164
172
@property
165
- def calibration (self ):
173
+ def calibration (self ) -> int :
166
174
"""Calibrate the frequency of the crystal oscillator by adding or
167
175
removing capacitance. The datasheet calls this the Aging Offset.
168
176
Calibration values range from -128 to 127; each step is approximately
@@ -172,6 +180,6 @@ def calibration(self):
172
180
return self ._calibration
173
181
174
182
@calibration .setter
175
- def calibration (self , value ) :
183
+ def calibration (self , value : int ) -> None :
176
184
self ._calibration = value
177
185
self .force_temperature_conversion ()
0 commit comments