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

14 statements  

« prev     ^ index     » next       coverage.py v7.14.3, created at 2026-06-28 01:26 +0000

1"""Bluetooth SIG GATT characteristic registry. 

2 

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

4characteristics. Characteristic classes are lazy-loaded via PEP 562 

5``__getattr__`` to keep package import lightweight. 

6""" 

7 

8from __future__ import annotations 

9 

10from ..lazy_exports import lazy_getattr 

11from .base import BaseCharacteristic 

12from .registry import CharacteristicName, CharacteristicRegistry, get_characteristic_class_map 

13 

14try: 

15 from ._export_map import LAZY_EXPORT_MAP 

16except ImportError: 

17 LAZY_EXPORT_MAP = {} 

18 

19_EAGER_EXPORTS = ( 

20 "BaseCharacteristic", 

21 "CharacteristicName", 

22 "CharacteristicRegistry", 

23 "get_characteristic_class_map", 

24) 

25 

26__all__ = [ 

27 *_EAGER_EXPORTS, 

28 *LAZY_EXPORT_MAP, 

29] 

30 

31 

32def __getattr__(name: str) -> object: 

33 return lazy_getattr(__name__, LAZY_EXPORT_MAP, name) 

34 

35 

36def __dir__() -> list[str]: 

37 return sorted(__all__)