Coverage for src/bluetooth_sig/gatt/characteristics/__init__.py: 100%

79 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-30 00:10 +0000

1"""Bluetooth SIG GATT characteristic registry. 

2 

3Provides type-safe, registry-driven lookup for all supported 

4characteristics. Now encapsulated in CharacteristicRegistry class for 

5API clarity and extensibility. 

6""" 

7 

8from __future__ import annotations 

9 

10# Import the registry components from the dedicated registry module 

11# Import all individual characteristic classes for backward compatibility 

12from .ammonia_concentration import AmmoniaConcentrationCharacteristic 

13from .apparent_wind_direction import ApparentWindDirectionCharacteristic 

14from .apparent_wind_speed import ApparentWindSpeedCharacteristic 

15from .average_current import AverageCurrentCharacteristic 

16from .average_voltage import AverageVoltageCharacteristic 

17from .barometric_pressure_trend import BarometricPressureTrendCharacteristic 

18from .base import BaseCharacteristic 

19from .battery_level import BatteryLevelCharacteristic 

20from .battery_power_state import BatteryPowerStateCharacteristic 

21from .blood_pressure_feature import BloodPressureFeatureCharacteristic 

22from .blood_pressure_measurement import BloodPressureMeasurementCharacteristic 

23from .body_composition_feature import BodyCompositionFeatureCharacteristic 

24from .body_composition_measurement import BodyCompositionMeasurementCharacteristic 

25from .co2_concentration import CO2ConcentrationCharacteristic 

26from .csc_feature import CSCFeatureCharacteristic 

27from .csc_measurement import CSCMeasurementCharacteristic 

28from .cycling_power_control_point import CyclingPowerControlPointCharacteristic 

29from .cycling_power_feature import CyclingPowerFeatureCharacteristic 

30from .cycling_power_measurement import CyclingPowerMeasurementCharacteristic 

31from .cycling_power_vector import CyclingPowerVectorCharacteristic 

32 

33# Device info classes imported individually below 

34from .device_info import ( 

35 FirmwareRevisionStringCharacteristic, 

36 HardwareRevisionStringCharacteristic, 

37 ManufacturerNameStringCharacteristic, 

38 ModelNumberStringCharacteristic, 

39 SerialNumberStringCharacteristic, 

40 SoftwareRevisionStringCharacteristic, 

41) 

42from .dew_point import DewPointCharacteristic 

43from .electric_current import ElectricCurrentCharacteristic 

44from .electric_current_range import ElectricCurrentRangeCharacteristic 

45from .electric_current_specification import ElectricCurrentSpecificationCharacteristic 

46from .electric_current_statistics import ElectricCurrentStatisticsCharacteristic 

47from .elevation import ElevationCharacteristic 

48from .generic_access import AppearanceCharacteristic, DeviceNameCharacteristic 

49from .glucose_feature import GlucoseFeatureCharacteristic, GlucoseFeatures 

50from .glucose_measurement import ( 

51 GlucoseMeasurementCharacteristic, 

52 GlucoseMeasurementFlags, 

53) 

54from .glucose_measurement_context import ( 

55 GlucoseMeasurementContextCharacteristic, 

56 GlucoseMeasurementContextFlags, 

57) 

58from .heart_rate_measurement import HeartRateMeasurementCharacteristic 

59from .heat_index import HeatIndexCharacteristic 

60from .high_voltage import HighVoltageCharacteristic 

61from .humidity import HumidityCharacteristic 

62from .illuminance import IlluminanceCharacteristic 

63from .ln_control_point import LNControlPointCharacteristic 

64from .ln_feature import LNFeatureCharacteristic 

65from .local_time_information import LocalTimeInformationCharacteristic 

66from .location_and_speed import LocationAndSpeedCharacteristic 

67from .magnetic_declination import MagneticDeclinationCharacteristic 

68from .magnetic_flux_density_2d import MagneticFluxDensity2DCharacteristic 

69from .magnetic_flux_density_3d import MagneticFluxDensity3DCharacteristic 

70from .methane_concentration import MethaneConcentrationCharacteristic 

71from .navigation import NavigationCharacteristic 

72from .nitrogen_dioxide_concentration import NitrogenDioxideConcentrationCharacteristic 

73from .noise import NoiseCharacteristic 

74from .non_methane_voc_concentration import NonMethaneVOCConcentrationCharacteristic 

75from .ozone_concentration import OzoneConcentrationCharacteristic 

76from .pm1_concentration import PM1ConcentrationCharacteristic 

77from .pm10_concentration import PM10ConcentrationCharacteristic 

78from .pm25_concentration import PM25ConcentrationCharacteristic 

79from .pollen_concentration import PollenConcentrationCharacteristic 

80from .position_quality import PositionQualityCharacteristic 

81from .pressure import PressureCharacteristic 

82from .pulse_oximetry_measurement import PulseOximetryMeasurementCharacteristic 

83from .rainfall import RainfallCharacteristic 

84from .registry import ( 

85 CHARACTERISTIC_CLASS_MAP, 

86 CharacteristicName, 

87 CharacteristicRegistry, 

88) 

89from .rsc_feature import RSCFeatureCharacteristic 

90from .rsc_measurement import RSCMeasurementCharacteristic 

91from .sulfur_dioxide_concentration import SulfurDioxideConcentrationCharacteristic 

92from .supported_power_range import SupportedPowerRangeCharacteristic 

93from .temperature import TemperatureCharacteristic 

94from .temperature_measurement import TemperatureMeasurementCharacteristic 

