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
« 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.
3This module provides organized utility classes that characteristics can
4import and use as needed, maintaining logical grouping of functionality
5while avoiding multiple inheritance complexity.
7Pipeline components (extractors/translators) form the encode/decode pipeline:
8 bytes → [Extractor] → raw_int → [Translator] → typed_value
9"""
11from __future__ import annotations
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)
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]