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

10 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-11 20:14 +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 # Existing utilities 

59 "BitFieldUtils", 

60 "DataParser", 

61 "DataValidator", 

62 "DebugUtils", 

63 "IEEE11073Parser", 

64 "ParseTrace", 

65 # Extractors 

66 "RawExtractor", 

67 "Uint8Extractor", 

68 "Sint8Extractor", 

69 "Uint16Extractor", 

70 "Sint16Extractor", 

71 "Uint24Extractor", 

72 "Sint24Extractor", 

73 "Uint32Extractor", 

74 "Sint32Extractor", 

75 "Float32Extractor", 

76 "get_extractor", 

77 "UINT8", 

78 "SINT8", 

79 "UINT16", 

80 "SINT16", 

81 "UINT24", 

82 "SINT24", 

83 "UINT32", 

84 "SINT32", 

85 "FLOAT32", 

86 # Translators 

87 "ValueTranslator", 

88 "IdentityTranslator", 

89 "LinearTranslator", 

90 "PercentageTranslator", 

91 "SfloatTranslator", 

92 "Float32IEEETranslator", 

93 "Float32IEEE754Translator", 

94 "create_linear_translator", 

95 "IDENTITY", 

96 "PERCENTAGE", 

97 "SFLOAT", 

98 "FLOAT32_IEEE11073", 

99 "FLOAT32_IEEE754", 

100]