src.bluetooth_sig.gatt.descriptor_utils

Descriptor context utility functions.

Provides helper functions for extracting and working with descriptor information from CharacteristicContext. These functions serve as both standalone utilities and are mirrored as methods in BaseCharacteristic for convenience.

Functions

Name

Description

enhance_error_message_with_descriptors(→ str)

Enhance error message with descriptor information for better debugging.

get_descriptor_from_context(...)

Get a specific descriptor from context.

get_descriptors_from_context(→ dict[str, Any])

Extract descriptor data from the parsing context.

get_presentation_format_from_context(...)

Get presentation format from descriptor context if available.

get_user_description_from_context(→ str | None)

Get user description from descriptor context if available.

get_valid_range_from_context(→ tuple[int | float, ...)

Get valid range from descriptor context if available.

validate_value_against_descriptor_range(→ bool)

Validate a value against descriptor-defined valid range.

Module Contents

src.bluetooth_sig.gatt.descriptor_utils.enhance_error_message_with_descriptors(base_message: str, ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) str

Enhance error message with descriptor information for better debugging.

Parameters:
  • base_message – Original error message

  • ctx – Characteristic context containing descriptors

Returns:

Enhanced error message with descriptor context

src.bluetooth_sig.gatt.descriptor_utils.get_descriptor_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None, descriptor_class: type[src.bluetooth_sig.gatt.descriptors.base.BaseDescriptor]) src.bluetooth_sig.types.DescriptorData | None

Get a specific descriptor from context.

Parameters:
  • ctx – Characteristic context containing descriptors

  • descriptor_class – Descriptor class to look for

Returns:

DescriptorData if found, None otherwise

src.bluetooth_sig.gatt.descriptor_utils.get_descriptors_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None) dict[str, Any]

Extract descriptor data from the parsing context.

Parameters:

ctx – The characteristic context containing descriptor information

Returns:

Dictionary mapping descriptor UUIDs to DescriptorData objects

src.bluetooth_sig.gatt.descriptor_utils.get_presentation_format_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) src.bluetooth_sig.gatt.descriptors.characteristic_presentation_format.CharacteristicPresentationFormatData | None

Get presentation format from descriptor context if available.

Parameters:

ctx – Characteristic context containing descriptors

Returns:

CharacteristicPresentationFormatData if present, None otherwise

src.bluetooth_sig.gatt.descriptor_utils.get_user_description_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) str | None

Get user description from descriptor context if available.

Parameters:

ctx – Characteristic context containing descriptors

Returns:

User description string if present, None otherwise

src.bluetooth_sig.gatt.descriptor_utils.get_valid_range_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) tuple[int | float, int | float] | None

Get valid range from descriptor context if available.

Parameters:

ctx – Characteristic context containing descriptors

Returns:

Tuple of (min, max) values if Valid Range descriptor present, None otherwise

src.bluetooth_sig.gatt.descriptor_utils.validate_value_against_descriptor_range(value: int | float, ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) bool

Validate a value against descriptor-defined valid range.

Parameters:
  • value – Value to validate

  • ctx – Characteristic context containing descriptors

Returns:

True if value is within valid range or no range defined, False otherwise