Coverage report: 90%

Files Functions Classes

coverage.py v7.14.3, created at 2026-06-28 01:26 +0000

File function   statements missing excluded   coverage
src/bluetooth_sig/__init__.py (no function)   16 3 0   81%
src/bluetooth_sig/_version.py (no function)   11 0 0   100%
src/bluetooth_sig/advertising/__init__.py (no function)   14 0 0   100%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.__init__   1 0 0   100%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.mac_address   1 0 0   100%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.info   1 0 0   100%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.__init_subclass__   7 1 0   86%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.supports   0 0 0   100%
src/bluetooth_sig/advertising/base.py PayloadInterpreter.interpret   0 0 0   100%
src/bluetooth_sig/advertising/base.py (no function)   38 0 1   100%
src/bluetooth_sig/advertising/ead_decryptor.py _get_aesccm_cipher   4 2 0   50%
src/bluetooth_sig/advertising/ead_decryptor.py build_ead_nonce   8 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py decrypt_ead   16 3 0   81%
src/bluetooth_sig/advertising/ead_decryptor.py decrypt_ead_from_raw   8 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor.__init__   3 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor.from_key   4 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor.from_provider   1 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor._get_cached_cipher   3 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor.decrypt   26 3 0   88%
src/bluetooth_sig/advertising/ead_decryptor.py EADDecryptor.clear_cache   1 0 0   100%
src/bluetooth_sig/advertising/ead_decryptor.py (no function)   25 0 0   100%
src/bluetooth_sig/advertising/encryption.py EADKeyProvider.get_ead_key   0 0 1   100%
src/bluetooth_sig/advertising/encryption.py EncryptionKeyProvider.get_key   0 0 1   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.__init__   9 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.get_key   7 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.get_ead_key   7 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.set_key   3 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.set_ead_key   3 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.remove_key   2 0 0   100%
src/bluetooth_sig/advertising/encryption.py DictKeyProvider.remove_ead_key   2 0 0   100%
src/bluetooth_sig/advertising/encryption.py (no function)   21 0 2   100%
src/bluetooth_sig/advertising/exceptions.py AdvertisingParseError.__init__   13 0 0   100%
src/bluetooth_sig/advertising/exceptions.py EncryptionRequiredError.__init__   3 0 0   100%
src/bluetooth_sig/advertising/exceptions.py DecryptionFailedError.__init__   4 0 0   100%
src/bluetooth_sig/advertising/exceptions.py UnsupportedVersionError.__init__   5 0 0   100%
src/bluetooth_sig/advertising/exceptions.py ReplayDetectedError.__init__   5 0 0   100%
src/bluetooth_sig/advertising/exceptions.py DuplicatePacketError.__init__   4 0 0   100%
src/bluetooth_sig/advertising/exceptions.py (no function)   15 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser.parse_advertising_data   3 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._is_extended_advertising_pdu   5 1 0   80%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_extended_advertising   13 9 0   31%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_extended_pdu   21 13 0   38%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_address_to_string   1 1 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_cte_info   4 4 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_advertising_data_info   4 4 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_auxiliary_pointer_struct   8 8 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_sync_info   11 11 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_extended_header   53 53 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_auxiliary_packets   2 2 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_legacy_advertising   2 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_address_list   6 6 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_16bit_uuids   6 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_32bit_uuids   6 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_128bit_uuids   5 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_manufacturer_data   2 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_core_ad_types   36 12 0   67%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_property_ad_types   19 2 0   89%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_mesh_ad_types   21 12 0   43%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_mesh_beacon   8 8 0   0%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_security_ad_types   18 9 0   50%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_directed_ad_types   17 10 0   41%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._handle_location_ad_types   10 5 0   50%
src/bluetooth_sig/advertising/pdu_parser.py AdvertisingPDUParser._parse_ad_structures   15 2 0   87%
src/bluetooth_sig/advertising/pdu_parser.py (no function)   78 0 0   100%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.get_instance   5 0 0   100%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.__init__   3 0 0   100%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.register   17 2 0   88%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.unregister   12 6 0   50%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.find_interpreter_class   13 0 0   100%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.find_all_interpreter_classes   10 3 0   70%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.get_registered_interpreters   7 1 0   86%
src/bluetooth_sig/advertising/registry.py PayloadInterpreterRegistry.clear   3 0 0   100%
src/bluetooth_sig/advertising/registry.py get_payload_interpreter_registry   1 0 0   100%
src/bluetooth_sig/advertising/registry.py parse_advertising_payloads   20 20 0   0%
src/bluetooth_sig/advertising/registry.py (no function)   28 0 0   100%
src/bluetooth_sig/advertising/service_data_parser.py ServiceDataParser.get_characteristic   7 0 0   100%
src/bluetooth_sig/advertising/service_data_parser.py ServiceDataParser.clear_cache   1 0 0   100%
src/bluetooth_sig/advertising/service_data_parser.py ServiceDataParser.build_context   5 0 0   100%
src/bluetooth_sig/advertising/service_data_parser.py ServiceDataParser.parse   7 0 0   100%
src/bluetooth_sig/advertising/service_data_parser.py (no function)   16 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py ResolvedService.__init__   4 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py ResolvedService.__repr__   2 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py AdvertisingServiceResolver.resolve   8 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py AdvertisingServiceResolver.resolve_all   1 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py AdvertisingServiceResolver.get_known_services   1 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py AdvertisingServiceResolver.get_sig_services   1 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py (no function)   13 0 0   100%
src/bluetooth_sig/advertising/sig_characteristic_interpreter.py SIGCharacteristicInterpreter.supports   4 0 0   100%
src/bluetooth_sig/advertising/sig_characteristic_interpreter.py SIGCharacteristicInterpreter.interpret   13 0 0   100%
src/bluetooth_sig/advertising/sig_characteristic_interpreter.py (no function)   20 0 0   100%
src/bluetooth_sig/advertising/state.py (no function)   18 0 0   100%
src/bluetooth_sig/core/__init__.py (no function)   4 0 0   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.__init__   3 0 0   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.__aenter__   1 0 0   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.__aexit__   1 0 0   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.parse   0 0 1   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.parse   0 0 1   100%
src/bluetooth_sig/core/async_context.py AsyncParsingSession.parse   14 0 0   100%
src/bluetooth_sig/core/async_context.py (no function)   14 0 11   100%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.__init__   1 0 0   100%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.encode_characteristic   0 0 1   100%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.encode_characteristic   0 0 1   100%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.encode_characteristic   37 9 0   76%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder._get_characteristic_value_type_class   29 7 0   76%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.validate_characteristic_data   17 4 0   76%
src/bluetooth_sig/core/encoder.py CharacteristicEncoder.create_value   22 7 0   68%
src/bluetooth_sig/core/encoder.py (no function)   21 0 14   100%
src/bluetooth_sig/core/parser.py CharacteristicParser.parse_characteristic   0 0 1   100%
src/bluetooth_sig/core/parser.py CharacteristicParser.parse_characteristic   0 0 1   100%
src/bluetooth_sig/core/parser.py CharacteristicParser.parse_characteristic   29 8 0   72%
src/bluetooth_sig/core/parser.py CharacteristicParser.parse_characteristics   1 0 0   100%
src/bluetooth_sig/core/parser.py CharacteristicParser._parse_characteristics_batch   17 0 0   100%
src/bluetooth_sig/core/parser.py CharacteristicParser._prepare_characteristic_dependencies   17 1 0   94%
src/bluetooth_sig/core/parser.py CharacteristicParser._resolve_dependency_order   13 0 0   100%
src/bluetooth_sig/core/parser.py CharacteristicParser._find_missing_required_dependencies   13 1 0   92%
src/bluetooth_sig/core/parser.py CharacteristicParser._log_optional_dependency_gaps   9 0 0   100%
src/bluetooth_sig/core/parser.py CharacteristicParser._build_parse_context   5 0 0   100%
src/bluetooth_sig/core/parser.py (no function)   25 0 13   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.supports   6 0 0   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_value_type   2 0 0   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_characteristic_info_by_uuid   12 2 0   83%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_characteristic_uuid_by_name   2 0 0   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_service_uuid_by_name   3 0 0   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_characteristic_info_by_name   11 3 0   73%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_service_info_by_name   8 2 0   75%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_service_info_by_uuid   11 3 0   73%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.list_supported_characteristics   7 2 0   71%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.list_supported_services   9 2 0   78%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_characteristics_info_by_uuids   4 0 0   100%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_service_characteristics   15 4 0   73%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_sig_info_by_name   10 2 0   80%
src/bluetooth_sig/core/query.py CharacteristicQueryEngine.get_sig_info_by_uuid   7 0 0   100%
src/bluetooth_sig/core/query.py (no function)   26 0 0   100%
src/bluetooth_sig/core/registration.py RegistrationManager.register_custom_characteristic_class   3 0 0   100%
src/bluetooth_sig/core/registration.py RegistrationManager.register_custom_service_class   3 0 0   100%
src/bluetooth_sig/core/registration.py (no function)   13 0 0   100%
src/bluetooth_sig/core/service_manager.py ServiceManager.__init__   1 0 0   100%
src/bluetooth_sig/core/service_manager.py ServiceManager.process_services   15 14 0   7%
src/bluetooth_sig/core/service_manager.py ServiceManager.get_service_by_uuid   1 1 0   0%
src/bluetooth_sig/core/service_manager.py ServiceManager.discovered_services   1 0 0   100%
src/bluetooth_sig/core/service_manager.py ServiceManager.clear_services   1 0 0   100%
src/bluetooth_sig/core/service_manager.py (no function)   15 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.__new__   3 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_instance   3 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.__init__   8 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.__str__   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristics   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.validate_characteristic_data   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.create_value   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_value_type   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.supports   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_characteristic_info_by_uuid   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_characteristic_uuid_by_name   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_service_uuid_by_name   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_characteristic_info_by_name   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_service_info_by_name   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_service_info_by_uuid   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.list_supported_characteristics   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.list_supported_services   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_characteristics_info_by_uuids   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_service_characteristics   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_sig_info_by_name   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_sig_info_by_uuid   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.process_services   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.get_service_by_uuid   1 1 0   0%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.discovered_services   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.clear_services   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.register_custom_characteristic_class   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.register_custom_service_class   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic_async   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic_async   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristic_async   4 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.parse_characteristics_async   1 0 0   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic_async   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic_async   0 0 1   100%
src/bluetooth_sig/core/translator.py BluetoothSIGTranslator.encode_characteristic_async   4 0 0   100%
src/bluetooth_sig/core/translator.py (no function)   52 0 54   100%
src/bluetooth_sig/device/__init__.py (no function)   10 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.__init__   8 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.mac_address   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.set_registry   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.register_interpreter   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.get_interpreter   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.set_bindkey   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process   17 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising._run_interpreter   1 0 0   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process_from_connection_manager   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process_from_connection_manager   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.process_from_connection_manager   16 16 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.parse_raw_pdu   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.parse_raw_pdu   0 0 1   100%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.parse_raw_pdu   17 6 0   65%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.subscribe   3 3 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising.unsubscribe   8 8 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising._dispatch_to_callbacks   5 5 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising._enable_backend_monitoring   8 8 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising._disable_backend_monitoring   3 3 0   0%
src/bluetooth_sig/device/advertising.py DeviceAdvertising._backend_callback_handler   6 6 0   0%
src/bluetooth_sig/device/advertising.py (no function)   31 0 38   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.__init__   4 0 0   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.read   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.read   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.read   18 9 0   50%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.write   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.write   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.write   10 6 0   40%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.start_notify   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.start_notify   0 0 1   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.start_notify   10 5 0   50%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.start_notify._typed_cb   6 6 0   0%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.start_notify._internal_cb   5 0 0   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.stop_notify   2 2 0   0%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.read_multiple   11 0 0   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO.write_multiple   11 0 0   100%
src/bluetooth_sig/device/characteristic_io.py CharacteristicIO._resolve_characteristic_name   10 5 0   50%
src/bluetooth_sig/device/characteristic_io.py (no function)   22 0 37   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.__init__   1 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.address   1 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.connect   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.disconnect   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.read_gatt_char   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.write_gatt_char   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.read_gatt_descriptor   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.write_gatt_descriptor   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.get_services   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.start_notify   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.stop_notify   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.pair   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.unpair   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.read_rssi   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.get_advertisement_rssi   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.set_disconnected_callback   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.register_advertisement_callback   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.unregister_advertisement_callback   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.is_connected   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.mtu_size   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.name   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.scan   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.find_device   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.scan_stream   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.get_latest_advertisement   0 0 0   100%
src/bluetooth_sig/device/client.py ClientManagerProtocol.on_advertisement_received   1 1 0   0%
src/bluetooth_sig/device/client.py ClientManagerProtocol.convert_advertisement   0 0 0   100%
src/bluetooth_sig/device/client.py (no function)   64 0 0   100%
src/bluetooth_sig/device/connected.py DeviceConnected.__init__   6 0 0   100%
src/bluetooth_sig/device/connected.py DeviceConnected.mac_address   1 1 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.connection_manager   1 1 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.connection_manager   1 1 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.is_connected   1 0 0   100%
src/bluetooth_sig/device/connected.py DeviceConnected.connect   4 1 0   75%
src/bluetooth_sig/device/connected.py DeviceConnected.disconnect   5 1 0   80%
src/bluetooth_sig/device/connected.py DeviceConnected.discover_services   12 2 0   83%
src/bluetooth_sig/device/connected.py DeviceConnected.read   10 10 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.write   12 12 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.subscribe   11 11 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.subscribe.notification_handler   6 6 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.unsubscribe   7 7 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.read_descriptor   5 2 0   60%
src/bluetooth_sig/device/connected.py DeviceConnected.write_descriptor   5 2 0   60%
src/bluetooth_sig/device/connected.py DeviceConnected.pair   3 1 0   67%
src/bluetooth_sig/device/connected.py DeviceConnected.unpair   3 1 0   67%
src/bluetooth_sig/device/connected.py DeviceConnected.read_rssi   3 1 0   67%
src/bluetooth_sig/device/connected.py DeviceConnected.mtu_size   3 3 0   0%
src/bluetooth_sig/device/connected.py DeviceConnected.set_disconnected_callback   3 1 0   67%
src/bluetooth_sig/device/connected.py DeviceConnected.get_cached_characteristic   5 0 0   100%
src/bluetooth_sig/device/connected.py DeviceConnected.cache_characteristic   6 6 0   0%
src/bluetooth_sig/device/connected.py (no function)   47 0 0   100%
src/bluetooth_sig/device/dependency_resolver.py DependencyResolver.__init__   2 0 0   100%
src/bluetooth_sig/device/dependency_resolver.py DependencyResolver.resolve   22 17 0   23%
src/bluetooth_sig/device/dependency_resolver.py DependencyResolver._resolve_single   17 17 0   0%
src/bluetooth_sig/device/dependency_resolver.py (no function)   21 0 0   100%
src/bluetooth_sig/device/device.py Device.__init__   10 0 0   100%
src/bluetooth_sig/device/device.py Device.__str__   3 0 0   100%
src/bluetooth_sig/device/device.py Device.services   1 0 0   100%
src/bluetooth_sig/device/device.py Device.encryption   1 0 0   100%
src/bluetooth_sig/device/device.py Device.address   1 0 0   100%
src/bluetooth_sig/device/device.py Device.scan   1 1 0   0%
src/bluetooth_sig/device/device.py Device.connect   1 0 0   100%
src/bluetooth_sig/device/device.py Device.disconnect   1 0 0   100%
src/bluetooth_sig/device/device.py Device.read   0 0 1   100%
src/bluetooth_sig/device/device.py Device.read   0 0 1   100%
src/bluetooth_sig/device/device.py Device.read   1 0 0   100%
src/bluetooth_sig/device/device.py Device.write   0 0 1   100%
src/bluetooth_sig/device/device.py Device.write   0 0 1   100%
src/bluetooth_sig/device/device.py Device.write   1 0 0   100%
src/bluetooth_sig/device/device.py Device.start_notify   0 0 1   100%
src/bluetooth_sig/device/device.py Device.start_notify   0 0 1   100%
src/bluetooth_sig/device/device.py Device.start_notify   1 0 0   100%
src/bluetooth_sig/device/device.py Device.stop_notify   1 1 0   0%
src/bluetooth_sig/device/device.py Device.read_descriptor   12 4 0   67%
src/bluetooth_sig/device/device.py Device.attach_user_description   9 2 0   78%
src/bluetooth_sig/device/device.py Device.get_user_description_for_characteristic   2 0 0   100%
src/bluetooth_sig/device/device.py Device._attach_user_description_from_descriptor   11 4 0   64%
src/bluetooth_sig/device/device.py Device.write_descriptor   3 0 0   100%
src/bluetooth_sig/device/device.py Device.pair   1 0 0   100%
src/bluetooth_sig/device/device.py Device.unpair   1 0 0   100%
src/bluetooth_sig/device/device.py Device.read_rssi   1 0 0   100%
src/bluetooth_sig/device/device.py Device.set_disconnected_callback   1 0 0   100%
src/bluetooth_sig/device/device.py Device.mtu_size   1 1 0   0%
src/bluetooth_sig/device/device.py Device.refresh_advertisement   10 10 0   0%
src/bluetooth_sig/device/device.py Device.parse_raw_advertisement   5 0 0   100%
src/bluetooth_sig/device/device.py Device.get_characteristic_data   4 4 0   0%
src/bluetooth_sig/device/device.py Device.discover_services   3 0 0   100%
src/bluetooth_sig/device/device.py Device.get_characteristic_info   8 4 0   50%
src/bluetooth_sig/device/device.py Device.read_multiple   1 0 0   100%
src/bluetooth_sig/device/device.py Device.write_multiple   1 0 0   100%
src/bluetooth_sig/device/device.py Device.device_info   7 0 0   100%
src/bluetooth_sig/device/device.py Device.name   1 0 0   100%
src/bluetooth_sig/device/device.py Device.name   3 0 0   100%
src/bluetooth_sig/device/device.py Device.is_connected   1 0 0   100%
src/bluetooth_sig/device/device.py Device.last_advertisement   1 0 0   100%
src/bluetooth_sig/device/device.py Device.get_service_by_uuid   1 1 0   0%
src/bluetooth_sig/device/device.py Device.get_services_by_name   4 4 0   0%
src/bluetooth_sig/device/device.py Device.list_characteristics   6 6 0   0%
src/bluetooth_sig/device/device.py (no function)   71 0 37   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.__init__   10 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.name   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.services   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.manufacturer_data   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.service_data   1 1 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.tx_power   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.is_connectable_config   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.is_discoverable_config   1 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_manufacturer_data   4 4 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_manufacturer_id   5 1 0   80%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_service_data   4 4 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_tx_power   4 1 0   75%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_connectable   4 1 0   75%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.with_discoverable   4 1 0   75%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.add_service   10 3 0   70%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.get_characteristic_definition   2 2 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.set_read_callback   4 4 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.set_write_callback   4 4 0   0%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.start   0 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.stop   0 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.is_advertising   0 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.update_characteristic   0 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.get_characteristic_value   0 0 0   100%
src/bluetooth_sig/device/peripheral.py PeripheralManagerProtocol.connected_clients   1 1 0   0%
src/bluetooth_sig/device/peripheral.py (no function)   49 0 0   100%
src/bluetooth_sig/device/peripheral_device.py HostedCharacteristic.__init__   3 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.__init__   4 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.name   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.is_advertising   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.services   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.hosted_characteristics   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.add_characteristic   10 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.add_service   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.start   4 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.stop   1 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.update_value   7 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.update_raw   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.get_current_value   5 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.with_manufacturer_data   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.with_tx_power   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.with_connectable   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.with_discoverable   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice._resolve_uuid_key   3 0 0   100%
src/bluetooth_sig/device/peripheral_device.py PeripheralDevice.__repr__   2 0 0   100%
src/bluetooth_sig/device/peripheral_device.py (no function)   37 0 0   100%
src/bluetooth_sig/device/protocols.py SIGTranslatorProtocol.parse_characteristics   0 0 0   100%
src/bluetooth_sig/device/protocols.py SIGTranslatorProtocol.parse_characteristic   0 0 0   100%
src/bluetooth_sig/device/protocols.py SIGTranslatorProtocol.get_characteristic_uuid_by_name   0 0 0   100%
src/bluetooth_sig/device/protocols.py SIGTranslatorProtocol.get_service_uuid_by_name   0 0 0   100%
src/bluetooth_sig/device/protocols.py SIGTranslatorProtocol.get_characteristic_info_by_name   0 0 0   100%
src/bluetooth_sig/device/protocols.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/__init__.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/__init__.py __getattr__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/__init__.py __dir__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/__init__.py (no function)   12 2 0   83%
src/bluetooth_sig/gatt/characteristics/_export_map.py (no function)   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration.py AccelerationCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration.py AccelerationCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_3d.py Acceleration3DCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_3d.py Acceleration3DCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_3d.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_detection_status.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_control_point.py ACSControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_control_point.py ACSControlPointCharacteristic._encode_value   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_control_point.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_in.py ACSDataInCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_in.py ACSDataInCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_in.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_indicate.py ACSDataOutIndicateCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_indicate.py ACSDataOutIndicateCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_indicate.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_notify.py ACSDataOutNotifyCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_notify.py ACSDataOutNotifyCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_notify.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_status.py ACSStatusCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_status.py ACSStatusCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_status.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/active_preset_index.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/activity_goal.py ActivityGoalCharacteristic._decode_value   45 5 0   89%
src/bluetooth_sig/gatt/characteristics/activity_goal.py ActivityGoalCharacteristic._encode_value   45 32 0   29%
src/bluetooth_sig/gatt/characteristics/activity_goal.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_interval.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_minimum_length.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_minimum_transmit_count.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_phy.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_transmit_duration.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_heart_rate_lower_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_heart_rate_upper_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_threshold.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/age.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aggregate.py AggregateCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/aggregate.py AggregateCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/aggregate.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id_bit_mask.py AlertCategoryIdBitMaskCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id_bit_mask.py AlertCategoryIdBitMaskCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id_bit_mask.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_level.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_notification_control_point.py AlertNotificationControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_notification_control_point.py AlertNotificationControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_notification_control_point.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_status.py AlertStatusCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_status.py AlertStatusCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_status.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/altitude.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/ammonia_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_heart_rate_lower_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_heart_rate_upper_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_threshold.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/analog.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/ap_sync_key_material.py APSyncKeyMaterialCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ap_sync_key_material.py APSyncKeyMaterialCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ap_sync_key_material.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_energy_32.py ApparentEnergy32Characteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_energy_32.py ApparentEnergy32Characteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_energy_32.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_power.py ApparentPowerCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_power.py ApparentPowerCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_power.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_wind_direction.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_wind_speed.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/appearance.py AppearanceCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/appearance.py AppearanceCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/appearance.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/ase_control_point.py ASEControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/ase_control_point.py ASEControlPointCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/ase_control_point.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_control_point.py AudioInputControlPointCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_control_point.py AudioInputControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_control_point.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_description.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_state.py AudioInputStateCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_state.py AudioInputStateCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_state.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_status.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_type.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_location.py (no function)   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_output_description.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/available_audio_contexts.py AvailableAudioContextsCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/available_audio_contexts.py AvailableAudioContextsCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/available_audio_contexts.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_current.py _decode_time_exponential   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/average_current.py _encode_time_exponential   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/average_current.py AverageCurrentCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_current.py AverageCurrentCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_current.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_voltage.py _decode_time_exponential   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/average_voltage.py _encode_time_exponential   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/average_voltage.py AverageVoltageCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_voltage.py AverageVoltageCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_voltage.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/barometric_pressure_trend.py BarometricPressureTrend.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/barometric_pressure_trend.py BarometricPressureTrend.from_value   4 4 0   0%
src/bluetooth_sig/gatt/characteristics/barometric_pressure_trend.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.__init__   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.__post_init__   25 2 0   92%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_generic_python_type   25 1 0   96%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_yaml_spec   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.uuid   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.info   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.spec   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.name   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.description   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.role   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.display_name   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.gss_special_values   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.is_special_value   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_special_value_meaning   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_special_value_type   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._normalize_dependency_class   14 7 0   50%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_dependencies   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.required_dependencies   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.optional_dependencies   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_allows_sig_override   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_configured_info   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_class_uuid   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_class_uuid   12 2 0   83%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_yaml_spec_class   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._resolve_from_basic_registry_class   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.matches_uuid   8 8 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.parse_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic._encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.build_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.encode_special   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.encode_special_by_meaning   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.unit   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.unit_symbol   7 7 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_field_unit   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.size   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.python_type   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.is_bitfield   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_yaml_data_type   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_yaml_field_size   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_yaml_unit_id   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_yaml_resolution_text   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.is_signed_from_yaml   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py BaseCharacteristic.get_byte_order_hint   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/base.py (no function)   113 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_critical_status.py BatteryCriticalStatusCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_critical_status.py BatteryCriticalStatusCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_critical_status.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_energy_status.py BatteryEnergyStatusCharacteristic._decode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_energy_status.py BatteryEnergyStatusCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_energy_status.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_information.py BatteryHealthInformation.__post_init__   6 2 0   67%
src/bluetooth_sig/gatt/characteristics/battery_health_information.py BatteryHealthInformationCharacteristic._decode_value   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_information.py BatteryHealthInformationCharacteristic._encode_value   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_information.py (no function)   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_status.py BatteryHealthStatus.__post_init__   8 3 0   62%
src/bluetooth_sig/gatt/characteristics/battery_health_status.py BatteryHealthStatusCharacteristic._decode_value   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_status.py BatteryHealthStatusCharacteristic._encode_value   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_status.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_information.py BatteryInformation.__post_init__   6 3 0   50%
src/bluetooth_sig/gatt/characteristics/battery_information.py BatteryInformationCharacteristic._decode_value   40 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_information.py BatteryInformationCharacteristic._encode_value   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_information.py (no function)   53 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_level.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_level_status.py BatteryLevelStatusCharacteristic._decode_value   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_level_status.py BatteryLevelStatusCharacteristic._encode_value   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_level_status.py (no function)   56 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py BatteryTimeStatus.__post_init__   6 3 0   50%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py _decode_time_minutes   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py _encode_time_minutes   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py BatteryTimeStatusCharacteristic._decode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py BatteryTimeStatusCharacteristic._encode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_list_current_calls.py BearerListCurrentCallsCharacteristic._decode_value   19 1 0   95%
src/bluetooth_sig/gatt/characteristics/bearer_list_current_calls.py BearerListCurrentCallsCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_list_current_calls.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_provider_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_signal_strength.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_signal_strength_reporting_interval.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_technology.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_uci.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_uri_schemes_supported_list.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/bgr_features.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/bgs_features.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BloodPressureDataProtocol.unit   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._parse_blood_pressure_flags   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._parse_blood_pressure_unit   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._parse_optional_fields   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._encode_blood_pressure_flags   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._encode_optional_fields   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py BaseBloodPressureCharacteristic._encode_blood_pressure_base   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py (no function)   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_feature.py BloodPressureFeatureCharacteristic._decode_value   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_feature.py BloodPressureFeatureCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_feature.py (no function)   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_measurement.py BloodPressureData.__post_init__   6 2 0   67%
src/bluetooth_sig/gatt/characteristics/blood_pressure_measurement.py BloodPressureMeasurementCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_measurement.py BloodPressureMeasurementCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_measurement.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_record.py BloodPressureRecordCharacteristic._decode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_record.py BloodPressureRecordCharacteristic._encode_value   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_record.py (no function)   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/bluetooth_sig_data.py BluetoothSIGDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/bluetooth_sig_data.py BluetoothSIGDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/bluetooth_sig_data.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py MassMeasurementResolution.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py HeightMeasurementResolution.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py BodyCompositionFeatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py BodyCompositionFeatureCharacteristic._encode_value   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py BodyCompositionFeatureCharacteristic._get_mass_resolution   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py BodyCompositionFeatureCharacteristic._get_height_resolution   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py (no function)   63 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementData.__post_init__   24 10 0   58%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._decode_value   11 3 0   73%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._encode_flags_and_body_fat   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._encode_optional_fields   12 2 0   83%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._encode_mass_fields   25 5 0   80%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._encode_other_measurements   17 4 0   76%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._validate_against_feature_characteristic   22 22 0   0%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._parse_flags_and_body_fat   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._parse_basic_optional_fields   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._parse_mass_fields   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._parse_other_measurements   17 1 0   94%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py BodyCompositionMeasurementCharacteristic._parse_mass_field   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py (no function)   90 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_sensor_location.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_control_point.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_feature.py BondManagementFeatureCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_feature.py BondManagementFeatureCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_feature.py (no function)   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/boolean.py BooleanCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/boolean.py BooleanCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/boolean.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_input_report.py BootKeyboardInputReportCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_input_report.py BootKeyboardInputReportCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_input_report.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_output_report.py BootKeyboardOutputReportCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_output_report.py BootKeyboardOutputReportCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_output_report.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_mouse_input_report.py BootMouseInputReportCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_mouse_input_report.py BootMouseInputReportCharacteristic._encode_value   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/boot_mouse_input_report.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/br_edr_handover_data.py BREDRHandoverDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/br_edr_handover_data.py BREDRHandoverDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/br_edr_handover_data.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_audio_scan_control_point.py BroadcastAudioScanControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_audio_scan_control_point.py BroadcastAudioScanControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_audio_scan_control_point.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_receive_state.py BroadcastReceiveStateCharacteristic._decode_value   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_receive_state.py BroadcastReceiveStateCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_receive_state.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_control_point.py BSSControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_control_point.py BSSControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_control_point.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_response.py BSSResponseCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_response.py BSSResponseCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_response.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_control_point.py CallControlPointCharacteristic._decode_value   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/call_control_point.py CallControlPointCharacteristic._encode_value   9 3 0   67%
src/bluetooth_sig/gatt/characteristics/call_control_point.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_control_point_optional_opcodes.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_friendly_name.py CallFriendlyNameCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_friendly_name.py CallFriendlyNameCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_friendly_name.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_state.py CallStateCharacteristic._decode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_state.py CallStateCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_state.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/caloric_intake.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/carbon_monoxide_concentration.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_instantaneous_data.py CardioRespiratoryActivityInstantaneousDataCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_instantaneous_data.py CardioRespiratoryActivityInstantaneousDataCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_instantaneous_data.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_summary_data.py CardioRespiratoryActivitySummaryDataCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_summary_data.py CardioRespiratoryActivitySummaryDataCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_summary_data.py (no function)   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/central_address_resolution.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_feature.py CGMFeatureCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_feature.py CGMFeatureCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_feature.py (no function)   54 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py _decode_single_record   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py _encode_single_record   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py CGMMeasurementCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py CGMMeasurementCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py (no function)   56 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_run_time.py CGMSessionRunTimeCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_run_time.py CGMSessionRunTimeCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_run_time.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_start_time.py CGMSessionStartTimeCharacteristic._decode_value   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_start_time.py CGMSessionStartTimeCharacteristic._encode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_start_time.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_specific_ops_control_point.py CGMSpecificOpsControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_specific_ops_control_point.py CGMSpecificOpsControlPointCharacteristic._encode_value   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/cgm_specific_ops_control_point.py (no function)   51 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_status.py CGMStatusCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_status.py CGMStatusCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_status.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py SIGCharacteristicResolver.resolve_for_class   7 4 0   43%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py SIGCharacteristicResolver.resolve_yaml_spec_for_class   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py SIGCharacteristicResolver._create_info_from_yaml   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py SIGCharacteristicResolver.resolve_from_registry   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py CharacteristicMeta.__new__   8 1 0   88%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromatic_distance_from_planckian.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinate.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinates.py ChromaticityCoordinatesData.__post_init__   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinates.py ChromaticityCoordinatesCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinates.py ChromaticityCoordinatesCharacteristic._encode_value   11 2 0   82%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinates.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_in_cct_and_duv_values.py ChromaticityInCCTAndDuvData.__post_init__   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/chromaticity_in_cct_and_duv_values.py ChromaticityInCCTAndDuvValuesCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_in_cct_and_duv_values.py ChromaticityInCCTAndDuvValuesCharacteristic._encode_value   12 3 0   75%
src/bluetooth_sig/gatt/characteristics/chromaticity_in_cct_and_duv_values.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_tolerance.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cie_13_3_1995_color_rendering_index.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/client_supported_features.py ClientSupportedFeaturesCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/client_supported_features.py ClientSupportedFeaturesCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/client_supported_features.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/co2_concentration.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/coefficient.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/constant_tone_extension_enable.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/contact_status_8.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/content_control_id.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/context_lookup.py ContextLookupMixin._get_characteristic_uuid_by_name   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/context_lookup.py ContextLookupMixin.get_context_characteristic   18 2 0   89%
src/bluetooth_sig/gatt/characteristics/context_lookup.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_common.py parse_cooking_conditions   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_common.py encode_cooking_conditions   24 2 0   92%
src/bluetooth_sig/gatt/characteristics/cooking_common.py validate_flags   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_common.py (no function)   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_sensor_common.py CookingSensorFormats.get   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_sensor_common.py parse_cooking_sensor_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_sensor_common.py encode_cooking_sensor_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_sensor_common.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_step_status.py CookingStepStatusCharacteristic._decode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_step_status.py CookingStepStatusCharacteristic._encode_value   8 1 0   88%
src/bluetooth_sig/gatt/characteristics/cooking_step_status.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_temperature.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_actual_cooking_conditions.py CookingZoneActualCookingConditionsCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_actual_cooking_conditions.py CookingZoneActualCookingConditionsCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_actual_cooking_conditions.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_capabilities.py CookingZoneCapabilitiesCharacteristic._decode_value   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_capabilities.py CookingZoneCapabilitiesCharacteristic._encode_value   21 2 0   90%
src/bluetooth_sig/gatt/characteristics/cooking_zone_capabilities.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_desired_cooking_conditions.py CookingZoneDesiredCookingConditionsCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_desired_cooking_conditions.py CookingZoneDesiredCookingConditionsCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_desired_cooking_conditions.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_perceived_power.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_description.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_aggregate.py CookwareSensorAggregateCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_aggregate.py CookwareSensorAggregateCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_aggregate.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_data.py CookwareSensorDataCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_data.py CookwareSensorDataCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_data.py _get_sensor_info   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_data.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/coordinated_set_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/coordinated_set_size.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/correlated_color_temperature.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cosine_of_the_angle.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/count_16.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/count_24.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/country_code.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/cross_trainer_data.py CrossTrainerData.__post_init__   40 20 0   50%
src/bluetooth_sig/gatt/characteristics/cross_trainer_data.py CrossTrainerDataCharacteristic._decode_value   76 0 0   100%
src/bluetooth_sig/gatt/characteristics/cross_trainer_data.py CrossTrainerDataCharacteristic._encode_value   77 22 0   71%
src/bluetooth_sig/gatt/characteristics/cross_trainer_data.py (no function)   59 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_feature.py CSCFeatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_feature.py CSCFeatureCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_feature.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementData.__post_init__   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementCharacteristic._decode_value   22 1 0   95%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementCharacteristic._encode_wheel_data   13 3 0   77%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementCharacteristic._encode_crank_data   13 3 0   77%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementCharacteristic._encode_value   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py CSCMeasurementCharacteristic._validate_against_feature   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_group_object_id.py CurrentGroupObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_group_object_id.py CurrentGroupObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_group_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_time.py CurrentTimeCharacteristic.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_time.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_object_id.py CurrentTrackObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_object_id.py CurrentTrackObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_segments_object_id.py CurrentTrackSegmentsObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_segments_object_id.py CurrentTrackSegmentsObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_segments_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/custom.py CustomBaseCharacteristic.get_configured_info   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/custom.py CustomBaseCharacteristic.__init_subclass__   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/custom.py CustomBaseCharacteristic.__init__   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/custom.py CustomBaseCharacteristic.__post_init__   9 4 0   56%
src/bluetooth_sig/gatt/characteristics/custom.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerControlPointData.__post_init__   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerOpCode.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerResponseValue.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerControlPointCharacteristic._encode_value   24 7 0   71%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py CyclingPowerControlPointCharacteristic._parse_op_code_parameters   37 7 0   81%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py (no function)   68 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_feature.py CyclingPowerFeatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_feature.py CyclingPowerFeatureCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_feature.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_measurement.py CyclingPowerMeasurementData.__post_init__   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/cycling_power_measurement.py CyclingPowerMeasurementCharacteristic._decode_value   73 4 0   95%
src/bluetooth_sig/gatt/characteristics/cycling_power_measurement.py CyclingPowerMeasurementCharacteristic._encode_value   99 43 0   57%
src/bluetooth_sig/gatt/characteristics/cycling_power_measurement.py (no function)   54 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_vector.py CyclingPowerVectorCharacteristic._decode_value   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_vector.py CyclingPowerVectorCharacteristic._encode_value   20 4 0   80%
src/bluetooth_sig/gatt/characteristics/cycling_power_vector.py (no function)   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/database_change_increment.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/database_hash.py DatabaseHashCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/database_hash.py DatabaseHashCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/database_hash.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_birth.py DateOfBirthCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_birth.py DateOfBirthCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_birth.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_threshold_assessment.py DateOfThresholdAssessmentCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_threshold_assessment.py DateOfThresholdAssessmentCharacteristic._encode_value   11 3 0   73%
src/bluetooth_sig/gatt/characteristics/date_of_threshold_assessment.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_time.py DateTimeCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_time.py DateTimeCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_time.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_utc.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_date_time.py DayDateTimeCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_date_time.py DayDateTimeCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_date_time.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_of_week.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.add_descriptor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_descriptor   7 2 0   71%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_descriptors   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_cccd   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.can_notify   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_descriptor_from_context   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_valid_range_from_context   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_presentation_format_from_context   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.get_user_description_from_context   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.validate_value_against_descriptor_range   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py DescriptorMixin.enhance_error_message_with_descriptors   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_value_changed.py DescriptorValueChangedCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_value_changed.py DescriptorValueChangedCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_value_changed.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_info.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_name.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time.py DeviceTimeCharacteristic._decode_value   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time.py DeviceTimeCharacteristic._encode_value   14 4 0   71%
src/bluetooth_sig/gatt/characteristics/device_time.py (no function)   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_control_point.py DeviceTimeControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_control_point.py DeviceTimeControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_control_point.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_feature.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_parameters.py DeviceTimeParametersCharacteristic._decode_value   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_parameters.py DeviceTimeParametersCharacteristic._encode_value   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/device_time_parameters.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_wearing_position.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/dew_point.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/digital.py DigitalCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/digital.py DigitalCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/digital.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/door_window_status.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/dst_offset.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/elapsed_time.py ElapsedTimeCharacteristic._decode_value   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/elapsed_time.py ElapsedTimeCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/elapsed_time.py (no function)   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_range.py ElectricCurrentRangeData.__post_init__   7 3 0   57%
src/bluetooth_sig/gatt/characteristics/electric_current_range.py ElectricCurrentRangeCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_range.py ElectricCurrentRangeCharacteristic._encode_value   11 2 0   82%
src/bluetooth_sig/gatt/characteristics/electric_current_range.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_specification.py ElectricCurrentSpecificationData.__post_init__   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/electric_current_specification.py ElectricCurrentSpecificationCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_specification.py ElectricCurrentSpecificationCharacteristic._encode_value   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/electric_current_specification.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py _decode_time_exponential   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py _encode_time_exponential   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py ElectricCurrentStatisticsData.__post_init__   7 3 0   57%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py ElectricCurrentStatisticsCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py ElectricCurrentStatisticsCharacteristic._encode_value   17 2 0   88%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/elevation.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/email_address.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_id.py EmergencyIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_id.py EmergencyIdCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_id.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_text.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/encrypted_data_key_material.py EncryptedDataKeyMaterialCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/encrypted_data_key_material.py EncryptedDataKeyMaterialCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/encrypted_data_key_material.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy_32.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy_in_a_period_of_day.py EnergyInAPeriodOfDayData.__post_init__   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/energy_in_a_period_of_day.py EnergyInAPeriodOfDayCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy_in_a_period_of_day.py EnergyInAPeriodOfDayCharacteristic._encode_value   10 1 0   90%
src/bluetooth_sig/gatt/characteristics/energy_in_a_period_of_day.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_blood_pressure_measurement.py EnhancedBloodPressureMeasurementCharacteristic._decode_value   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_blood_pressure_measurement.py EnhancedBloodPressureMeasurementCharacteristic._encode_value   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_blood_pressure_measurement.py (no function)   37 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_intermediate_cuff_pressure.py EnhancedIntermediateCuffPressureCharacteristic._decode_value   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_intermediate_cuff_pressure.py EnhancedIntermediateCuffPressureCharacteristic._encode_value   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_intermediate_cuff_pressure.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_address.py ESLAddressCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_address.py ESLAddressCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_address.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_control_point.py ESLControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_control_point.py ESLControlPointCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_control_point.py (no function)   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_current_absolute_time.py ESLCurrentAbsoluteTimeCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_current_absolute_time.py ESLCurrentAbsoluteTimeCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_current_absolute_time.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_display_information.py ESLDisplayInformationCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_display_information.py ESLDisplayInformationCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_display_information.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_image_information.py ESLImageInformationCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_image_information.py ESLImageInformationCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_image_information.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_led_information.py ESLLEDInformationCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_led_information.py ESLLEDInformationCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_led_information.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_response_key_material.py ESLResponseKeyMaterialCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_response_key_material.py ESLResponseKeyMaterialCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_response_key_material.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_sensor_information.py ESLSensorInformationCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_sensor_information.py ESLSensorInformationCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_sensor_information.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/estimated_service_date.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/event_statistics.py _decode_time_exponential   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/event_statistics.py _encode_time_exponential   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/event_statistics.py EventStatisticsData.__post_init__   8 2 0   75%
src/bluetooth_sig/gatt/characteristics/event_statistics.py EventStatisticsCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/event_statistics.py EventStatisticsCharacteristic._encode_value   12 2 0   83%
src/bluetooth_sig/gatt/characteristics/event_statistics.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/exact_time_256.py ExactTime256Characteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/exact_time_256.py ExactTime256Characteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/exact_time_256.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/fat_burn_heart_rate_lower_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/fat_burn_heart_rate_upper_limit.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/firmware_revision_string.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/first_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/first_use_date.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py decode_energy_triplet   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py decode_heart_rate   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py decode_metabolic_equivalent   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py decode_elapsed_time   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py decode_remaining_time   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py encode_energy_triplet   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py encode_heart_rate   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py encode_metabolic_equivalent   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py encode_elapsed_time   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py encode_remaining_time   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_control_point.py FitnessMachineControlPointCharacteristic._decode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_control_point.py FitnessMachineControlPointCharacteristic._encode_value   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/fitness_machine_control_point.py (no function)   47 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_feature.py FitnessMachineFeatureCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_feature.py FitnessMachineFeatureCharacteristic._encode_value   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/fitness_machine_feature.py (no function)   48 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_status.py FitnessMachineStatusCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_status.py FitnessMachineStatusCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_status.py (no function)   37 0 0   100%
src/bluetooth_sig/gatt/characteristics/five_zone_heart_rate_limits.py FiveZoneHeartRateLimitsCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/five_zone_heart_rate_limits.py FiveZoneHeartRateLimitsCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/five_zone_heart_rate_limits.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_16.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_24.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_36.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_64.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_8.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/floor_number.py FloorNumberCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/floor_number.py FloorNumberCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/floor_number.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/force.py ForceCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/force.py ForceCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/force.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/four_zone_heart_rate_limits.py FourZoneHeartRateLimitsCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/four_zone_heart_rate_limits.py FourZoneHeartRateLimitsCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/four_zone_heart_rate_limits.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/gain_settings_attribute.py GainSettingsAttributeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/gain_settings_attribute.py GainSettingsAttributeCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/gain_settings_attribute.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/gender.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_instantaneous_data.py GeneralActivityInstantaneousDataCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_instantaneous_data.py GeneralActivityInstantaneousDataCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_instantaneous_data.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_summary_data.py GeneralActivitySummaryDataCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_summary_data.py GeneralActivitySummaryDataCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_summary_data.py (no function)   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/generic_level.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ghs_control_point.py GHSControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/ghs_control_point.py GHSControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/ghs_control_point.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/global_trade_item_number.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py GlucoseFeatures.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py GlucoseFeatures.get_enabled_features   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py GlucoseFeatureCharacteristic._decode_value   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py GlucoseFeatureCharacteristic._encode_value   24 8 0   67%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py GlucoseFeatureCharacteristic.get_feature_description   8 3 0   62%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py (no function)   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseType.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py SampleLocation.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseMeasurementData.__post_init__   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseMeasurementData.is_reserved_range   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseMeasurementCharacteristic._decode_value   32 3 0   91%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseMeasurementCharacteristic._encode_value   29 3 0   90%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py GlucoseMeasurementCharacteristic._validate_sensor_status_against_feature   22 22 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py (no function)   65 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py CarbohydrateType.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py MealType.__str__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseTester.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py HealthType.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py MedicationType.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextExtendedFlags.get_description   8 8 0   0%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextData.__post_init__   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._decode_value   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._encode_value   25 6 0   76%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_extended_flags   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_carbohydrate_info   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_meal_info   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_tester_health_info   10 6 0   40%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_exercise_info   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_medication_info   9 4 0   56%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py GlucoseMeasurementContextCharacteristic._parse_hba1c_info   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py (no function)   128 0 0   100%
src/bluetooth_sig/gatt/characteristics/gmap_role.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/gust_factor.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/handedness.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/hardware_revision_string.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/health_sensor_features.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_features.py HearingAidFeaturesCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_features.py HearingAidFeaturesCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_features.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_preset_control_point.py HearingAidPresetControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_preset_control_point.py HearingAidPresetControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_preset_control_point.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_control_point.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_max.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py SensorContactState.__str__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py SensorContactState.__eq__   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py SensorContactState.__hash__   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py SensorContactState.from_flags   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py HeartRateData.__post_init__   7 3 0   57%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py HeartRateMeasurementCharacteristic._decode_value   29 3 0   90%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py HeartRateMeasurementCharacteristic._encode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py (no function)   43 0 0   100%
src/bluetooth_sig/gatt/characteristics/heat_index.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/height.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_control_point.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_information.py HidInformationData.__post_init__   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/hid_information.py HidInformationCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_information.py HidInformationCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_information.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_iso_properties.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_intensity_exercise_threshold.py HighIntensityExerciseThresholdCharacteristic._decode_value   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_intensity_exercise_threshold.py HighIntensityExerciseThresholdCharacteristic._encode_value   12 6 0   50%
src/bluetooth_sig/gatt/characteristics/high_intensity_exercise_threshold.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_resolution_height.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_temperature.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_voltage.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/hip_circumference.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_control_point.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_entity_body.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_headers.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_status_code.py HTTPStatusCodeCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_status_code.py HTTPStatusCodeCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_status_code.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/https_security.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/humidity.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/humidity_8.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_annunciation_status.py IDDAnnunciationStatusCharacteristic._decode_value   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_annunciation_status.py IDDAnnunciationStatusCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_annunciation_status.py (no function)   53 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_control_point.py IDDCommandControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_control_point.py IDDCommandControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_control_point.py (no function)   77 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_data.py IDDCommandDataCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_data.py IDDCommandDataCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_data.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_features.py IDDFeaturesCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_features.py IDDFeaturesCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_features.py (no function)   34 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_history_data.py IDDHistoryDataCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_history_data.py IDDHistoryDataCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_history_data.py (no function)   50 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_record_access_control_point.py IDDRecordAccessControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_record_access_control_point.py IDDRecordAccessControlPointCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_record_access_control_point.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status.py IDDStatusCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status.py IDDStatusCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_changed.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_reader_control_point.py IDDStatusReaderControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_reader_control_point.py IDDStatusReaderControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_reader_control_point.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/ieee_11073_20601_regulatory_certification_data_list.py IEEE1107320601RegulatoryCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ieee_11073_20601_regulatory_certification_data_list.py IEEE1107320601RegulatoryCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ieee_11073_20601_regulatory_certification_data_list.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance.py IlluminanceCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance.py IlluminanceCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance_16.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_control.py IMDControlCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_control.py IMDControlCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_control.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_historical_data.py IMDHistoricalDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_historical_data.py IMDHistoricalDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_historical_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_status.py IMDStatusCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_status.py IMDStatusCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_status.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/imds_descriptor_value_changed.py IMDSDescriptorValueChangedCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/imds_descriptor_value_changed.py IMDSDescriptorValueChangedCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/imds_descriptor_value_changed.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call.py IncomingCallCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call.py IncomingCallCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call_target_bearer_uri.py IncomingCallTargetBearerURICharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call_target_bearer_uri.py IncomingCallTargetBearerURICharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call_target_bearer_uri.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/indoor_bike_data.py IndoorBikeData.__post_init__   30 15 0   50%
src/bluetooth_sig/gatt/characteristics/indoor_bike_data.py IndoorBikeDataCharacteristic._decode_value   57 0 0   100%
src/bluetooth_sig/gatt/characteristics/indoor_bike_data.py IndoorBikeDataCharacteristic._encode_value   60 0 0   100%
src/bluetooth_sig/gatt/characteristics/indoor_bike_data.py (no function)   49 0 0   100%
src/bluetooth_sig/gatt/characteristics/indoor_positioning_configuration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/installed_location.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/intermediate_cuff_pressure.py IntermediateCuffPressureData.__post_init__   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/intermediate_cuff_pressure.py IntermediateCuffPressureCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/intermediate_cuff_pressure.py IntermediateCuffPressureCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/intermediate_cuff_pressure.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/intermediate_temperature.py IntermediateTemperatureCharacteristic._decode_value   12 1 0   92%
src/bluetooth_sig/gatt/characteristics/intermediate_temperature.py IntermediateTemperatureCharacteristic._encode_value   14 4 0   71%
src/bluetooth_sig/gatt/characteristics/intermediate_temperature.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/irradiance.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/kitchen_appliance_airflow.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/language.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/last_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/latitude.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py LESecurityModeLevel.security_mode   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py LESecurityModeLevel.security_level   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py LESecurityModeLevel.from_mode_level   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py SecurityLevelRequirement.mode_level   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py LEGATTSecurityLevelsCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py LEGATTSecurityLevelsCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py (no function)   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_hid_operation_mode.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/length.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/life_cycle_data.py LifeCycleDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/life_cycle_data.py LifeCycleDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/life_cycle_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_distribution.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_output.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_source_type.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/linear_position.py LinearPositionCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/linear_position.py LinearPositionCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/linear_position.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/live_health_observations.py LiveHealthObservationsCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/live_health_observations.py LiveHealthObservationsCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/live_health_observations.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py LNControlPointOpCode.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py LNControlPointResponseValue.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py LNControlPointData.__post_init__   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py LNControlPointCharacteristic._decode_value   48 7 0   85%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py LNControlPointCharacteristic._encode_value   24 16 0   33%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py (no function)   56 0 0   100%
src/bluetooth_sig/gatt/characteristics/ln_feature.py LNFeatureCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/ln_feature.py LNFeatureCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ln_feature.py (no function)   55 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_east_coordinate.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_north_coordinate.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_time_information.py DSTOffset.description   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_time_information.py DSTOffset.offset_hours   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_time_information.py LocalTimeInformationCharacteristic._decode_value   30 6 0   80%
src/bluetooth_sig/gatt/characteristics/local_time_information.py LocalTimeInformationCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_time_information.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/location_and_speed.py LocationAndSpeedCharacteristic._decode_value   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/location_and_speed.py LocationAndSpeedCharacteristic._encode_value   33 10 0   70%
src/bluetooth_sig/gatt/characteristics/location_and_speed.py LocationAndSpeedCharacteristic._validate_flags_against_ln_feature   27 7 0   74%
src/bluetooth_sig/gatt/characteristics/location_and_speed.py (no function)   63 0 0   100%
src/bluetooth_sig/gatt/characteristics/location_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/longitude.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_efficacy.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_energy.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_exposure.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux_range.py LuminousFluxRangeData.__post_init__   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux_range.py LuminousFluxRangeCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux_range.py LuminousFluxRangeCharacteristic._encode_value   9 2 0   78%
src/bluetooth_sig/gatt/characteristics/luminous_flux_range.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_intensity.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_declination.py MagneticDeclinationCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_declination.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_2d.py MagneticFluxDensity2DCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_2d.py MagneticFluxDensity2DCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_2d.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_3d.py MagneticFluxDensity3DCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_3d.py MagneticFluxDensity3DCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_3d.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/manufacturer_name_string.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/mass_flow.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/maximum_recommended_heart_rate.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/measurement_interval.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point.py MediaControlPointCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point.py MediaControlPointCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point.py (no function)   40 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point_opcodes_supported.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_object_id.py MediaPlayerIconObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_object_id.py MediaPlayerIconObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_url.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_state.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_in.py MeshProvisioningDataInCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_in.py MeshProvisioningDataInCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_in.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_out.py MeshProvisioningDataOutCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_out.py MeshProvisioningDataOutCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_out.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_in.py MeshProxyDataInCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_in.py MeshProxyDataInCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_in.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_out.py MeshProxyDataOutCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_out.py MeshProxyDataOutCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_out.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/methane_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/middle_name.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/model_number_string.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/mute.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/navigation.py NavigationCharacteristic._decode_value   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/navigation.py NavigationCharacteristic._encode_value   26 7 0   73%
src/bluetooth_sig/gatt/characteristics/navigation.py (no function)   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/new_alert.py NewAlertCharacteristic._decode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/new_alert.py NewAlertCharacteristic._encode_value   10 1 0   90%
src/bluetooth_sig/gatt/characteristics/new_alert.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/next_track_object_id.py NextTrackObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/next_track_object_id.py NextTrackObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/next_track_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/nitrogen_dioxide_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/noise.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/non_methane_voc_concentration.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_action_control_point.py ObjectActionControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_action_control_point.py ObjectActionControlPointCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_action_control_point.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_changed.py ObjectChangedCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_changed.py ObjectChangedCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_changed.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_first_created.py ObjectFirstCreatedCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_first_created.py ObjectFirstCreatedCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_first_created.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_id.py ObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_id.py ObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_last_modified.py ObjectLastModifiedCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_last_modified.py ObjectLastModifiedCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_last_modified.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_control_point.py ObjectListControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_control_point.py ObjectListControlPointCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_control_point.py (no function)   46 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_filter.py ObjectListFilterCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_filter.py ObjectListFilterCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_filter.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_name.py ObjectNameCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_name.py ObjectNameCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_name.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_properties.py ObjectPropertiesCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_properties.py ObjectPropertiesCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_properties.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_size.py ObjectSizeCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_size.py ObjectSizeCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_size.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_type.py ObjectTypeCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_type.py ObjectTypeCharacteristic._encode_value   14 10 0   29%
src/bluetooth_sig/gatt/characteristics/object_type.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/observation_schedule_changed.py ObservationScheduleChangedCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/observation_schedule_changed.py ObservationScheduleChangedCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/observation_schedule_changed.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/on_demand_ranging_data.py OnDemandRangingDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/on_demand_ranging_data.py OnDemandRangingDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/on_demand_ranging_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/ots_feature.py OTSFeatureCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/ots_feature.py OTSFeatureCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/ots_feature.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/ozone_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/parent_group_object_id.py ParentGroupObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/parent_group_object_id.py ParentGroupObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/parent_group_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/perceived_lightness.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/percentage_8.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/percentage_8_steps.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_preferred_connection_parameters.py PeripheralPreferredConnectionParametersCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_preferred_connection_parameters.py PeripheralPreferredConnectionParametersCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_preferred_connection_parameters.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_privacy_flag.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_current_session.py PhysicalActivityCurrentSessionCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_current_session.py PhysicalActivityCurrentSessionCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_current_session.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_control_point.py PhysicalActivityMonitorControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_control_point.py PhysicalActivityMonitorControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_control_point.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_features.py PhysicalActivityMonitorFeaturesCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_features.py PhysicalActivityMonitorFeaturesCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_features.py (no function)   65 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_session_descriptor.py PhysicalActivitySessionDescriptorCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_session_descriptor.py PhysicalActivitySessionDescriptorCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_session_descriptor.py (no function)   37 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/__init__.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline.run   46 6 0   87%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline.encode_special   4 4 0   0%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline.encode_special_by_meaning   4 4 0   0%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline._pack_raw_int   11 11 0   0%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py EncodePipeline._is_trace_enabled   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline.run   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._perform_length_validation   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._extract_and_check_special   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._decode_and_validate   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._extract_raw_int   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._check_special_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py ParsePipeline._is_trace_enabled   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py CharacteristicValidator.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py CharacteristicValidator.validate_range   27 9 0   67%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py CharacteristicValidator.validate_type   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py CharacteristicValidator.validate_length   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py _validate_yaml_range   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/playback_speed.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/playing_order.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/playing_orders_supported.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_continuous_measurement.py PLXContinuousMeasurementCharacteristic._decode_value   51 18 0   65%
src/bluetooth_sig/gatt/characteristics/plx_continuous_measurement.py PLXContinuousMeasurementCharacteristic._encode_value   30 14 0   53%
src/bluetooth_sig/gatt/characteristics/plx_continuous_measurement.py (no function)   67 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_features.py PLXFeaturesCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_features.py PLXFeaturesCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_features.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_spot_check_measurement.py PLXSpotCheckMeasurementCharacteristic._decode_value   25 5 0   80%
src/bluetooth_sig/gatt/characteristics/plx_spot_check_measurement.py PLXSpotCheckMeasurementCharacteristic._encode_value   14 4 0   71%
src/bluetooth_sig/gatt/characteristics/plx_spot_check_measurement.py (no function)   64 0 0   100%
src/bluetooth_sig/gatt/characteristics/pm10_concentration.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pm1_concentration.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pm25_concentration.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pnp_id.py PnpIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/pnp_id.py PnpIdCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/pnp_id.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/pollen_concentration.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/position_quality.py PositionQualityCharacteristic._decode_value   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/position_quality.py PositionQualityCharacteristic._encode_value   25 4 0   84%
src/bluetooth_sig/gatt/characteristics/position_quality.py (no function)   34 0 0   100%
src/bluetooth_sig/gatt/characteristics/power.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationData.__init__   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationData.__eq__   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationData.__hash__   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationData.__repr__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationCharacteristic._decode_value._convert_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py PowerSpecificationCharacteristic._encode_value._convert_to_raw   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/precise_acceleration_3d.py PreciseAcceleration3DCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/precise_acceleration_3d.py PreciseAcceleration3DCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/precise_acceleration_3d.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py PreferredUnitsCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py PreferredUnitsCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py PreferredUnitsCharacteristic.get_units   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py PreferredUnitsCharacteristic.validate_units   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/pressure.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/protocol_mode.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/pushbutton_status_8.py PushbuttonStatus8Characteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/pushbutton_status_8.py PushbuttonStatus8Characteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/pushbutton_status_8.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/rainfall.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/ranging_data_overwritten.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ranging_data_ready.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_control_point.py RASControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_control_point.py RASControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_control_point.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_features.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_feature.py RCFeatureCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_feature.py RCFeatureCharacteristic._encode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_feature.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_settings.py RCSettingsCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_settings.py RCSettingsCharacteristic._encode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_settings.py (no function)   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/real_time_ranging_data.py RealTimeRangingDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/real_time_ranging_data.py RealTimeRangingDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/real_time_ranging_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_control.py RecipeControlCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_control.py RecipeControlCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_control.py (no function)   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_parameters.py RecipeParametersCharacteristic._decode_value   30 2 0   93%
src/bluetooth_sig/gatt/characteristics/recipe_parameters.py RecipeParametersCharacteristic._encode_value   30 6 0   80%
src/bluetooth_sig/gatt/characteristics/recipe_parameters.py _validate_termination_condition   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/recipe_parameters.py (no function)   59 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_address.py ReconnectionAddressCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_address.py ReconnectionAddressCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_address.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_configuration_control_point.py ReconnectionConfigurationControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_configuration_control_point.py ReconnectionConfigurationControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_configuration_control_point.py (no function)   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/record_access_control_point.py RecordAccessControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/record_access_control_point.py RecordAccessControlPointCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/record_access_control_point.py (no function)   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py ReferenceTimeInformationCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py ReferenceTimeInformationCharacteristic._encode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py _validate_time_source   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py _validate_hours_since_update   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/registered_user.py RegisteredUserCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/registered_user.py RegisteredUserCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/registered_user.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py _is_characteristic_subclass   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py _RegistryKeyBuilder.slugify_characteristic_identifier   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py _RegistryKeyBuilder.generate_candidate_keys   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py _RegistryKeyBuilder.build_uuid_to_enum_map   14 14 0   0%
src/bluetooth_sig/gatt/characteristics/registry.py get_characteristic_class_map   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry._get_base_class   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry._discover_sig_classes   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry._build_uuid_to_enum_map   15 2 0   87%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry._build_enum_map   17 5 0   71%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry._load   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.register_characteristic_class   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.unregister_characteristic_class   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.get_characteristic_class   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.get_characteristic_class_by_uuid   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.get_characteristic   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.list_all_characteristic_names   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.list_all_characteristic_enums   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.get_all_characteristics   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.clear_custom_registrations   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py CharacteristicRegistry.clear_cache   3 3 0   0%
src/bluetooth_sig/gatt/characteristics/registry.py (no function)   50 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_correlated_color_temperature_range.py RelativeRuntimeInACCTRangeData.__post_init__   8 2 0   75%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_correlated_color_temperature_range.py RelativeRuntimeInACorrelatedColorTemperatureRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_correlated_color_temperature_range.py RelativeRuntimeInACorrelatedColorTemperatureRangeCharacteristic._encode_value   12 3 0   75%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_correlated_color_temperature_range.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_current_range.py RelativeRuntimeInACurrentRangeData.__post_init__   9 2 0   78%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_current_range.py RelativeRuntimeInACurrentRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_current_range.py RelativeRuntimeInACurrentRangeCharacteristic._encode_value   14 3 0   79%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_current_range.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_generic_level_range.py RelativeRuntimeInAGenericLevelRangeData.__post_init__   8 2 0   75%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_generic_level_range.py RelativeRuntimeInAGenericLevelRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_generic_level_range.py RelativeRuntimeInAGenericLevelRangeCharacteristic._encode_value   12 3 0   75%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_generic_level_range.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_period_of_day.py RelativeValueInAPeriodOfDayData.__post_init__   7 2 0   71%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_period_of_day.py RelativeValueInAPeriodOfDayCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_period_of_day.py RelativeValueInAPeriodOfDayCharacteristic._encode_value   11 1 0   91%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_period_of_day.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_temperature_range.py RelativeValueInATemperatureRangeData.__post_init__   5 1 0   80%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_temperature_range.py RelativeValueInATemperatureRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_temperature_range.py RelativeValueInATemperatureRangeCharacteristic._encode_value   14 3 0   79%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_temperature_range.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_voltage_range.py RelativeValueInAVoltageRangeData.__post_init__   9 2 0   78%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_voltage_range.py RelativeValueInAVoltageRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_voltage_range.py RelativeValueInAVoltageRangeCharacteristic._encode_value   14 3 0   79%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_voltage_range.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_an_illuminance_range.py RelativeValueInAnIlluminanceRangeData.__post_init__   9 2 0   78%
src/bluetooth_sig/gatt/characteristics/relative_value_in_an_illuminance_range.py RelativeValueInAnIlluminanceRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/relative_value_in_an_illuminance_range.py RelativeValueInAnIlluminanceRangeCharacteristic._encode_value   14 3 0   79%
src/bluetooth_sig/gatt/characteristics/relative_value_in_an_illuminance_range.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/report.py ReportCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/report.py ReportCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/report.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/report_map.py ReportMapCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/report_map.py ReportMapCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/report_map.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/resolvable_private_address_only.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/resting_heart_rate.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_control_point.py RingerControlPointCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_control_point.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_setting.py RingerSettingCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_setting.py RingerSettingCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_setting.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py classify_role   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _classify_yaml_signals   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _classify_name_and_type   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _classify_naming_conventions   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _classify_type_inference   15 1 0   93%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _classify_struct_patterns   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py _spec_has_physical_field_units   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/rotational_speed.py RotationalSpeedCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/rotational_speed.py RotationalSpeedCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/rotational_speed.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/rower_data.py RowerData.__post_init__   32 16 0   50%
src/bluetooth_sig/gatt/characteristics/rower_data.py RowerDataCharacteristic._decode_value   58 0 0   100%
src/bluetooth_sig/gatt/characteristics/rower_data.py RowerDataCharacteristic._encode_value   60 0 0   100%
src/bluetooth_sig/gatt/characteristics/rower_data.py (no function)   49 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_feature.py RSCFeatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_feature.py RSCFeatureCharacteristic._encode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_feature.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py RSCMeasurementData.__post_init__   4 2 0   50%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py RSCMeasurementCharacteristic._validate_against_feature   7 4 0   43%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py RSCMeasurementCharacteristic._decode_value   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py RSCMeasurementCharacteristic._encode_value   32 6 0   81%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/sc_control_point.py SCControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/sc_control_point.py SCControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/sc_control_point.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_interval_window.py ScanIntervalWindowCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_interval_window.py ScanIntervalWindowCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_interval_window.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_refresh.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_control_point.py SearchControlPointCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_control_point.py SearchControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_control_point.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_results_object_id.py SearchResultsObjectIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_results_object_id.py SearchResultsObjectIdCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_results_object_id.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/sedentary_interval_notification.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/seeking_speed.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sensor_location.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/serial_number_string.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/server_supported_features.py ServerSupportedFeaturesCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/server_supported_features.py ServerSupportedFeaturesCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/server_supported_features.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_changed.py ServiceChangedCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_changed.py ServiceChangedCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_changed.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_cycle_data.py ServiceCycleDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_cycle_data.py ServiceCycleDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_cycle_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_identity_resolving_key.py SetIdentityResolvingKeyCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_identity_resolving_key.py SetIdentityResolvingKeyCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_identity_resolving_key.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_member_lock.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_member_rank.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_ase.py SinkASECharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_ase.py SinkASECharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_ase.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_audio_locations.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_pac.py SinkPACCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_pac.py SinkPACCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_pac.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_instantaneous_data.py SleepActivityInstantaneousDataCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_instantaneous_data.py SleepActivityInstantaneousDataCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_instantaneous_data.py (no function)   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_summary_data.py SleepActivitySummaryDataCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_summary_data.py SleepActivitySummaryDataCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_summary_data.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/software_revision_string.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_ase.py SourceASECharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_ase.py SourceASECharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_ase.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_audio_locations.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_pac.py SourcePACCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_pac.py SourcePACCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_pac.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/sport_type_for_aerobic_and_anaerobic_thresholds.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/stair_climber_data.py StairClimberData.__post_init__   24 12 0   50%
src/bluetooth_sig/gatt/characteristics/stair_climber_data.py StairClimberDataCharacteristic._decode_value   40 0 0   100%
src/bluetooth_sig/gatt/characteristics/stair_climber_data.py StairClimberDataCharacteristic._encode_value   43 0 0   100%
src/bluetooth_sig/gatt/characteristics/stair_climber_data.py (no function)   40 0 0   100%
src/bluetooth_sig/gatt/characteristics/status_flags.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_climber_data.py StepClimberData.__post_init__   24 12 0   50%
src/bluetooth_sig/gatt/characteristics/step_climber_data.py StepClimberDataCharacteristic._decode_value   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_climber_data.py StepClimberDataCharacteristic._encode_value   41 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_climber_data.py (no function)   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_counter_activity_summary_data.py StepCounterActivitySummaryDataCharacteristic._decode_value   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_counter_activity_summary_data.py StepCounterActivitySummaryDataCharacteristic._encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_counter_activity_summary_data.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/stored_health_observations.py StoredHealthObservationsCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/stored_health_observations.py StoredHealthObservationsCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/stored_health_observations.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/stride_length.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sulfur_dioxide_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/sulfur_hexafluoride_concentration.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_audio_contexts.py SupportedAudioContextsCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_audio_contexts.py SupportedAudioContextsCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_audio_contexts.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_heart_rate_range.py SupportedHeartRateRangeData.__post_init__   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_heart_rate_range.py SupportedHeartRateRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_heart_rate_range.py SupportedHeartRateRangeCharacteristic._encode_value   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/supported_heart_rate_range.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_inclination_range.py SupportedInclinationRangeData.__post_init__   10 2 0   80%
src/bluetooth_sig/gatt/characteristics/supported_inclination_range.py SupportedInclinationRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_inclination_range.py SupportedInclinationRangeCharacteristic._encode_value   13 2 0   85%
src/bluetooth_sig/gatt/characteristics/supported_inclination_range.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_new_alert_category.py SupportedNewAlertCategoryCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_new_alert_category.py SupportedNewAlertCategoryCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_new_alert_category.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_power_range.py SupportedPowerRangeData.__post_init__   8 4 0   50%
src/bluetooth_sig/gatt/characteristics/supported_power_range.py SupportedPowerRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_power_range.py SupportedPowerRangeCharacteristic._encode_value   13 4 0   69%
src/bluetooth_sig/gatt/characteristics/supported_power_range.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_resistance_level_range.py SupportedResistanceLevelRangeData.__post_init__   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_resistance_level_range.py SupportedResistanceLevelRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_resistance_level_range.py SupportedResistanceLevelRangeCharacteristic._encode_value   13 2 0   85%
src/bluetooth_sig/gatt/characteristics/supported_resistance_level_range.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_speed_range.py SupportedSpeedRangeData.__post_init__   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_speed_range.py SupportedSpeedRangeCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_speed_range.py SupportedSpeedRangeCharacteristic._encode_value   13 2 0   85%
src/bluetooth_sig/gatt/characteristics/supported_speed_range.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_unread_alert_category.py SupportedUnreadAlertCategoryCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_unread_alert_category.py SupportedUnreadAlertCategoryCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_unread_alert_category.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/system_id.py SystemIdCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/system_id.py SystemIdCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/system_id.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/tds_control_point.py TDSControlPointCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/tds_control_point.py TDSControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/tds_control_point.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature.py TemperatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature.py TemperatureCharacteristic._encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_in_a_period_of_day.py Temperature8InAPeriodOfDayData.__post_init__   8 2 0   75%
src/bluetooth_sig/gatt/characteristics/temperature_8_in_a_period_of_day.py Temperature8InAPeriodOfDayCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_in_a_period_of_day.py Temperature8InAPeriodOfDayCharacteristic._encode_value   13 2 0   85%
src/bluetooth_sig/gatt/characteristics/temperature_8_in_a_period_of_day.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py _decode_time_exponential   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py _encode_time_exponential   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py Temperature8StatisticsData.__post_init__   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py Temperature8StatisticsCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py Temperature8StatisticsCharacteristic._encode_value   17 2 0   88%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_measurement.py TemperatureMeasurementData.__post_init__   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/temperature_measurement.py TemperatureMeasurementCharacteristic._decode_value   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_measurement.py TemperatureMeasurementCharacteristic._encode_value   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_measurement.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_range.py TemperatureRangeData.__post_init__   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/temperature_range.py TemperatureRangeCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_range.py TemperatureRangeCharacteristic._encode_value   11 2 0   82%
src/bluetooth_sig/gatt/characteristics/temperature_range.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py _decode_time_exponential   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py _encode_time_exponential   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py TemperatureStatisticsData.__post_init__   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py TemperatureStatisticsCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py TemperatureStatisticsCharacteristic._encode_value   17 2 0   88%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_type.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/__init__.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.decode_value   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.encode_value   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.data_size   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/base.py CodingTemplate.resolve_python_type   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/composite.py TimeDataTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py TimeDataTemplate.decode_value   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/composite.py TimeDataTemplate.encode_value   15 4 0   73%
src/bluetooth_sig/gatt/characteristics/templates/composite.py VectorTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py VectorTemplate.decode_value   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py VectorTemplate.encode_value   5 5 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py Vector2DTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py Vector2DTemplate.decode_value   5 5 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py Vector2DTemplate.encode_value   4 4 0   0%
src/bluetooth_sig/gatt/characteristics/templates/composite.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/data_structures.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.__init__   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.extractor   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.decode_value   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py TemperatureTemplate.encode_value   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.__init__   7 5 0   29%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.from_letter_method   3 3 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py ConcentrationTemplate.encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py PressureTemplate.encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py (no function)   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.translator   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.decode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.encode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.uint8   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.uint16   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.uint32   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.sint8   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.sint16   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py EnumTemplate.sint32   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/enum.py (no function)   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py EpochDateTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py EpochDateTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py EpochDateTemplate.decode_value   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py EpochDateTemplate.encode_value   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.__init__   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.decode_value   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.uint8   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.uint16   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py FlagTemplate.uint32   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/flag.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py IEEE11073FloatTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py IEEE11073FloatTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py IEEE11073FloatTemplate.translator   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py IEEE11073FloatTemplate.decode_value   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py IEEE11073FloatTemplate.encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py Float32Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py Float32Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py Float32Template.decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py Float32Template.encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint8Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint8Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint8Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint8Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint8Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint8Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint8Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint8Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint8Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint8Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint16Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint16Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint16Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint16Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint16Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint16Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint16Template.extractor   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint16Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint16Template.decode_value   3 3 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint16Template.encode_value   3 3 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint24Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint24Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint24Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint24Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint24Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint32Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint32Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint32Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint32Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint32Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint32Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint32Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint32Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint32Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Sint32Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint48Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint48Template.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint48Template.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint48Template.decode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py Uint48Template.encode_value   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py (no function)   79 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.scale_factor   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.offset   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.translator   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate._check_range   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.from_scale_offset   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledTemplate.from_letter_method   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint16Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint16Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint16Template._check_range   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint16Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint16Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint16Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint8Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint8Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint8Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint8Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint8Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint8Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint32Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint32Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint32Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint24Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint24Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledUint24Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint24Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint24Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint24Template._check_range   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint32Template.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint32Template.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py ScaledSint32Template._check_range   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py PercentageTemplate.data_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py PercentageTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py PercentageTemplate.translator   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py PercentageTemplate.decode_value   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py PercentageTemplate.encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py (no function)   85 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf8StringTemplate.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf8StringTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf8StringTemplate.decode_value   12 1 0   92%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf8StringTemplate.encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf16StringTemplate.__init__   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf16StringTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf16StringTemplate.decode_value   22 2 0   91%
src/bluetooth_sig/gatt/characteristics/templates/string.py Utf16StringTemplate.encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/string.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.decode_value   4 1 0   75%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.encode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.seconds_uint8   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.seconds_uint16   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.seconds_uint24   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.seconds_uint32   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.milliseconds_uint24   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.hours_uint24   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeDurationTemplate.decihours_uint8   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeExponentialTemplate.data_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeExponentialTemplate.extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeExponentialTemplate.decode_value   7 1 0   86%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py TimeExponentialTemplate.encode_value   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/termination_reason.py TerminationReasonCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/termination_reason.py TerminationReasonCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/termination_reason.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/three_zone_heart_rate_limits.py ThreeZoneHeartRateLimitsCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/three_zone_heart_rate_limits.py ThreeZoneHeartRateLimitsCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/three_zone_heart_rate_limits.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_accuracy.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_change_log_data.py TimeChangeLogDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_change_log_data.py TimeChangeLogDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_change_log_data.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_decihour_8.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_exponential_8.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_hour_24.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_millisecond_24.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_16.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_32.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_8.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_source.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_control_point.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_state.py TimeUpdateStateCharacteristic.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_state.py TimeUpdateStateCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_state.py TimeUpdateStateCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_state.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_with_dst.py TimeWithDstCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_with_dst.py TimeWithDstCharacteristic._encode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_with_dst.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_zone.py TimeZoneCharacteristic._decode_value   13 1 0   92%
src/bluetooth_sig/gatt/characteristics/time_zone.py TimeZoneCharacteristic._encode_value   27 10 0   63%
src/bluetooth_sig/gatt/characteristics/time_zone.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/tmap_role.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/torque.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_changed.py TrackChangedCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_changed.py TrackChangedCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_changed.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_duration.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_position.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_title.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/training_status.py TrainingStatusCharacteristic._decode_value   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/training_status.py TrainingStatusCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/training_status.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/treadmill_data.py TreadmillData.__post_init__   36 18 0   50%
src/bluetooth_sig/gatt/characteristics/treadmill_data.py TreadmillDataCharacteristic._decode_value   67 0 0   100%
src/bluetooth_sig/gatt/characteristics/treadmill_data.py TreadmillDataCharacteristic._encode_value   67 0 0   100%
src/bluetooth_sig/gatt/characteristics/treadmill_data.py (no function)   51 0 0   100%
src/bluetooth_sig/gatt/characteristics/true_wind_direction.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/true_wind_speed.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/two_zone_heart_rate_limits.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/tx_power_level.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/udi_for_medical_devices.py _read_null_terminated_string   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/udi_for_medical_devices.py UDIForMedicalDevicesCharacteristic._decode_value   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/udi_for_medical_devices.py UDIForMedicalDevicesCharacteristic._encode_value   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/udi_for_medical_devices.py (no function)   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/ugg_features.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/ugt_features.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/uncertainty.py UncertaintyCharacteristic._decode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/uncertainty.py UncertaintyCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/uncertainty.py (no function)   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/unknown.py UnknownCharacteristic.__init__   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/unknown.py UnknownCharacteristic._decode_value   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/unknown.py UnknownCharacteristic._encode_value   3 3 0   0%
src/bluetooth_sig/gatt/characteristics/unknown.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/unread_alert_status.py UnreadAlertStatusCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/unread_alert_status.py UnreadAlertStatusCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/unread_alert_status.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/uri.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_control_point.py UserControlPointCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_control_point.py UserControlPointCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_control_point.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_index.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils.py (no function)   7 7 0   0%
src/bluetooth_sig/gatt/characteristics/utils/__init__.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.extract_bit_field   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.set_bit_field   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.create_bitmask   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.test_bit   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.test_bits_any   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.test_bits_all   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.set_bit   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.clear_bit   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.toggle_bit   3 1 0   67%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.extract_bits   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.set_bits   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.clear_bits   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.toggle_bits   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.count_set_bits   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.get_bit_positions   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.find_first_set_bit   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.find_last_set_bit   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.reverse_bits   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.calculate_parity   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.validate_bit_field_range   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.copy_bit_field   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.shift_bit_field_left   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.shift_bit_field_right   6 1 0   83%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.merge_bit_fields   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.split_bit_field   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.compare_bit_fields   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.rotate_left   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.rotate_right   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py BitFieldUtils.extract_bit_field_from_mask   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py (no function)   71 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_int8   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_int16   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_int32   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_int24   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_int48   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_float32   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_float64   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_utf8_string   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.parse_variable_length   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_int8   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_int16   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_int32   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_int24   6 2 0   67%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_int48   8 5 0   38%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_float32   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py DataParser.encode_float64   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py (no function)   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_data_length   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_range   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_enum_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_concentration_range   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_temperature_range   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_percentage   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py DataValidator.validate_power_range   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_hex_dump   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.validate_round_trip   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_measurement_value   6 6 0   0%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_hex_data   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_binary_flags   5 5 0   0%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.validate_struct_format   4 4 0   0%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_field_error   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_field_errors   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py DebugUtils.format_parse_trace   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py RawExtractor.byte_size   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py RawExtractor.signed   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py RawExtractor.extract   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py RawExtractor.pack   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint8Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint8Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint8Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint8Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint8Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint8Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint8Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint8Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint16Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint16Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint16Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint16Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint16Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint16Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint16Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint16Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint16Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint16Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint24Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint24Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint24Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint24Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint24Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint24Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint24Extractor.byte_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint24Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint24Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint24Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint32Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint32Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint32Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint32Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint32Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint32Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint32Extractor.byte_size   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint32Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint32Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Sint32Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint48Extractor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint48Extractor.byte_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint48Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint48Extractor.extract   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Uint48Extractor.pack   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.byte_size   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.signed   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.extract   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.pack   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.extract_float   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py Float32Extractor.pack_float   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py get_extractor   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py (no function)   117 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.parse_sfloat   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.parse_float32   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.encode_sfloat   20 2 0   90%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.encode_float32   29 1 0   97%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.parse_timestamp   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py IEEE11073Parser.encode_timestamp   13 5 0   62%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py (no function)   68 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py ParseTrace.__init__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py ParseTrace.append   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py ParseTrace.get_trace   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py ParseTrace.enabled   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py ValueTranslator.translate   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py ValueTranslator.untranslate   0 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py IdentityTranslator.translate   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py IdentityTranslator.untranslate   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.__init__   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.from_mdb   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.scale_factor   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.offset   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.translate   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py LinearTranslator.untranslate   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py PercentageTranslator.translate   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py PercentageTranslator.untranslate   1 1 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py SfloatTranslator.translate   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py SfloatTranslator.untranslate   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/translators.py Float32IEEETranslator.translate   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py Float32IEEETranslator.untranslate   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py Float32IEEE754Translator.translate   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py Float32IEEE754Translator.untranslate   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py create_linear_translator   5 5 0   0%
src/bluetooth_sig/gatt/characteristics/utils/translators.py (no function)   58 0 0   100%
src/bluetooth_sig/gatt/characteristics/uv_index.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/vo2_max.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/voc_concentration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_name.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_service_control_point.py VoiceAssistantServiceControlPointCharacteristic._decode_value   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_service_control_point.py VoiceAssistantServiceControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_service_control_point.py VoiceAssistantServiceControlPointCharacteristic._validate_opcode_parameter   9 1 0   89%
src/bluetooth_sig/gatt/characteristics/voice_assistant_service_control_point.py (no function)   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_session_flag.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_session_state.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_supported_features.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_supported_languages.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_uuid.py VoiceAssistantUUIDCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_uuid.py VoiceAssistantUUIDCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_uuid.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage.py (no function)   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_frequency.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_specification.py VoltageSpecificationData.__post_init__   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/voltage_specification.py VoltageSpecificationCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_specification.py VoltageSpecificationCharacteristic._encode_value   13 2 0   85%
src/bluetooth_sig/gatt/characteristics/voltage_specification.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py _decode_time_exponential   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py _encode_time_exponential   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py VoltageStatisticsData.__post_init__   7 3 0   57%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py VoltageStatisticsCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py VoltageStatisticsCharacteristic._encode_value   19 3 0   84%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py (no function)   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_control_point.py VolumeControlPointCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_control_point.py VolumeControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_control_point.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_flags.py (no function)   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_flow.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_control_point.py VolumeOffsetControlPointCharacteristic._decode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_control_point.py VolumeOffsetControlPointCharacteristic._encode_value   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_control_point.py (no function)   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_state.py VolumeOffsetStateCharacteristic._decode_value   3 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_state.py VolumeOffsetStateCharacteristic._encode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_state.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_state.py VolumeStateCharacteristic._decode_value   4 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_state.py VolumeStateCharacteristic._encode_value   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_state.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/waist_circumference.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_measurement.py WeightMeasurementData.__post_init__   23 10 0   57%
src/bluetooth_sig/gatt/characteristics/weight_measurement.py WeightMeasurementCharacteristic._decode_value   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_measurement.py WeightMeasurementCharacteristic._encode_value   35 4 0   89%
src/bluetooth_sig/gatt/characteristics/weight_measurement.py (no function)   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightMeasurementResolution.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py HeightMeasurementResolution.__str__   2 2 0   0%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightScaleFeatureData.__post_init__   2 1 0   50%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightScaleFeatureCharacteristic._decode_value   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightScaleFeatureCharacteristic._encode_value   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightScaleFeatureCharacteristic._get_weight_resolution   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py WeightScaleFeatureCharacteristic._get_height_resolution   5 2 0   60%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py (no function)   50 0 0   100%
src/bluetooth_sig/gatt/characteristics/wind_chill.py (no function)   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/work_cycle_data.py WorkCycleDataCharacteristic._decode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/work_cycle_data.py WorkCycleDataCharacteristic._encode_value   1 0 0   100%
src/bluetooth_sig/gatt/characteristics/work_cycle_data.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/constants.py (no function)   61 0 0   100%
src/bluetooth_sig/gatt/context.py (no function)   3 0 0   100%
src/bluetooth_sig/gatt/descriptor_utils.py get_descriptors_from_context   3 3 0   0%
src/bluetooth_sig/gatt/descriptor_utils.py get_descriptor_from_context   8 2 0   75%
src/bluetooth_sig/gatt/descriptor_utils.py get_valid_range_from_context   4 1 0   75%
src/bluetooth_sig/gatt/descriptor_utils.py get_presentation_format_from_context   4 4 0   0%
src/bluetooth_sig/gatt/descriptor_utils.py get_user_description_from_context   4 4 0   0%
src/bluetooth_sig/gatt/descriptor_utils.py validate_value_against_descriptor_range   5 5 0   0%
src/bluetooth_sig/gatt/descriptor_utils.py enhance_error_message_with_descriptors   16 16 0   0%
src/bluetooth_sig/gatt/descriptor_utils.py (no function)   15 0 0   100%
src/bluetooth_sig/gatt/descriptors/__init__.py __getattr__   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/__init__.py __dir__   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/__init__.py (no function)   12 2 0   83%
src/bluetooth_sig/gatt/descriptors/_export_map.py (no function)   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.__init__   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.__post_init__   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor._resolve_info   7 1 0   86%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.uuid   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.name   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.info   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.parse_value   6 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor.is_writable   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py BaseDescriptor._parse_descriptor_value   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/base.py _RangeValue.min_value   0 0 1   100%
src/bluetooth_sig/gatt/descriptors/base.py _RangeValue.max_value   0 0 1   100%
src/bluetooth_sig/gatt/descriptors/base.py RangeDescriptorMixin._parse_descriptor_value   0 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py RangeDescriptorMixin.get_min_value   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/base.py RangeDescriptorMixin.get_max_value   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/base.py RangeDescriptorMixin.is_value_in_range   4 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py (no function)   36 0 5   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.create_enable_notifications_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.create_enable_indications_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.create_enable_both_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.create_disable_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.is_notifications_enabled   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.is_indications_enabled   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/cccd.py CCCDDescriptor.is_any_enabled   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/cccd.py (no function)   28 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py CharacteristicAggregateFormatDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py CharacteristicAggregateFormatDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py CharacteristicAggregateFormatDescriptor._parse_descriptor_value   9 1 0   89%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py CharacteristicAggregateFormatDescriptor.get_attribute_handles   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py CharacteristicAggregateFormatDescriptor.get_handle_count   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py CharacteristicExtendedPropertiesDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py CharacteristicExtendedPropertiesDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py CharacteristicExtendedPropertiesDescriptor._parse_descriptor_value   4 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py CharacteristicExtendedPropertiesDescriptor.supports_reliable_write   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py CharacteristicExtendedPropertiesDescriptor.supports_writable_auxiliaries   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py (no function)   18 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py FormatNamespace._missing_   6 6 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py FormatType._missing_   6 1 0   83%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor._parse_descriptor_value   13 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor.get_format_type   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor.get_exponent   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor.get_unit   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor.get_namespace   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py CharacteristicPresentationFormatDescriptor.get_description   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py (no function)   72 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py CharacteristicUserDescriptionDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py CharacteristicUserDescriptionDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py CharacteristicUserDescriptionDescriptor._parse_descriptor_value   5 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py CharacteristicUserDescriptionDescriptor.get_description   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py CompleteBREDRTransportBlockDataDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py CompleteBREDRTransportBlockDataDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py CompleteBREDRTransportBlockDataDescriptor._parse_descriptor_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py CompleteBREDRTransportBlockDataDescriptor.get_transport_data   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py CookingSensorInfoDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py CookingSensorInfoDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py CookingSensorInfoDescriptor._parse_descriptor_value   18 1 0   94%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py _parse_location   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py (no function)   32 0 0   100%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py CookingTriggerSettingDescriptor.__init__   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py CookingTriggerSettingDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py CookingTriggerSettingDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py CookingTriggerSettingDescriptor._parse_descriptor_value   7 0 0   100%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor.has_trigger_logic_value   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor.has_transmission_interval   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py EnvironmentalSensingConfigurationDescriptor.has_measurement_period   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py (no function)   26 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor._parse_descriptor_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor.get_sampling_function   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor.get_measurement_period   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor.get_update_interval   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor.get_application   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py EnvironmentalSensingMeasurementDescriptor.get_measurement_uncertainty   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py EnvironmentalSensingTriggerSettingDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py EnvironmentalSensingTriggerSettingDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py EnvironmentalSensingTriggerSettingDescriptor._parse_descriptor_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py EnvironmentalSensingTriggerSettingDescriptor.get_condition   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py EnvironmentalSensingTriggerSettingDescriptor.get_operand   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py ExternalReportReferenceDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py ExternalReportReferenceDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py ExternalReportReferenceDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py ExternalReportReferenceDescriptor.get_external_report_id   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py IMDTriggerSettingDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py IMDTriggerSettingDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py IMDTriggerSettingDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py IMDTriggerSettingDescriptor.get_trigger_setting   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor._parse_descriptor_value   3 0 0   100%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor.get_min_limit   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor.get_max_limit   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py ManufacturerLimitsDescriptor.is_value_within_limits   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/descriptors/measurement_description.py MeasurementDescriptionDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/measurement_description.py MeasurementDescriptionDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/measurement_description.py MeasurementDescriptionDescriptor._parse_descriptor_value   5 0 0   100%
src/bluetooth_sig/gatt/descriptors/measurement_description.py MeasurementDescriptionDescriptor.get_description   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/measurement_description.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py NumberOfDigitalsDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py NumberOfDigitalsDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py NumberOfDigitalsDescriptor._parse_descriptor_value   4 0 0   100%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py NumberOfDigitalsDescriptor.get_number_of_digitals   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py ObservationScheduleDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py ObservationScheduleDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py ObservationScheduleDescriptor._parse_descriptor_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py ObservationScheduleDescriptor.get_schedule_data   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py (no function)   10 0 0   100%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py ProcessTolerancesDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py ProcessTolerancesDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py ProcessTolerancesDescriptor._parse_descriptor_value   3 0 0   100%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py ProcessTolerancesDescriptor.get_tolerance_min   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py ProcessTolerancesDescriptor.get_tolerance_max   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry._ensure_loaded   5 0 0   100%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry._register_builtins   12 1 0   92%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry.register   6 2 0   67%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry.get_descriptor_class   4 0 0   100%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry.create_descriptor   7 2 0   71%
src/bluetooth_sig/gatt/descriptors/registry.py DescriptorRegistry.list_registered_descriptors   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/registry.py (no function)   27 0 0   100%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor._parse_descriptor_value   1 0 0   100%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor.get_report_id   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor.get_report_type   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor.is_input_report   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor.is_output_report   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py ReportReferenceDescriptor.is_feature_report   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/report_reference.py (no function)   21 0 0   100%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor.create_enable_broadcasts_value   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor.create_disable_broadcasts_value   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py ServerCharacteristicConfigurationDescriptor.is_broadcasts_enabled   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py (no function)   19 0 0   100%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py TimeTriggerSettingDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py TimeTriggerSettingDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py TimeTriggerSettingDescriptor._parse_descriptor_value   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py TimeTriggerSettingDescriptor.get_time_interval   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/descriptors/valid_range.py ValidRangeDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/valid_range.py ValidRangeDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/valid_range.py ValidRangeDescriptor._parse_descriptor_value   3 0 0   100%
src/bluetooth_sig/gatt/descriptors/valid_range.py (no function)   12 0 0   100%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py ValidRangeAndAccuracyDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py ValidRangeAndAccuracyDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py ValidRangeAndAccuracyDescriptor._parse_descriptor_value   4 0 0   100%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py ValidRangeAndAccuracyDescriptor.get_accuracy   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py (no function)   13 0 0   100%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor._has_structured_data   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor._get_data_format   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor._parse_descriptor_value   3 0 0   100%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor.get_condition   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor.get_trigger_value   2 2 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor.is_condition_equal_to   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py ValueTriggerSettingDescriptor.is_condition_greater_than   1 1 0   0%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py (no function)   24 0 0   100%
src/bluetooth_sig/gatt/exceptions.py UUIDResolutionError.__init__   6 0 0   100%
src/bluetooth_sig/gatt/exceptions.py DataParsingError.__init__   6 0 0   100%
src/bluetooth_sig/gatt/exceptions.py ParseFieldError.__init__   8 0 0   100%
src/bluetooth_sig/gatt/exceptions.py DataEncodingError.__init__   5 0 0   100%
src/bluetooth_sig/gatt/exceptions.py DataValidationError.__init__   5 0 0   100%
src/bluetooth_sig/gatt/exceptions.py InsufficientDataError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py ValueRangeError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py TypeMismatchError.__init__   7 0 0   100%
src/bluetooth_sig/gatt/exceptions.py MissingDependencyError.__init__   5 0 0   100%
src/bluetooth_sig/gatt/exceptions.py EnumValueError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py IEEE11073Error.__init__   3 0 0   100%
src/bluetooth_sig/gatt/exceptions.py YAMLResolutionError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py ServiceCharacteristicMismatchError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py TemplateConfigurationError.__init__   4 0 0   100%
src/bluetooth_sig/gatt/exceptions.py UUIDRequiredError.__init__   4 4 0   0%
src/bluetooth_sig/gatt/exceptions.py UUIDCollisionError.__init__   5 5 0   0%
src/bluetooth_sig/gatt/exceptions.py CharacteristicParseError.__init__   8 0 0   100%
src/bluetooth_sig/gatt/exceptions.py CharacteristicParseError.__str__   5 0 0   100%
src/bluetooth_sig/gatt/exceptions.py SpecialValueDetectedError.__init__   7 0 0   100%
src/bluetooth_sig/gatt/exceptions.py CharacteristicEncodeError.__init__   5 0 0   100%
src/bluetooth_sig/gatt/exceptions.py (no function)   50 0 0   100%
src/bluetooth_sig/gatt/lazy_exports.py lazy_getattr   8 0 0   100%
src/bluetooth_sig/gatt/lazy_exports.py (no function)   4 0 0   100%
src/bluetooth_sig/gatt/registry_utils.py TypeValidator.is_subclass_of   1 0 0   100%
src/bluetooth_sig/gatt/registry_utils.py ModuleDiscovery.iter_module_names   10 0 0   100%
src/bluetooth_sig/gatt/registry_utils.py ModuleDiscovery.discover_classes   19 1 0   95%
src/bluetooth_sig/gatt/registry_utils.py ModuleDiscovery.build_lazy_export_map   16 2 0   88%
src/bluetooth_sig/gatt/registry_utils.py (no function)   17 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameNormalizer.camel_case_to_display_name   3 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameNormalizer.sanitize_display_markup   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameNormalizer.remove_suffix   3 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameNormalizer.to_org_format   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameNormalizer.snake_case_to_camel_case   10 2 0   80%
src/bluetooth_sig/gatt/resolver.py NameVariantGenerator.generate_characteristic_variants   15 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameVariantGenerator.generate_service_variants   15 0 0   100%
src/bluetooth_sig/gatt/resolver.py NameVariantGenerator.generate_descriptor_variants   15 0 0   100%
src/bluetooth_sig/gatt/resolver.py RegistrySearchStrategy.search   6 0 0   100%
src/bluetooth_sig/gatt/resolver.py RegistrySearchStrategy._generate_variants   0 0 0   100%
src/bluetooth_sig/gatt/resolver.py RegistrySearchStrategy._lookup_in_registry   0 0 0   100%
src/bluetooth_sig/gatt/resolver.py CharacteristicRegistrySearch._generate_variants   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py CharacteristicRegistrySearch._lookup_in_registry   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py ServiceRegistrySearch._generate_variants   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py ServiceRegistrySearch._lookup_in_registry   1 0 0   100%
src/bluetooth_sig/gatt/resolver.py DescriptorRegistrySearch._generate_variants   1 1 0   0%
src/bluetooth_sig/gatt/resolver.py DescriptorRegistrySearch._lookup_in_registry   1 1 0   0%
src/bluetooth_sig/gatt/resolver.py (no function)   40 0 0   100%
src/bluetooth_sig/gatt/services/__init__.py __getattr__   1 0 0   100%
src/bluetooth_sig/gatt/services/__init__.py __dir__   1 1 0   0%
src/bluetooth_sig/gatt/services/__init__.py (no function)   12 2 0   83%
src/bluetooth_sig/gatt/services/_export_map.py (no function)   2 0 0   100%
src/bluetooth_sig/gatt/services/alert_notification.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/audio_input_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/audio_stream_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/authorization_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/automation_io.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/base.py SIGServiceResolver.resolve_for_class   6 2 0   67%
src/bluetooth_sig/gatt/services/base.py SIGServiceResolver.resolve_from_registry   3 0 0   100%
src/bluetooth_sig/gatt/services/base.py ServiceValidationResult.is_healthy   1 0 0   100%
src/bluetooth_sig/gatt/services/base.py ServiceValidationResult.has_errors   1 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.__init__   8 2 0   75%
src/bluetooth_sig/gatt/services/base.py BaseGattService.__post_init__   3 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.uuid   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.name   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.info   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_class_uuid   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_name   7 2 0   71%
src/bluetooth_sig/gatt/services/base.py BaseGattService.matches_uuid   6 2 0   67%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_expected_characteristics   8 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_required_characteristics   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_characteristics_schema   1 1 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_required_characteristic_keys   1 1 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_expected_characteristic_uuids   10 10 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_required_characteristic_uuids   10 2 0   80%
src/bluetooth_sig/gatt/services/base.py BaseGattService.process_characteristics   5 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_characteristic   3 3 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService.supported_characteristics   1 1 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_optional_characteristics   3 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_conditional_characteristics   1 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.validate_bluetooth_sig_compliance   10 2 0   80%
src/bluetooth_sig/gatt/services/base.py BaseGattService._validate_characteristic_group   17 5 0   71%
src/bluetooth_sig/gatt/services/base.py BaseGattService._validate_conditional_characteristics   8 7 0   12%
src/bluetooth_sig/gatt/services/base.py BaseGattService._determine_health_status   4 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.validate_service   12 0 0   100%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_missing_characteristics   23 5 0   78%
src/bluetooth_sig/gatt/services/base.py BaseGattService._find_characteristic_enum   4 4 0   0%
src/bluetooth_sig/gatt/services/base.py BaseGattService._get_characteristic_metadata   10 3 0   70%
src/bluetooth_sig/gatt/services/base.py BaseGattService._get_characteristic_status   9 2 0   78%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_characteristic_status   16 2 0   88%
src/bluetooth_sig/gatt/services/base.py BaseGattService.get_service_completeness_report   11 2 0   82%
src/bluetooth_sig/gatt/services/base.py BaseGattService.has_minimum_functionality   2 0 0   100%
src/bluetooth_sig/gatt/services/base.py (no function)   113 0 0   100%
src/bluetooth_sig/gatt/services/basic_audio_announcement.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/battery_service.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/binary_sensor.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/blood_pressure.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/body_composition.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/bond_management.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/broadcast_audio_announcement.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/broadcast_audio_scan.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/common_audio.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/constant_tone_extension.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/continuous_glucose_monitoring.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/cookware.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/coordinated_set_identification.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/current_time_service.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/custom.py CustomBaseGattService.__init_subclass__   7 0 0   100%
src/bluetooth_sig/gatt/services/custom.py CustomBaseGattService.__init__   6 1 0   83%
src/bluetooth_sig/gatt/services/custom.py CustomBaseGattService.__post_init__   5 3 0   40%
src/bluetooth_sig/gatt/services/custom.py (no function)   11 0 0   100%
src/bluetooth_sig/gatt/services/cycling_power.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/cycling_speed_and_cadence.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/device_information.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/device_time.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/elapsed_time.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/electronic_shelf_label.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/emergency_configuration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/environmental_sensing.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/fitness_machine_service.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/gaming_audio.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_access.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/generic_attribute.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/generic_health_sensor.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_media_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_telephone_bearer.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_voice_assistant.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/glucose.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/health_thermometer.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/hearing_access.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/heart_rate.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/hid_iso.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/http_proxy.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/human_interface_device.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/immediate_alert.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/indoor_positioning_service.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/industrial_measurement_device.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/insulin_delivery.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/internet_protocol_support.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/link_loss.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/location_and_navigation.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/media_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_provisioning.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_proxy.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_proxy_solicitation.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/microphone_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/next_dst_change.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/object_transfer.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/phone_alert_status.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/physical_activity_monitor.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/public_broadcast_announcement.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/published_audio_capabilities.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/pulse_oximeter_service.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/ranging.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/reconnection_configuration.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/reference_time_update.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/registry.py _is_service_subclass   1 0 0   100%
src/bluetooth_sig/gatt/services/registry.py get_service_class_map   1 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry._get_base_class   1 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry._discover_sig_classes   3 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry._build_enum_map   19 4 0   79%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry._load   3 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.register_service_class   2 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.unregister_service_class   2 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry._get_services   2 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.get_service_class   9 1 0   89%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.get_service_class_by_name   8 8 0   0%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.get_service_class_by_uuid   1 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.create_service   6 1 0   83%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.get_all_services   1 0 0   100%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.supported_services   1 1 0   0%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.supported_service_names   1 1 0   0%
src/bluetooth_sig/gatt/services/registry.py GattServiceRegistry.clear_custom_registrations   3 0 0   100%
src/bluetooth_sig/gatt/services/registry.py (no function)   41 0 0   100%
src/bluetooth_sig/gatt/services/running_speed_and_cadence.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/scan_parameters.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/telephone_bearer.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/telephony_and_media_audio.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/transport_discovery.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/tx_power.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/unknown.py UnknownService.__init__   2 0 0   100%
src/bluetooth_sig/gatt/services/unknown.py (no function)   7 0 0   100%
src/bluetooth_sig/gatt/services/user_data.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/voice_assistant.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/volume_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/volume_offset_control.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/services/weight_scale.py (no function)   6 0 0   100%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.__init__   3 0 0   100%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.set_user_override   1 1 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.add_special_value   1 1 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.clear_user_override   1 1 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.disable_special_value   1 1 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.resolve   10 5 0   50%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.get_raw_for_type   5 5 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.get_raw_for_meaning   8 8 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.list_all_rules   10 10 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py SpecialValueResolver.is_special   1 1 0   0%
src/bluetooth_sig/gatt/special_values_resolver.py (no function)   14 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_instance   5 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.__init__   14 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._ensure_loaded   11 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.ensure_loaded   1 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._store_service   5 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._store_characteristic   5 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._store_descriptor   5 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._generate_aliases   21 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._load_uuids   30 1 0   97%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._load_gss_characteristic_info   15 1 0   93%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._update_characteristic_with_gss_info   12 1 0   92%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry._convert_bluetooth_unit_to_readable   7 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.register_characteristic   13 2 0   85%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.register_service   13 6 0   54%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_service_info   18 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_characteristic_info   18 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_descriptor_info   18 7 0   61%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_gss_spec   22 9 0   59%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.resolve_characteristic_spec   34 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_signed_from_data_type   4 4 0   0%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.get_byte_order_hint   1 1 0   0%
src/bluetooth_sig/gatt/uuid_registry.py UuidRegistry.clear_custom_registrations   26 3 0   88%
src/bluetooth_sig/gatt/uuid_registry.py get_uuid_registry   1 0 0   100%
src/bluetooth_sig/gatt/uuid_registry.py (no function)   42 0 0   100%
src/bluetooth_sig/gatt/validation.py ValidationRule.validate   15 2 0   87%
src/bluetooth_sig/gatt/validation.py StrictValidator.add_rule   1 0 0   100%
src/bluetooth_sig/gatt/validation.py StrictValidator.validate_dict   3 0 0   100%
src/bluetooth_sig/gatt/validation.py StrictValidator.validate_object   4 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_positive   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_non_negative   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_percentage   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_extended_percentage   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_physical_temperature   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_concentration   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_power   1 0 0   100%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_heart_rate   1 1 0   0%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_valid_battery_level   1 1 0   0%
src/bluetooth_sig/gatt/validation.py CommonValidators.is_ieee11073_special_value   2 2 0   0%
src/bluetooth_sig/gatt/validation.py create_range_validator   3 3 0   0%
src/bluetooth_sig/gatt/validation.py validate_measurement_data   10 10 0   0%
src/bluetooth_sig/gatt/validation.py (no function)   50 0 0   100%
src/bluetooth_sig/registry/__init__.py (no function)   3 0 0   100%
src/bluetooth_sig/registry/base.py RegistryMixin._lazy_load   7 0 0   100%
src/bluetooth_sig/registry/base.py RegistryMixin._ensure_loaded   1 0 0   100%
src/bluetooth_sig/registry/base.py RegistryMixin.ensure_loaded   1 0 0   100%
src/bluetooth_sig/registry/base.py RegistryMixin._load   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseGenericRegistry.__init__   2 0 0   100%
src/bluetooth_sig/registry/base.py BaseGenericRegistry.get_instance   5 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.__init__   5 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._load_yaml_path   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._generate_aliases   1 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._post_store   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._store_info   6 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._load_from_yaml   5 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._load   6 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._create_info_from_yaml   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.get_info   17 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.register_runtime_entry   11 11 0   0%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry._create_runtime_info   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.remove_runtime_override   11 11 0   0%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.list_registered   3 3 0   0%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.list_aliases   3 3 0   0%
src/bluetooth_sig/registry/base.py BaseUUIDRegistry.get_instance   5 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.__init__   5 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._get_base_class   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._build_enum_map   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._discover_sig_classes   0 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._allows_sig_override   2 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._get_enum_map   3 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry._get_sig_classes_map   10 2 0   80%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.register_class   16 3 0   81%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.unregister_class   3 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.get_class_by_uuid   6 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.get_class_by_enum   2 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.list_custom_uuids   2 0 0   100%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.clear_enum_map_cache   2 2 0   0%
src/bluetooth_sig/registry/base.py BaseUUIDClassRegistry.get_instance   5 0 0   100%
src/bluetooth_sig/registry/base.py (no function)   74 0 0   100%
src/bluetooth_sig/registry/company_identifiers/__init__.py (no function)   3 0 0   100%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py CompanyIdentifiersRegistry.__init__   2 0 0   100%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py CompanyIdentifiersRegistry._load_company_identifiers   16 3 0   81%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py CompanyIdentifiersRegistry._load   14 6 0   57%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py CompanyIdentifiersRegistry.get_company_name   4 0 0   100%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py get_company_identifiers_registry   1 0 0   100%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py (no function)   15 0 0   100%
src/bluetooth_sig/registry/core/__init__.py (no function)   7 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry._load   32 13 0   59%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry.get_ad_type_info   3 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry.get_ad_type_by_name   3 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry.is_known_ad_type   3 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py ADTypesRegistry.get_all_ad_types   3 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py get_ad_types_registry   1 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py (no function)   15 0 0   100%
src/bluetooth_sig/registry/core/appearance_values.py AppearanceValuesRegistry.__init__   2 0 0   100%
src/bluetooth_sig/registry/core/appearance_values.py AppearanceValuesRegistry._load   11 4 0   64%
src/bluetooth_sig/registry/core/appearance_values.py AppearanceValuesRegistry._load_yaml   28 7 0   75%
src/bluetooth_sig/registry/core/appearance_values.py AppearanceValuesRegistry.get_appearance_info   4 1 0   75%
src/bluetooth_sig/registry/core/appearance_values.py AppearanceValuesRegistry.find_by_category_subcategory   9 0 0   100%
src/bluetooth_sig/registry/core/appearance_values.py get_appearance_values_registry   1 0 0   100%
src/bluetooth_sig/registry/core/appearance_values.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry.__init__   4 0 0   100%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry._load   11 4 0   64%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry._load_yaml   7 1 0   86%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry._load_service_classes   8 1 0   88%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry._load_device_classes   9 1 0   89%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry._load_minor_classes   8 0 0   100%
src/bluetooth_sig/registry/core/class_of_device.py ClassOfDeviceRegistry.decode_class_of_device   23 0 0   100%
src/bluetooth_sig/registry/core/class_of_device.py get_class_of_device_registry   1 0 0   100%
src/bluetooth_sig/registry/core/class_of_device.py (no function)   26 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry._load   31 13 0   58%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry.get_coding_format_info   3 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry.get_coding_format_by_name   3 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry.is_known_coding_format   3 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py CodingFormatRegistry.get_all_coding_formats   3 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py get_coding_format_registry   1 0 0   100%
src/bluetooth_sig/registry/core/coding_format.py (no function)   15 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry._load   34 13 0   62%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry.get_format_type_info   3 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry.get_format_type_by_name   3 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry.is_known_format_type   3 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py FormatTypesRegistry.get_all_format_types   3 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py get_format_types_registry   1 0 0   100%
src/bluetooth_sig/registry/core/formattypes.py (no function)   15 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry._load   31 13 0   58%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.get_description_info   3 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.get_description_by_name   3 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.is_known_description   3 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.get_all_descriptions   3 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py NamespaceDescriptionRegistry.resolve_description_name   2 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py get_namespace_description_registry   1 0 0   100%
src/bluetooth_sig/registry/core/namespace_description.py (no function)   16 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry._load   31 13 0   58%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.get_uri_scheme_info   3 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.get_uri_scheme_by_name   3 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.is_known_uri_scheme   3 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.get_all_uri_schemes   3 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py UriSchemesRegistry.decode_uri_prefix   2 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py get_uri_schemes_registry   1 0 0   100%
src/bluetooth_sig/registry/core/uri_schemes.py (no function)   16 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._get_units_registry   3 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._load   5 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._find_gss_path   7 3 0   57%
src/bluetooth_sig/registry/gss.py GssRegistry._process_gss_file   22 4 0   82%
src/bluetooth_sig/registry/gss.py GssRegistry.get_spec   3 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry.get_all_specs   3 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry.extract_info_from_gss   22 3 0   86%
src/bluetooth_sig/registry/gss.py GssRegistry._extract_unit_from_description   4 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._extract_unit_id_and_line   13 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._convert_yaml_type_to_python_type   1 0 0   100%
src/bluetooth_sig/registry/gss.py GssRegistry._convert_bluetooth_unit_to_readable   7 0 0   100%
src/bluetooth_sig/registry/gss.py get_gss_registry   1 1 0   0%
src/bluetooth_sig/registry/gss.py (no function)   23 0 0   100%
src/bluetooth_sig/registry/profiles/__init__.py (no function)   4 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry.__init__   2 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry._load_yaml_file   23 5 0   78%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry._load   15 5 0   67%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry.get_permitted_characteristics   4 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry.get_entries   3 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py PermittedCharacteristicsRegistry.get_all_profiles   3 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py get_permitted_characteristics_registry   1 1 0   0%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py (no function)   16 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry.__init__   2 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._extract_int_value   12 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._extract_name   5 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._build_metadata   7 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._load_yaml_file   39 5 0   87%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._is_deferred   1 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._is_permitted_characteristics   1 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry._load   13 4 0   69%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry.get_entries   3 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry.get_all_table_keys   3 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py ProfileLookupRegistry.resolve_name   6 0 0   100%
src/bluetooth_sig/registry/profiles/profile_lookup.py get_profile_lookup_registry   1 1 0   0%
src/bluetooth_sig/registry/profiles/profile_lookup.py (no function)   28 0 0   100%
src/bluetooth_sig/registry/service_discovery/__init__.py (no function)   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry.__init__   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry._parse_hex_value   8 6 0   25%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry._load_attribute_ids_file   20 4 0   80%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry._load_protocol_parameters   18 4 0   78%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry._load   17 4 0   76%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry.get_attribute_ids   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry.get_all_categories   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry.get_protocol_parameters   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py ServiceDiscoveryAttributeRegistry.resolve_attribute_name   6 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py get_service_discovery_attribute_registry   1 1 0   0%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py (no function)   19 0 0   100%
src/bluetooth_sig/registry/utils.py load_yaml_uuids   15 3 0   80%
src/bluetooth_sig/registry/utils.py normalize_uuid_string   1 0 0   100%
src/bluetooth_sig/registry/utils.py find_bluetooth_sig_path   7 3 0   57%
src/bluetooth_sig/registry/utils.py parse_bluetooth_uuid   9 0 0   100%
src/bluetooth_sig/registry/utils.py (no function)   10 0 0   100%
src/bluetooth_sig/registry/uuids/__init__.py (no function)   11 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry.get_browse_group_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry.get_browse_group_info_by_name   5 2 0   60%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry.get_browse_group_info_by_id   5 2 0   60%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry.is_browse_group_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py BrowseGroupsRegistry.get_all_browse_groups   2 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py get_browse_groups_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry.get_declaration_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry.get_declaration_info_by_name   5 2 0   60%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry.get_declaration_info_by_id   5 2 0   60%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry.is_declaration_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py DeclarationsRegistry.get_all_declarations   2 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py get_declarations_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/declarations.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry.get_member_name   2 0 0   100%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry.is_member_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry.get_all_members   2 0 0   100%
src/bluetooth_sig/registry/uuids/members.py MembersRegistry.get_member_info_by_name   5 2 0   60%
src/bluetooth_sig/registry/uuids/members.py get_members_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/members.py (no function)   13 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry.get_mesh_profile_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry.get_mesh_profile_info_by_name   5 2 0   60%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry.is_mesh_profile_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py MeshProfilesRegistry.get_all_mesh_profiles   2 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py get_mesh_profiles_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/mesh_profiles.py (no function)   13 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry.get_object_type_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry.get_object_type_info_by_name   5 2 0   60%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry.get_object_type_info_by_id   5 2 0   60%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry.is_object_type_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py ObjectTypesRegistry.get_all_object_types   2 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py get_object_types_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/object_types.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry.get_protocol_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry.get_protocol_info_by_name   1 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry.is_known_protocol   2 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py ProtocolIdentifiersRegistry.get_all_protocols   2 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py get_protocol_identifiers_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry._normalize_name_for_id   3 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry._create_info_from_yaml   2 2 0   0%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry.get_sdo_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry.get_sdo_info_by_name   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry.get_sdo_info_by_id   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry.is_sdo_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py SdoUuidsRegistry.get_all_sdo_uuids   2 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py get_sdo_uuids_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/sdo_uuids.py (no function)   16 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry._create_info_from_yaml   1 1 0   0%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry._create_runtime_info   1 1 0   0%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry.get_service_class_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry.get_service_class_info_by_name   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry.get_service_class_info_by_id   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry.is_service_class_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py ServiceClassesRegistry.get_all_service_classes   3 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py get_service_classes_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/service_classes.py (no function)   14 0 0   100%
src/bluetooth_sig/registry/uuids/units.py _derive_symbol_from_name   12 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry._load_yaml_path   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry._create_info_from_yaml   2 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry._create_runtime_info   2 2 0   0%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry.get_unit_info   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry.get_unit_info_by_name   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry.get_unit_info_by_id   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry.is_unit_uuid   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py UnitsRegistry.get_all_units   3 0 0   100%
src/bluetooth_sig/registry/uuids/units.py get_units_registry   1 0 0   100%
src/bluetooth_sig/registry/uuids/units.py resolve_unit_symbol   3 3 0   0%
src/bluetooth_sig/registry/uuids/units.py (no function)   19 0 0   100%
src/bluetooth_sig/stream/__init__.py (no function)   3 0 0   100%
src/bluetooth_sig/stream/pairing.py DependencyPairingBuffer.__init__   10 0 0   100%
src/bluetooth_sig/stream/pairing.py DependencyPairingBuffer.ingest   14 0 0   100%
src/bluetooth_sig/stream/pairing.py DependencyPairingBuffer.stats   1 0 0   100%
src/bluetooth_sig/stream/pairing.py DependencyPairingBuffer._evict_stale   9 0 0   100%
src/bluetooth_sig/stream/pairing.py (no function)   15 0 0   100%
src/bluetooth_sig/types/__init__.py (no function)   23 0 0   100%
src/bluetooth_sig/types/acs.py (no function)   14 0 0   100%
src/bluetooth_sig/types/ad_types_constants.py (no function)   52 0 0   100%
src/bluetooth_sig/types/address.py mac_address_to_bytes   9 0 0   100%
src/bluetooth_sig/types/address.py bytes_to_mac_address   4 2 0   50%
src/bluetooth_sig/types/address.py (no function)   5 0 0   100%
src/bluetooth_sig/types/advertising/__init__.py (no function)   11 0 0   100%
src/bluetooth_sig/types/advertising/ad_structures.py ConnectionIntervalRange.min_interval_ms   1 1 0   0%
src/bluetooth_sig/types/advertising/ad_structures.py ConnectionIntervalRange.max_interval_ms   1 1 0   0%
src/bluetooth_sig/types/advertising/ad_structures.py AdvertisingDataStructures.from_common_fields   4 4 0   0%
src/bluetooth_sig/types/advertising/ad_structures.py (no function)   83 0 0   100%
src/bluetooth_sig/types/advertising/builder.py ADStructure.to_bytes   4 0 0   100%
src/bluetooth_sig/types/advertising/builder.py ADStructure.__len__   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder._add_structure   2 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_extended_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_flags   2 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_complete_local_name   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_shortened_local_name   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_tx_power   2 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_service_uuids   20 1 0   95%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_manufacturer_data   3 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_manufacturer_data_struct   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_service_data   9 9 0   0%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_appearance   2 2 0   0%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.with_raw_structure   1 1 0   0%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.current_size   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.remaining_space   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py AdvertisementBuilder.build   4 0 0   100%
src/bluetooth_sig/types/advertising/builder.py encode_manufacturer_data   1 0 0   100%
src/bluetooth_sig/types/advertising/builder.py encode_service_uuids_16bit   10 1 0   90%
src/bluetooth_sig/types/advertising/builder.py encode_service_uuids_128bit   5 0 0   100%
src/bluetooth_sig/types/advertising/builder.py (no function)   38 0 0   100%
src/bluetooth_sig/types/advertising/channel_map_update.py ChannelMapUpdateIndication.decode   3 0 0   100%
src/bluetooth_sig/types/advertising/channel_map_update.py ChannelMapUpdateIndication.is_channel_used   6 0 0   100%
src/bluetooth_sig/types/advertising/channel_map_update.py (no function)   13 0 0   100%
src/bluetooth_sig/types/advertising/extended.py (no function)   32 0 0   100%
src/bluetooth_sig/types/advertising/features.py LEFeatures._get_features_int   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures._has_feature   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_encryption   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.connection_parameters_request   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.extended_reject_indication   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.peripheral_initiated_features_exchange   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_ping   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_data_packet_length_extension   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.ll_privacy   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.extended_scanner_filter_policies   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_2m_phy   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.stable_modulation_index_tx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.stable_modulation_index_rx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_coded_phy   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_extended_advertising   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_periodic_advertising   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.channel_selection_algorithm_2   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.le_power_class_1   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.min_number_of_used_channels   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.connection_cte_request   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.connection_cte_response   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.connectionless_cte_tx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.connectionless_cte_rx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.antenna_switching_tx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.antenna_switching_rx   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py LEFeatures.receiving_cte   1 1 0   0%
src/bluetooth_sig/types/advertising/features.py (no function)   80 0 0   100%
src/bluetooth_sig/types/advertising/flags.py (no function)   11 0 0   100%
src/bluetooth_sig/types/advertising/indoor_positioning.py IndoorPositioningData.decode   36 0 0   100%
src/bluetooth_sig/types/advertising/indoor_positioning.py (no function)   28 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py PDUType.is_extended_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py PDUType.is_legacy_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py PDUHeaderFlags.extract_bits   4 4 0   0%
src/bluetooth_sig/types/advertising/pdu.py PDUHeaderFlags.extract_pdu_type   5 5 0   0%
src/bluetooth_sig/types/advertising/pdu.py PDUHeaderFlags.extract_tx_add   1 1 0   0%
src/bluetooth_sig/types/advertising/pdu.py PDUHeaderFlags.extract_rx_add   1 1 0   0%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_extended_advertiser_address   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_extended_target_address   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_cte_info   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_advertising_data_info   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_auxiliary_pointer   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_sync_info   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_tx_power   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEExtendedHeader.has_additional_controller_data   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEAdvertisingPDU.is_extended_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEAdvertisingPDU.is_legacy_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py BLEAdvertisingPDU.pdu_name   1 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py (no function)   103 0 0   100%
src/bluetooth_sig/types/advertising/result.py AdvertisingData.is_extended_advertising   1 0 0   100%
src/bluetooth_sig/types/advertising/result.py AdvertisingData.total_payload_size   6 2 0   67%
src/bluetooth_sig/types/advertising/result.py AdvertisementData.manufacturer_data   1 1 0   0%
src/bluetooth_sig/types/advertising/result.py AdvertisementData.service_data   1 1 0   0%
src/bluetooth_sig/types/advertising/result.py AdvertisementData.local_name   1 1 0   0%
src/bluetooth_sig/types/advertising/result.py AdvertisementData.has_interpretation   1 1 0   0%
src/bluetooth_sig/types/advertising/result.py (no function)   28 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py ThreeDInformationData.association_notification   1 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py ThreeDInformationData.battery_level_reporting   1 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py ThreeDInformationData.send_battery_on_startup   1 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py ThreeDInformationData.factory_test_mode   1 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py ThreeDInformationData.decode   3 0 0   100%
src/bluetooth_sig/types/advertising/three_d_information.py (no function)   23 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py TransportBlock.role   1 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py TransportBlock.is_incomplete   1 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py TransportBlock.transport_state   1 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py TransportDiscoveryData.decode   12 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py (no function)   31 0 0   100%
src/bluetooth_sig/types/alert.py (no function)   44 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.from_category   8 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.category   1 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.subcategory   3 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.full_name   1 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.__int__   1 0 0   100%
src/bluetooth_sig/types/appearance.py AppearanceData.__format__   1 1 0   0%
src/bluetooth_sig/types/appearance.py (no function)   17 0 0   100%
src/bluetooth_sig/types/audio_context_type.py (no function)   15 0 0   100%
src/bluetooth_sig/types/base_types.py (no function)   7 0 0   100%
src/bluetooth_sig/types/battery.py BatteryChargeState.from_byte   4 4 0   0%
src/bluetooth_sig/types/battery.py BatteryChargeLevel.from_byte   4 4 0   0%
src/bluetooth_sig/types/battery.py BatteryChargingType.from_byte   4 4 0   0%
src/bluetooth_sig/types/battery.py (no function)   38 0 0   100%
src/bluetooth_sig/types/bss.py SplitHeader.from_byte   1 0 0   100%
src/bluetooth_sig/types/bss.py SplitHeader.to_byte   3 0 0   100%
src/bluetooth_sig/types/bss.py (no function)   21 0 0   100%
src/bluetooth_sig/types/company.py CompanyIdentifier.from_id   4 0 0   100%
src/bluetooth_sig/types/company.py CompanyIdentifier.__str__   1 1 0   0%
src/bluetooth_sig/types/company.py CompanyIdentifier.__repr__   1 1 0   0%
src/bluetooth_sig/types/company.py ManufacturerData.from_bytes   6 0 0   100%
src/bluetooth_sig/types/company.py ManufacturerData.from_id_and_payload   2 0 0   100%
src/bluetooth_sig/types/company.py ManufacturerData.to_bytes   1 1 0   0%
src/bluetooth_sig/types/company.py (no function)   19 0 0   100%
src/bluetooth_sig/types/context.py (no function)   19 0 0   100%
src/bluetooth_sig/types/data_types.py DateData.to_datetime   1 1 0   0%
src/bluetooth_sig/types/data_types.py ValidationAccumulator.__init__   2 0 0   100%
src/bluetooth_sig/types/data_types.py ValidationAccumulator.add_error   1 0 0   100%
src/bluetooth_sig/types/data_types.py ValidationAccumulator.add_warning   1 1 0   0%
src/bluetooth_sig/types/data_types.py ValidationAccumulator.valid   1 0 0   100%
src/bluetooth_sig/types/data_types.py (no function)   31 0 0   100%
src/bluetooth_sig/types/device_types.py ScanFilter._passes_address_filter   4 4 0   0%
src/bluetooth_sig/types/device_types.py ScanFilter._passes_name_filter   7 7 0   0%
src/bluetooth_sig/types/device_types.py ScanFilter._passes_rssi_filter   5 5 0   0%
src/bluetooth_sig/types/device_types.py ScanFilter._passes_service_uuid_filter   9 9 0   0%
src/bluetooth_sig/types/device_types.py ScanFilter.matches   10 10 0   0%
src/bluetooth_sig/types/device_types.py (no function)   41 0 0   100%
src/bluetooth_sig/types/ead.py EncryptedAdvertisingData.from_bytes   4 0 0   100%
src/bluetooth_sig/types/ead.py EADKeyMaterial.__post_init__   6 0 0   100%
src/bluetooth_sig/types/ead.py (no function)   32 0 0   100%
src/bluetooth_sig/types/gatt_enums.py AdjustReason.from_raw   4 1 0   75%
src/bluetooth_sig/types/gatt_enums.py (no function)   626 0 0   100%
src/bluetooth_sig/types/gatt_services.py characteristic   4 4 0   0%
src/bluetooth_sig/types/gatt_services.py (no function)   20 0 0   100%
src/bluetooth_sig/types/io.py to_parse_inputs   8 1 0   88%
src/bluetooth_sig/types/io.py (no function)   11 0 0   100%
src/bluetooth_sig/types/location.py (no function)   7 0 0   100%
src/bluetooth_sig/types/mesh.py MeshCapabilities.encode   1 1 0   0%
src/bluetooth_sig/types/mesh.py SecureNetworkBeacon.encode   10 10 0   0%
src/bluetooth_sig/types/mesh.py SecureNetworkBeacon.decode   9 9 0   0%
src/bluetooth_sig/types/mesh.py UnprovisionedDeviceBeacon.encode   7 7 0   0%
src/bluetooth_sig/types/mesh.py UnprovisionedDeviceBeacon.decode   7 7 0   0%
src/bluetooth_sig/types/mesh.py MeshMessage.decode   14 14 0   0%
src/bluetooth_sig/types/mesh.py ProvisioningBearerData.decode   11 11 0   0%
src/bluetooth_sig/types/mesh.py (no function)   88 0 0   100%
src/bluetooth_sig/types/peripheral_types.py CharacteristicDefinition.from_characteristic   6 0 0   100%
src/bluetooth_sig/types/peripheral_types.py (no function)   34 0 0   100%
src/bluetooth_sig/types/protocols.py CharacteristicProtocol._decode_value   0 0 1   100%
src/bluetooth_sig/types/protocols.py CharacteristicProtocol.parse_value   0 0 1   100%
src/bluetooth_sig/types/protocols.py CharacteristicProtocol.build_value   0 0 1   100%
src/bluetooth_sig/types/protocols.py CharacteristicProtocol._encode_value   0 0 1   100%
src/bluetooth_sig/types/protocols.py (no function)   7 0 0   100%
src/bluetooth_sig/types/registry/__init__.py (no function)   5 0 0   100%
src/bluetooth_sig/types/registry/ad_types.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/amp.py (no function)   6 6 0   0%
src/bluetooth_sig/types/registry/appearance_info.py AppearanceInfo.full_name   3 0 0   100%
src/bluetooth_sig/types/registry/appearance_info.py (no function)   11 0 0   100%
src/bluetooth_sig/types/registry/browse_group_identifiers.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/characteristic_uuids.py (no function)   5 5 0   0%
src/bluetooth_sig/types/registry/class_of_device.py ClassOfDeviceInfo.full_description   6 0 0   100%
src/bluetooth_sig/types/registry/class_of_device.py (no function)   19 0 0   100%
src/bluetooth_sig/types/registry/coding_format.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.data_type   1 0 0   100%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.field_size   1 0 0   100%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.unit_id   1 0 0   100%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.unit_symbol   1 0 0   100%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.unit_name   1 1 0   0%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.base_unit   1 1 0   0%
src/bluetooth_sig/types/registry/common.py CharacteristicSpec.resolution_text   1 0 0   100%
src/bluetooth_sig/types/registry/common.py generate_basic_aliases   8 0 0   100%
src/bluetooth_sig/types/registry/common.py ValueNameInfo.bit   1 0 0   100%
src/bluetooth_sig/types/registry/common.py NameValueInfo.psm   1 1 0   0%
src/bluetooth_sig/types/registry/common.py (no function)   65 0 1   100%
src/bluetooth_sig/types/registry/company_identifiers.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/core_version.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/declarations.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/descriptor_types.py DescriptorData.name   1 1 0   0%
src/bluetooth_sig/types/registry/descriptor_types.py DescriptorData.uuid   1 1 0   0%
src/bluetooth_sig/types/registry/descriptor_types.py (no function)   18 0 0   100%
src/bluetooth_sig/types/registry/descriptors.py (no function)   5 5 0   0%
src/bluetooth_sig/types/registry/diacs.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/dp_property.py (no function)   10 10 0   0%
src/bluetooth_sig/types/registry/dp_property_groups.py (no function)   12 12 0   0%
src/bluetooth_sig/types/registry/dp_property_ids.py (no function)   10 10 0   0%
src/bluetooth_sig/types/registry/formattypes.py (no function)   8 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py _compute_python_name   6 6 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py _compute_unit_id   5 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py _resolve_field_unit_symbol   5 5 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.python_name   1 1 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.is_optional   1 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.fixed_size   9 1 0   89%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.unit_id   1 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.unit_symbol   1 1 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.resolution   6 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.value_range   14 2 0   86%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.special_values   19 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.presence_condition   7 7 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py FieldSpec.presence_flag_bit   4 4 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py GssCharacteristicSpec.get_field   5 5 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py GssCharacteristicSpec.primary_field   4 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py GssCharacteristicSpec.has_multiple_units   5 5 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py GssCharacteristicSpec.field_count   1 1 0   0%
src/bluetooth_sig/types/registry/gss_characteristic.py (no function)   52 0 0   100%
src/bluetooth_sig/types/registry/member_uuids.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/mesh_profile_uuids.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/mws_channel_type.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/namespace.py (no function)   6 0 0   100%
src/bluetooth_sig/types/registry/namespaces.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/object_types.py (no function)   4 0 0   100%
src/bluetooth_sig/types/registry/pcm_data_format.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/profile_types.py (no function)   16 0 0   100%
src/bluetooth_sig/types/registry/protocol_identifiers.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/psm.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/sdo_uuids.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/sdp_base_uuid.py (no function)   5 5 0   0%
src/bluetooth_sig/types/registry/service_class.py (no function)   3 0 0   100%
src/bluetooth_sig/types/registry/service_uuids.py (no function)   5 5 0   0%
src/bluetooth_sig/types/registry/transport_layers.py (no function)   3 3 0   0%
src/bluetooth_sig/types/registry/units.py UnitInfo.readable_name   6 0 0   100%
src/bluetooth_sig/types/registry/units.py (no function)   6 0 0   100%
src/bluetooth_sig/types/registry/uri_schemes.py (no function)   3 0 0   100%
src/bluetooth_sig/types/scan_interval_window.py ScanIntervalWindowData.__post_init__   6 0 0   100%
src/bluetooth_sig/types/scan_interval_window.py ScanIntervalWindowData.scan_interval_ms   1 0 0   100%
src/bluetooth_sig/types/scan_interval_window.py ScanIntervalWindowData.scan_window_ms   1 0 0   100%
src/bluetooth_sig/types/scan_interval_window.py (no function)   16 0 0   100%
src/bluetooth_sig/types/special_values.py SpecialValueRule.to_result   1 0 0   100%
src/bluetooth_sig/types/special_values.py SpecialValueResult.effective_value   3 3 0   0%
src/bluetooth_sig/types/special_values.py (no function)   17 0 0   100%
src/bluetooth_sig/types/units.py classify_special_value   12 0 0   100%
src/bluetooth_sig/types/units.py (no function)   50 0 0   100%
src/bluetooth_sig/types/uri.py URIData.scheme_name   1 0 0   100%
src/bluetooth_sig/types/uri.py URIData.is_known_scheme   1 0 0   100%
src/bluetooth_sig/types/uri.py URIData.from_raw_data   11 0 0   100%
src/bluetooth_sig/types/uri.py URIData.from_plain_uri   1 0 0   100%
src/bluetooth_sig/types/uri.py (no function)   21 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__init__   8 1 0   88%
src/bluetooth_sig/types/uuid.py BluetoothUUID._normalize_uuid   14 2 0   86%
src/bluetooth_sig/types/uuid.py BluetoothUUID._normalize_uuid_from_int   12 2 0   83%
src/bluetooth_sig/types/uuid.py BluetoothUUID._is_valid_normalized_uuid   2 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.normalized   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.is_short   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.is_full   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.short_form   5 2 0   60%
src/bluetooth_sig/types/uuid.py BluetoothUUID.full_form   5 3 0   40%
src/bluetooth_sig/types/uuid.py BluetoothUUID.dashed_form   2 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.int_value   1 1 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.to_bytes   2 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.matches   3 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__str__   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__repr__   1 1 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__eq__   3 1 0   67%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__hash__   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__lt__   3 3 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__le__   1 1 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__gt__   3 3 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__ge__   1 1 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.__len__   1 0 0   100%
src/bluetooth_sig/types/uuid.py BluetoothUUID.is_valid_for_custom_characteristic   1 1 0   0%
src/bluetooth_sig/types/uuid.py BluetoothUUID.is_sig_characteristic   11 3 0   73%
src/bluetooth_sig/types/uuid.py BluetoothUUID.is_sig_service   11 4 0   64%
src/bluetooth_sig/types/uuid.py (no function)   55 0 0   100%
src/bluetooth_sig/utils/__init__.py (no function)   3 0 0   100%
src/bluetooth_sig/utils/prewarm.py prewarm_registries   4 0 0   100%
src/bluetooth_sig/utils/prewarm.py (no function)   5 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py _to_snake_case   2 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py _iter_subclasses   11 1 0   91%
src/bluetooth_sig/utils/prewarm_catalog.py _import_registry_modules   6 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py _build_discovered_registry_loaders   11 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py _build_outlier_loaders   1 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py _cached_prewarm_loaders   1 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py get_prewarm_loaders   1 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py (no function)   20 0 0   100%
src/bluetooth_sig/utils/profiling.py TimingResult.__str__   1 0 0   100%
src/bluetooth_sig/utils/profiling.py ProfilingSession.add_result   1 0 0   100%
src/bluetooth_sig/utils/profiling.py ProfilingSession.__str__   5 0 0   100%
src/bluetooth_sig/utils/profiling.py timer   5 0 0   100%
src/bluetooth_sig/utils/profiling.py benchmark_function   14 0 0   100%
src/bluetooth_sig/utils/profiling.py compare_implementations   4 0 0   100%
src/bluetooth_sig/utils/profiling.py format_comparison   19 0 0   100%
src/bluetooth_sig/utils/profiling.py (no function)   26 0 0   100%
src/bluetooth_sig/utils/rssi_utils.py get_rssi_quality   11 11 0   0%
src/bluetooth_sig/utils/rssi_utils.py (no function)   7 0 0   100%
src/bluetooth_sig/utils/values.py is_struct_value   1 0 0   100%
src/bluetooth_sig/utils/values.py to_primitive   13 0 0   100%
src/bluetooth_sig/utils/values.py (no function)   6 0 0   100%
Total     26841 2552 253   90%

No items found using the specified filter.