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

14 statements  

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

1"""GATT descriptors package. 

2 

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

4package import lightweight. Built-in descriptors register on first 

5registry access. 

6""" 

7 

8from __future__ import annotations 

9 

10from ..lazy_exports import lazy_getattr 

11from .base import BaseDescriptor 

12from .registry import DescriptorRegistry 

13 

14try: 

15 from ._export_map import LAZY_EXPORT_MAP 

16except ImportError: 

17 LAZY_EXPORT_MAP = {} 

18 

19_EAGER_EXPORTS = ("BaseDescriptor", "DescriptorRegistry") 

20 

21__all__ = [ 

22 *_EAGER_EXPORTS, 

23 *LAZY_EXPORT_MAP, 

24] 

25 

26 

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

28 return lazy_getattr(__name__, LAZY_EXPORT_MAP, name) 

29 

30 

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

32 return sorted(__all__)