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

10 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-18 11:17 +0000

1"""Utility classes for GATT characteristic parsing and encoding. 

2 

3This module provides organized utility classes that characteristics can 

4import and use as needed, maintaining logical grouping of functionality 

5while avoiding multiple inheritance complexity. 

6 

7Pipeline components (extractors/translators) form the encode/decode pipeline: 

8 bytes → [Extractor] → raw_int → [Translator] → typed_value 

9""" 

10 

11from __future__ import annotations 

12 

13from .bit_field_utils import BitFieldUtils 

14from .data_parser import DataParser 

15from .data_validator import DataValidator 

16from .debug_utils import DebugUtils 

17from .extractors import ( 

18 FLOAT32, 

19 SINT8, 

20 SINT16, 

21 SINT24, 

22 SINT32, 

23 UINT8, 

24 UINT16, 

25 UINT24, 

26 UINT32, 

27 Float32Extractor, 

28 RawExtractor, 

29 Sint8Extractor, 

30 Sint16Extractor, 

31 Sint24Extractor, 

32 Sint32Extractor, 

33 Uint8Extractor, 

34 Uint16Extractor, 

35 Uint24Extractor, 

36 Uint32Extractor, 

37 get_extractor, 

38) 

39from .ieee11073_parser import IEEE11073Parser 

40from .parse_trace import ParseTrace 

41from .translators import ( 

42 FLOAT32_IEEE754, 

43 FLOAT32_IEEE11073, 

44 IDENTITY, 

45 PERCENTAGE, 

46 SFLOAT, 

47 Float32IEEE754Translator, 

48 Float32IEEETranslator, 

49 IdentityTranslator, 

50 LinearTranslator, 

51 PercentageTranslator, 

52 SfloatTranslator, 

53 ValueTranslator, 

54 create_linear_translator, 

55) 

56 

57__all__ = [ 

58 "FLOAT32", 

59 "FLOAT32_IEEE754", 

60 "FLOAT32_IEEE11073", 

61 "IDENTITY", 

62 "PERCENTAGE", 

63 "SFLOAT", 

64 "SINT8", 

65 "SINT16", 

66 "SINT24", 

67 "SINT32", 

68 "UINT8", 

69 "UINT16", 

70 "UINT24", 

71 "UINT32", 

72 # Existing utilities 

73 "BitFieldUtils", 

74 "DataParser", 

75 "DataValidator", 

76 "DebugUtils", 

77 "Float32Extractor", 

78 "Float32IEEE754Translator", 

79 "Float32IEEETranslator", 

80 "IEEE11073Parser", 

81 "IdentityTranslator", 

82 "LinearTranslator", 

83 "ParseTrace", 

84 "PercentageTranslator", 

85 # Extractors 

86 "RawExtractor", 

87 "SfloatTranslator", 

88 "Sint8Extractor", 

89 "Sint16Extractor", 

90 "Sint24Extractor", 

91 "Sint32Extractor", 

92 "Uint8Extractor", 

93 "Uint16Extractor", 

94 "Uint24Extractor", 

95 "Uint32Extractor", 

96 # Translators 

97 "ValueTranslator", 

98 "create_linear_translator", 

99 "get_extractor", 

100]