src.bluetooth_sig.gatt.validation

Enhanced validation utilities for strict type checking and data validation.

This module provides additional validation capabilities beyond the basic utils, focusing on strict type safety and comprehensive data integrity checks.

Attributes

Classes

Name

Description

CommonValidators

Collection of commonly used validation functions.

StrictValidator

Strict validation engine for complex data structures.

ValidationRule

Represents a validation rule with optional custom validator.

Functions

Name

Description

create_range_validator(→ StrictValidator)

Factory function to create a validator for a specific range.

validate_measurement_data(→ dict[str, Any])

Validate measurement data based on type and return validated data.

Module Contents

class src.bluetooth_sig.gatt.validation.CommonValidators

Collection of commonly used validation functions.

static is_ieee11073_special_value(value: int) bool

Check if value is a valid IEEE 11073 special value.

static is_non_negative(value: int | float) bool

Check if value is non-negative.

static is_physical_temperature(value: float) bool

Check if temperature is physically reasonable.

static is_positive(value: int | float) bool

Check if value is positive.

static is_valid_battery_level(value: int) bool

Check if battery level is valid percentage.

static is_valid_concentration(value: float) bool

Check if concentration is in valid range.

static is_valid_extended_percentage(value: int | float) bool

Check if value is a valid extended percentage (0-200).

static is_valid_heart_rate(value: int) bool

Check if heart rate is in human range.

static is_valid_percentage(value: int | float) bool

Check if value is a valid percentage (0-100).

static is_valid_power(value: int | float) bool

Check if power value is reasonable.

class src.bluetooth_sig.gatt.validation.StrictValidator

Bases: msgspec.Struct

Strict validation engine for complex data structures.

add_rule(rule: ValidationRule) None

Add a validation rule.

validate_dict(data: dict[str, Any]) None

Validate a dictionary against all rules.

validate_object(obj: Any) None

Validate an object’s attributes against all rules.

rules: dict[str, ValidationRule]
class src.bluetooth_sig.gatt.validation.ValidationRule

Bases: msgspec.Struct

Represents a validation rule with optional custom validator.

validate(value: Any) None

Apply this validation rule to a value.

custom_validator: Callable[[Any], bool] | None = None
error_message: str | None = None
expected_type: type | tuple[type, Ellipsis]
field_name: str
max_value: int | float | None = None
min_value: int | float | None = None
src.bluetooth_sig.gatt.validation.create_range_validator(field_name: str, expected_type: type, min_value: int | float | None = None, max_value: int | float | None = None, custom_validator: Callable[[Any], bool] | None = None) StrictValidator

Factory function to create a validator for a specific range.

src.bluetooth_sig.gatt.validation.validate_measurement_data(data: dict[str, Any], measurement_type: str) dict[str, Any]

Validate measurement data based on type and return validated data.

src.bluetooth_sig.gatt.validation.BATTERY_VALIDATOR
src.bluetooth_sig.gatt.validation.HEART_RATE_VALIDATOR
src.bluetooth_sig.gatt.validation.T
src.bluetooth_sig.gatt.validation.TEMPERATURE_VALIDATOR