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

T

Classes

Name

Description

ModuleDiscovery

Base class for discovering classes in a package using pkgutil.walk_packages.

TypeValidator

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.

static is_subclass_of(candidate: object, base_class: type) typing_extensions.TypeGuard[type]

Return True when candidate is a subclass of base_class.

Parameters:
  • candidate – Object to check

  • base_class – Base class to check against

Returns:

True if candidate is a subclass of base_class

src.bluetooth_sig.gatt.registry_utils.T