95from .time_zone import TimeZoneCharacteristic 

96from .true_wind_direction import TrueWindDirectionCharacteristic 

97from .true_wind_speed import TrueWindSpeedCharacteristic 

98from .tx_power_level import TxPowerLevelCharacteristic 

99from .uv_index import UVIndexCharacteristic 

100from .voc_concentration import VOCConcentrationCharacteristic 

101from .voltage import VoltageCharacteristic 

102from .voltage_frequency import VoltageFrequencyCharacteristic 

103from .voltage_specification import VoltageSpecificationCharacteristic 

104from .voltage_statistics import VoltageStatisticsCharacteristic 

105from .weight_measurement import WeightMeasurementCharacteristic 

106from .weight_scale_feature import WeightScaleFeatureCharacteristic 

107from .wind_chill import WindChillCharacteristic 

108 

109__all__ = [ 

110 # Registry components 

111 "CharacteristicName", 

112 "CharacteristicRegistry", 

113 "CHARACTERISTIC_CLASS_MAP", 

114 # Base characteristic 

115 "BaseCharacteristic", 

116 # Individual characteristic classes (for backward compatibility) 

117 "AmmoniaConcentrationCharacteristic", 

118 "ApparentWindDirectionCharacteristic", 

119 "ApparentWindSpeedCharacteristic", 

120 "AverageCurrentCharacteristic", 

121 "AverageVoltageCharacteristic", 

122 "BarometricPressureTrendCharacteristic", 

123 "BatteryLevelCharacteristic", 

124 "BatteryPowerStateCharacteristic", 

125 "BloodPressureFeatureCharacteristic", 

126 "BloodPressureMeasurementCharacteristic", 

127 "BodyCompositionFeatureCharacteristic", 

128 "BodyCompositionMeasurementCharacteristic", 

129 "CO2ConcentrationCharacteristic", 

130 "CSCFeatureCharacteristic", 

131 "CSCMeasurementCharacteristic", 

132 "CyclingPowerControlPointCharacteristic", 

133 "CyclingPowerFeatureCharacteristic", 

134 "CyclingPowerMeasurementCharacteristic", 

135 "CyclingPowerVectorCharacteristic", 

136 "AppearanceCharacteristic", 

137 "DeviceNameCharacteristic", 

138 "DewPointCharacteristic", 

139 "ElectricCurrentCharacteristic", 

140 "ElectricCurrentRangeCharacteristic", 

141 "ElectricCurrentSpecificationCharacteristic", 

142 "ElectricCurrentStatisticsCharacteristic", 

143 "ElevationCharacteristic", 

144 "FirmwareRevisionStringCharacteristic", 

145 "GlucoseFeatureCharacteristic", 

146 "GlucoseMeasurementCharacteristic", 

147 "GlucoseMeasurementContextCharacteristic", 

148 "GlucoseMeasurementContextFlags", 

149 "GlucoseMeasurementFlags", 

150 "GlucoseFeatures", 

151 "HeartRateMeasurementCharacteristic", 

152 "HeatIndexCharacteristic", 

153 "HighVoltageCharacteristic", 

154 "HumidityCharacteristic", 

155 "HardwareRevisionStringCharacteristic", 

156 "IlluminanceCharacteristic", 

157 "LocalTimeInformationCharacteristic", 

158 "LocationAndSpeedCharacteristic", 

159 "LNControlPointCharacteristic", 

160 "LNFeatureCharacteristic", 

161 "MagneticDeclinationCharacteristic", 

162 "MagneticFluxDensity2DCharacteristic", 

163 "MagneticFluxDensity3DCharacteristic", 

164 "ManufacturerNameStringCharacteristic", 

165 "MethaneConcentrationCharacteristic", 

166 "ModelNumberStringCharacteristic", 

167 "NavigationCharacteristic", 

168 "NitrogenDioxideConcentrationCharacteristic", 

169 "NonMethaneVOCConcentrationCharacteristic", 

170 "OzoneConcentrationCharacteristic", 

171 "PM1ConcentrationCharacteristic", 

172 "PM10ConcentrationCharacteristic", 

173 "PM25ConcentrationCharacteristic", 

174 "PollenConcentrationCharacteristic", 

175 "PositionQualityCharacteristic", 

176 "PressureCharacteristic", 

177 "PulseOximetryMeasurementCharacteristic", 

178 "RainfallCharacteristic", 

179 "RSCMeasurementCharacteristic", 

180 "RSCFeatureCharacteristic", 

181 "SerialNumberStringCharacteristic", 

182 "SoftwareRevisionStringCharacteristic", 

183 "NoiseCharacteristic", 

184 "SulfurDioxideConcentrationCharacteristic", 

185 "SupportedPowerRangeCharacteristic", 

186 "TemperatureCharacteristic", 

187 "TemperatureMeasurementCharacteristic", 

188 "TimeZoneCharacteristic", 

189 "TrueWindDirectionCharacteristic", 

190 "TrueWindSpeedCharacteristic", 

191 "TxPowerLevelCharacteristic", 

192 "UVIndexCharacteristic", 

193 "VOCConcentrationCharacteristic", 

194 "VoltageCharacteristic", 

195 "VoltageFrequencyCharacteristic", 

196 "VoltageSpecificationCharacteristic", 

197 "VoltageStatisticsCharacteristic", 

198 "WeightMeasurementCharacteristic", 

199 "WeightScaleFeatureCharacteristic", 

200 "WindChillCharacteristic", 

201]