src.bluetooth_sig.gatt.registry_utils¶
Common utilities for GATT registries.
This module contains shared utility classes used by both characteristic and service registries to avoid code duplication.
Attributes¶
Name | Description |
|---|---|
Classes¶
Name | Description |
|---|---|
Base class for discovering classes in a package using pkgutil.walk_packages. |
|
Utility class for type validation operations. |
Module Contents¶
- class src.bluetooth_sig.gatt.registry_utils.ModuleDiscovery¶
Base class for discovering classes in a package using pkgutil.walk_packages.
This utility provides a common pattern for discovering and validating classes across different GATT packages (characteristics and services).
- static discover_classes(module_names: list[str], base_class: type[T], validator: Callable[[Any], bool]) list[type[T]]¶
Discover all concrete classes in modules that pass validation.
- Parameters:
module_names – List of module names to search
base_class – Base class type for filtering
validator – Function to validate if object is a valid subclass
- Returns:
Sorted list of discovered classes
- static iter_module_names(package_name: str, module_exclusions: set[str]) list[str]¶
Return sorted module names discovered via pkgutil.walk_packages.
- Parameters:
package_name – Fully qualified package name (e.g., “bluetooth_sig.gatt.characteristics”)
module_exclusions – Set of module basenames to exclude (e.g., {“__init__”, “base”})
- Returns:
Sorted list of module names found in the package
References
Python standard library documentation, pkgutil.walk_packages, https://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packages
- class src.bluetooth_sig.gatt.registry_utils.TypeValidator¶
Utility class for type validation operations.
Note: Utility class pattern with static methods - pylint disable justified.
- src.bluetooth_sig.gatt.registry_utils.T¶