Coverage for src/bluetooth_sig/gatt/services/__init__.py: 79%

14 statements  

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

1"""Registry of supported GATT services. 

2 

3Service classes are lazy-loaded via PEP 562 ``__getattr__`` to keep 

4package import lightweight. 

5""" 

6 

7from __future__ import annotations 

8 

9from ..lazy_exports import lazy_getattr 

10from .base import ( 

11 CharacteristicStatus, 

12 ServiceCharacteristicInfo, 

13 ServiceCompletenessReport, 

14 ServiceHealthStatus, 

15 ServiceValidationResult, 

16) 

17from .registry import GattServiceRegistry, ServiceName, get_service_class_map 

18 

19try: 

20 from ._export_map import LAZY_EXPORT_MAP 

21except ImportError: 

22 LAZY_EXPORT_MAP = {} 

23 

24_EAGER_EXPORTS = ( 

25 "CharacteristicStatus", 

26 "GattServiceRegistry", 

27 "ServiceCharacteristicInfo", 

28 "ServiceCompletenessReport", 

29 "ServiceHealthStatus", 

30 "ServiceName", 

31 "ServiceValidationResult", 

32 "get_service_class_map", 

33) 

34 

35__all__ = [ 

36 *_EAGER_EXPORTS, 

37 *LAZY_EXPORT_MAP, 

38] 

39 

40 

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

42 return lazy_getattr(__name__, LAZY_EXPORT_MAP, name) 

43 

44 

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

46 return sorted(__all__)