Coverage report: 90%

Files Functions Classes

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

File   statements missing excluded   coverage
src/bluetooth_sig/__init__.py   16 3 0   81%
src/bluetooth_sig/_version.py   11 0 0   100%
src/bluetooth_sig/advertising/__init__.py   14 0 0   100%
src/bluetooth_sig/advertising/base.py   48 1 1   98%
src/bluetooth_sig/advertising/ead_decryptor.py   99 8 0   92%
src/bluetooth_sig/advertising/encryption.py   54 0 4   100%
src/bluetooth_sig/advertising/exceptions.py   49 0 0   100%
src/bluetooth_sig/advertising/pdu_parser.py   374 172 0   54%
src/bluetooth_sig/advertising/registry.py   119 32 0   73%
src/bluetooth_sig/advertising/service_data_parser.py   36 0 0   100%
src/bluetooth_sig/advertising/service_resolver.py   30 0 0   100%
src/bluetooth_sig/advertising/sig_characteristic_interpreter.py   37 0 0   100%
src/bluetooth_sig/advertising/state.py   18 0 0   100%
src/bluetooth_sig/core/__init__.py   4 0 0   100%
src/bluetooth_sig/core/async_context.py   33 0 13   100%
src/bluetooth_sig/core/encoder.py   127 27 16   79%
src/bluetooth_sig/core/parser.py   129 10 15   92%
src/bluetooth_sig/core/query.py   133 20 0   85%
src/bluetooth_sig/core/registration.py   19 0 0   100%
src/bluetooth_sig/core/service_manager.py   34 15 0   56%
src/bluetooth_sig/core/translator.py   101 1 62   99%
src/bluetooth_sig/device/__init__.py   10 0 0   100%
src/bluetooth_sig/device/advertising.py   128 55 44   57%
src/bluetooth_sig/device/characteristic_io.py   109 33 43   70%
src/bluetooth_sig/device/client.py   72 6 0   92%
src/bluetooth_sig/device/connected.py   160 70 0   56%
src/bluetooth_sig/device/dependency_resolver.py   62 34 0   45%
src/bluetooth_sig/device/device.py   192 42 43   78%
src/bluetooth_sig/device/peripheral.py   112 27 0   76%
src/bluetooth_sig/device/peripheral_device.py   91 0 0   100%
src/bluetooth_sig/device/protocols.py   17 0 0   100%
src/bluetooth_sig/gatt/__init__.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/__init__.py   14 2 0   86%
src/bluetooth_sig/gatt/characteristics/_export_map.py   2 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_3d.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/acceleration_detection_status.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_control_point.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_in.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_indicate.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_data_out_notify.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/acs_status.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/active_preset_index.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/activity_goal.py   121 37 0   69%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_interval.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_minimum_length.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_minimum_transmit_count.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_phy.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/advertising_constant_tone_extension_transmit_duration.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_heart_rate_lower_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_heart_rate_upper_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aerobic_threshold.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/age.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/aggregate.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_category_id_bit_mask.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_level.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_notification_control_point.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/alert_status.py   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/altitude.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/ammonia_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_heart_rate_lower_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_heart_rate_upper_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/anaerobic_threshold.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/analog.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/ap_sync_key_material.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_energy_32.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_power.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_wind_direction.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/apparent_wind_speed.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/appearance.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/ase_control_point.py   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_control_point.py   36 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_description.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_state.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_status.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_input_type.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_location.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/audio_output_description.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/available_audio_contexts.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/average_current.py   35 3 0   91%
src/bluetooth_sig/gatt/characteristics/average_voltage.py   35 3 0   91%
src/bluetooth_sig/gatt/characteristics/barometric_pressure_trend.py   26 4 0   85%
src/bluetooth_sig/gatt/characteristics/base.py   332 52 0   84%
src/bluetooth_sig/gatt/characteristics/battery_critical_status.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_energy_status.py   47 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_health_information.py   56 2 0   96%
src/bluetooth_sig/gatt/characteristics/battery_health_status.py   74 3 0   96%
src/bluetooth_sig/gatt/characteristics/battery_information.py   135 3 0   98%
src/bluetooth_sig/gatt/characteristics/battery_level.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_level_status.py   121 0 0   100%
src/bluetooth_sig/gatt/characteristics/battery_time_status.py   63 3 0   95%
src/bluetooth_sig/gatt/characteristics/bearer_list_current_calls.py   60 1 0   98%
src/bluetooth_sig/gatt/characteristics/bearer_provider_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_signal_strength.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_signal_strength_reporting_interval.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_technology.py   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_uci.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/bearer_uri_schemes_supported_list.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/bgr_features.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/bgs_features.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_common.py   88 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_feature.py   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/blood_pressure_measurement.py   41 2 0   95%
src/bluetooth_sig/gatt/characteristics/blood_pressure_record.py   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/bluetooth_sig_data.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/body_composition_feature.py   105 8 0   92%
src/bluetooth_sig/gatt/characteristics/body_composition_measurement.py   278 48 0   83%
src/bluetooth_sig/gatt/characteristics/body_sensor_location.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_control_point.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/bond_management_feature.py   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/boolean.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_input_report.py   37 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_keyboard_output_report.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/boot_mouse_input_report.py   36 1 0   97%
src/bluetooth_sig/gatt/characteristics/br_edr_handover_data.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_audio_scan_control_point.py   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/broadcast_receive_state.py   58 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_control_point.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/bss_response.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_control_point.py   43 4 0   91%
src/bluetooth_sig/gatt/characteristics/call_control_point_optional_opcodes.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_friendly_name.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/call_state.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/caloric_intake.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/carbon_monoxide_concentration.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_instantaneous_data.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/cardiorespiratory_activity_summary_data.py   51 0 0   100%
src/bluetooth_sig/gatt/characteristics/central_address_resolution.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_feature.py   67 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_measurement.py   121 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_run_time.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_session_start_time.py   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/cgm_specific_ops_control_point.py   60 1 0   98%
src/bluetooth_sig/gatt/characteristics/cgm_status.py   52 0 0   100%
src/bluetooth_sig/gatt/characteristics/characteristic_meta.py   77 5 0   94%
src/bluetooth_sig/gatt/characteristics/chromatic_distance_from_planckian.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinate.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/chromaticity_coordinates.py   34 2 0   94%
src/bluetooth_sig/gatt/characteristics/chromaticity_in_cct_and_duv_values.py   39 4 0   90%
src/bluetooth_sig/gatt/characteristics/chromaticity_tolerance.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cie_13_3_1995_color_rendering_index.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/client_supported_features.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/co2_concentration.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/coefficient.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/constant_tone_extension_enable.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/contact_status_8.py   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/content_control_id.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/context_lookup.py   35 2 0   94%
src/bluetooth_sig/gatt/characteristics/cooking_common.py   85 2 0   98%
src/bluetooth_sig/gatt/characteristics/cooking_sensor_common.py   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_step_status.py   40 1 0   98%
src/bluetooth_sig/gatt/characteristics/cooking_temperature.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_actual_cooking_conditions.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_capabilities.py   85 2 0   98%
src/bluetooth_sig/gatt/characteristics/cooking_zone_desired_cooking_conditions.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/cooking_zone_perceived_power.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_description.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_aggregate.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/cookware_sensor_data.py   42 1 0   98%
src/bluetooth_sig/gatt/characteristics/coordinated_set_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/coordinated_set_size.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/correlated_color_temperature.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/cosine_of_the_angle.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/count_16.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/count_24.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/country_code.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/cross_trainer_data.py   252 42 0   83%
src/bluetooth_sig/gatt/characteristics/csc_feature.py   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/csc_measurement.py   100 14 0   86%
src/bluetooth_sig/gatt/characteristics/current_group_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_time.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/current_track_segments_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/custom.py   45 5 0   89%
src/bluetooth_sig/gatt/characteristics/cycling_power_control_point.py   138 15 0   89%
src/bluetooth_sig/gatt/characteristics/cycling_power_feature.py   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/cycling_power_measurement.py   231 49 0   79%
src/bluetooth_sig/gatt/characteristics/cycling_power_vector.py   78 4 0   95%
src/bluetooth_sig/gatt/characteristics/database_change_increment.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/database_hash.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_birth.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_of_threshold_assessment.py   30 3 0   90%
src/bluetooth_sig/gatt/characteristics/date_time.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/date_utc.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_date_time.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/day_of_week.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/descriptor_mixin.py   43 8 0   81%
src/bluetooth_sig/gatt/characteristics/descriptor_value_changed.py   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_info.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_name.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time.py   64 4 0   94%
src/bluetooth_sig/gatt/characteristics/device_time_control_point.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_feature.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/device_time_parameters.py   46 1 0   98%
src/bluetooth_sig/gatt/characteristics/device_wearing_position.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/dew_point.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/digital.py   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/door_window_status.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/dst_offset.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/elapsed_time.py   65 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/electric_current_range.py   36 5 0   86%
src/bluetooth_sig/gatt/characteristics/electric_current_specification.py   38 3 0   92%
src/bluetooth_sig/gatt/characteristics/electric_current_statistics.py   62 5 0   92%
src/bluetooth_sig/gatt/characteristics/elevation.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/email_address.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_id.py   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/emergency_text.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/encrypted_data_key_material.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy_32.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/energy_in_a_period_of_day.py   37 2 0   95%
src/bluetooth_sig/gatt/characteristics/enhanced_blood_pressure_measurement.py   95 0 0   100%
src/bluetooth_sig/gatt/characteristics/enhanced_intermediate_cuff_pressure.py   78 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_address.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_control_point.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_current_absolute_time.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_display_information.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_image_information.py   37 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_led_information.py   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_response_key_material.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/esl_sensor_information.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/estimated_service_date.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/event_statistics.py   55 4 0   93%
src/bluetooth_sig/gatt/characteristics/exact_time_256.py   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/fat_burn_heart_rate_lower_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/fat_burn_heart_rate_upper_limit.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/firmware_revision_string.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/first_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/first_use_date.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_common.py   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/fitness_machine_control_point.py   70 1 0   99%
src/bluetooth_sig/gatt/characteristics/fitness_machine_feature.py   57 1 0   98%
src/bluetooth_sig/gatt/characteristics/fitness_machine_status.py   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/five_zone_heart_rate_limits.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_16.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_24.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_36.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_64.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/fixed_string_8.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/floor_number.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/force.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/four_zone_heart_rate_limits.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/gain_settings_attribute.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/gender.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_instantaneous_data.py   47 0 0   100%
src/bluetooth_sig/gatt/characteristics/general_activity_summary_data.py   60 0 0   100%
src/bluetooth_sig/gatt/characteristics/generic_level.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ghs_control_point.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/global_trade_item_number.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/glucose_feature.py   99 11 0   89%
src/bluetooth_sig/gatt/characteristics/glucose_measurement.py   157 31 0   80%
src/bluetooth_sig/gatt/characteristics/glucose_measurement_context.py   243 32 0   87%
src/bluetooth_sig/gatt/characteristics/gmap_role.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/gust_factor.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/handedness.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/hardware_revision_string.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/health_sensor_features.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_features.py   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/hearing_aid_preset_control_point.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_control_point.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_max.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/heart_rate_measurement.py   101 8 0   92%
src/bluetooth_sig/gatt/characteristics/heat_index.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/height.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_control_point.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/hid_information.py   37 2 0   95%
src/bluetooth_sig/gatt/characteristics/hid_iso_properties.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_intensity_exercise_threshold.py   51 6 0   88%
src/bluetooth_sig/gatt/characteristics/high_resolution_height.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_temperature.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/high_voltage.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/hip_circumference.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_control_point.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_entity_body.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_headers.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/http_status_code.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/https_security.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/humidity.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/humidity_8.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_annunciation_status.py   78 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_control_point.py   84 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_command_data.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_features.py   46 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_history_data.py   61 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_record_access_control_point.py   47 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status.py   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_changed.py   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/idd_status_reader_control_point.py   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/ieee_11073_20601_regulatory_certification_data_list.py   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/illuminance_16.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_control.py   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_historical_data.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/imd_status.py   30 0 0   100%
src/bluetooth_sig/gatt/characteristics/imds_descriptor_value_changed.py   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/incoming_call_target_bearer_uri.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/indoor_bike_data.py   196 15 0   92%
src/bluetooth_sig/gatt/characteristics/indoor_positioning_configuration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/installed_location.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/intermediate_cuff_pressure.py   29 2 0   93%
src/bluetooth_sig/gatt/characteristics/intermediate_temperature.py   52 5 0   90%
src/bluetooth_sig/gatt/characteristics/irradiance.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/kitchen_appliance_airflow.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/language.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/last_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/latitude.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_gatt_security_levels.py   48 0 0   100%
src/bluetooth_sig/gatt/characteristics/le_hid_operation_mode.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/length.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/life_cycle_data.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_distribution.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_output.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/light_source_type.py   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/linear_position.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/live_health_observations.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/ln_control_point.py   134 28 0   79%
src/bluetooth_sig/gatt/characteristics/ln_feature.py   59 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_east_coordinate.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_north_coordinate.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/local_time_information.py   71 6 0   92%
src/bluetooth_sig/gatt/characteristics/location_and_speed.py   167 17 0   90%
src/bluetooth_sig/gatt/characteristics/location_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/longitude.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_efficacy.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_energy.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_exposure.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/luminous_flux_range.py   32 2 0   94%
src/bluetooth_sig/gatt/characteristics/luminous_intensity.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_declination.py   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_2d.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/magnetic_flux_density_3d.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/manufacturer_name_string.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/mass_flow.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/maximum_recommended_heart_rate.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/measurement_interval.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point.py   50 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_control_point_opcodes_supported.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_icon_url.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_player_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/media_state.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_in.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_provisioning_data_out.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_in.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/mesh_proxy_data_out.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/methane_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/middle_name.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/model_number_string.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/mute.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/navigation.py   95 7 0   93%
src/bluetooth_sig/gatt/characteristics/new_alert.py   36 1 0   97%
src/bluetooth_sig/gatt/characteristics/next_track_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/nitrogen_dioxide_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/noise.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/non_methane_voc_concentration.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_action_control_point.py   42 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_changed.py   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_first_created.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_last_modified.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_control_point.py   52 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_list_filter.py   34 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_name.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_properties.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_size.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/object_type.py   32 10 0   69%
src/bluetooth_sig/gatt/characteristics/observation_schedule_changed.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/on_demand_ranging_data.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/ots_feature.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/ozone_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/parent_group_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/perceived_lightness.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/percentage_8.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/percentage_8_steps.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_preferred_connection_parameters.py   27 0 0   100%
src/bluetooth_sig/gatt/characteristics/peripheral_privacy_flag.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_current_session.py   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_control_point.py   35 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_monitor_features.py   68 0 0   100%
src/bluetooth_sig/gatt/characteristics/physical_activity_session_descriptor.py   48 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/__init__.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/encode_pipeline.py   86 26 0   70%
src/bluetooth_sig/gatt/characteristics/pipeline/parse_pipeline.py   120 0 0   100%
src/bluetooth_sig/gatt/characteristics/pipeline/validation.py   81 9 0   89%
src/bluetooth_sig/gatt/characteristics/playback_speed.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/playing_order.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/playing_orders_supported.py   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_continuous_measurement.py   148 32 0   78%
src/bluetooth_sig/gatt/characteristics/plx_features.py   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/plx_spot_check_measurement.py   103 9 0   91%
src/bluetooth_sig/gatt/characteristics/pm10_concentration.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pm1_concentration.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pm25_concentration.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/pnp_id.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/pollen_concentration.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/position_quality.py   91 4 0   96%
src/bluetooth_sig/gatt/characteristics/power.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/power_specification.py   44 2 0   95%
src/bluetooth_sig/gatt/characteristics/precise_acceleration_3d.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/preferred_units.py   45 0 0   100%
src/bluetooth_sig/gatt/characteristics/pressure.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/protocol_mode.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/pushbutton_status_8.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/rainfall.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/ranging_data_overwritten.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ranging_data_ready.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_control_point.py   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/ras_features.py   11 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_feature.py   52 0 0   100%
src/bluetooth_sig/gatt/characteristics/rc_settings.py   47 0 0   100%
src/bluetooth_sig/gatt/characteristics/real_time_ranging_data.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_control.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/recipe_parameters.py   125 9 0   93%
src/bluetooth_sig/gatt/characteristics/reconnection_address.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/reconnection_configuration_control_point.py   49 0 0   100%
src/bluetooth_sig/gatt/characteristics/record_access_control_point.py   51 0 0   100%
src/bluetooth_sig/gatt/characteristics/reference_time_information.py   52 0 0   100%
src/bluetooth_sig/gatt/characteristics/registered_user.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/registry.py   135 26 0   81%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_correlated_color_temperature_range.py   41 5 0   88%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_current_range.py   45 5 0   89%
src/bluetooth_sig/gatt/characteristics/relative_runtime_in_a_generic_level_range.py   41 5 0   88%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_period_of_day.py   41 3 0   93%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_temperature_range.py   42 4 0   90%
src/bluetooth_sig/gatt/characteristics/relative_value_in_a_voltage_range.py   46 5 0   89%
src/bluetooth_sig/gatt/characteristics/relative_value_in_an_illuminance_range.py   46 5 0   89%
src/bluetooth_sig/gatt/characteristics/report.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/report_map.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/resolvable_private_address_only.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/resting_heart_rate.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_control_point.py   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/ringer_setting.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/role_classifier.py   66 1 0   98%
src/bluetooth_sig/gatt/characteristics/rotational_speed.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/rower_data.py   199 16 0   92%
src/bluetooth_sig/gatt/characteristics/rsc_feature.py   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/rsc_measurement.py   90 12 0   87%
src/bluetooth_sig/gatt/characteristics/sc_control_point.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_interval_window.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/scan_refresh.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_control_point.py   40 0 0   100%
src/bluetooth_sig/gatt/characteristics/search_results_object_id.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/sedentary_interval_notification.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/seeking_speed.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sensor_location.py   24 0 0   100%
src/bluetooth_sig/gatt/characteristics/serial_number_string.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/server_supported_features.py   21 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_changed.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/service_cycle_data.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_identity_resolving_key.py   23 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_member_lock.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/set_member_rank.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_ase.py   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_audio_locations.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/sink_pac.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_instantaneous_data.py   48 0 0   100%
src/bluetooth_sig/gatt/characteristics/sleep_activity_summary_data.py   43 0 0   100%
src/bluetooth_sig/gatt/characteristics/software_revision_string.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_ase.py   33 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_audio_locations.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/source_pac.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/sport_type_for_aerobic_and_anaerobic_thresholds.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/stair_climber_data.py   147 12 0   92%
src/bluetooth_sig/gatt/characteristics/status_flags.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/step_climber_data.py   142 12 0   92%
src/bluetooth_sig/gatt/characteristics/step_counter_activity_summary_data.py   39 0 0   100%
src/bluetooth_sig/gatt/characteristics/stored_health_observations.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/stride_length.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/sulfur_dioxide_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/sulfur_hexafluoride_concentration.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_audio_contexts.py   20 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_heart_rate_range.py   32 1 0   97%
src/bluetooth_sig/gatt/characteristics/supported_inclination_range.py   44 4 0   91%
src/bluetooth_sig/gatt/characteristics/supported_new_alert_category.py   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/supported_power_range.py   41 8 0   80%
src/bluetooth_sig/gatt/characteristics/supported_resistance_level_range.py   40 2 0   95%
src/bluetooth_sig/gatt/characteristics/supported_speed_range.py   40 2 0   95%
src/bluetooth_sig/gatt/characteristics/supported_unread_alert_category.py   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/system_id.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/tds_control_point.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/temperature_8_in_a_period_of_day.py   43 4 0   91%
src/bluetooth_sig/gatt/characteristics/temperature_8_statistics.py   61 3 0   95%
src/bluetooth_sig/gatt/characteristics/temperature_measurement.py   56 1 0   98%
src/bluetooth_sig/gatt/characteristics/temperature_range.py   36 3 0   92%
src/bluetooth_sig/gatt/characteristics/temperature_statistics.py   60 3 0   95%
src/bluetooth_sig/gatt/characteristics/temperature_type.py   17 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/__init__.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/base.py   43 1 0   98%
src/bluetooth_sig/gatt/characteristics/templates/composite.py   77 27 0   65%
src/bluetooth_sig/gatt/characteristics/templates/data_structures.py   16 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/domain.py   65 18 0   72%
src/bluetooth_sig/gatt/characteristics/templates/enum.py   60 0 0   100%
src/bluetooth_sig/gatt/characteristics/templates/epoch_date.py   24 2 0   92%
src/bluetooth_sig/gatt/characteristics/templates/flag.py   46 2 0   96%
src/bluetooth_sig/gatt/characteristics/templates/ieee_float.py   38 3 0   92%
src/bluetooth_sig/gatt/characteristics/templates/numeric.py   151 37 0   75%
src/bluetooth_sig/gatt/characteristics/templates/scaled.py   146 21 0   86%
src/bluetooth_sig/gatt/characteristics/templates/string.py   66 3 0   95%
src/bluetooth_sig/gatt/characteristics/templates/time_duration.py   68 4 0   94%
src/bluetooth_sig/gatt/characteristics/termination_reason.py   31 0 0   100%
src/bluetooth_sig/gatt/characteristics/three_zone_heart_rate_limits.py   18 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_accuracy.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_change_log_data.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_decihour_8.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_exponential_8.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_hour_24.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_millisecond_24.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_16.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_32.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_second_8.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_source.py   15 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_control_point.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_update_state.py   29 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_with_dst.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/time_zone.py   51 11 0   78%
src/bluetooth_sig/gatt/characteristics/tmap_role.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/torque.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_changed.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_duration.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_position.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/track_title.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/training_status.py   50 0 0   100%
src/bluetooth_sig/gatt/characteristics/treadmill_data.py   221 18 0   92%
src/bluetooth_sig/gatt/characteristics/true_wind_direction.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/true_wind_speed.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/two_zone_heart_rate_limits.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/tx_power_level.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/udi_for_medical_devices.py   56 0 0   100%
src/bluetooth_sig/gatt/characteristics/ugg_features.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/ugt_features.py   14 0 0   100%
src/bluetooth_sig/gatt/characteristics/uncertainty.py   25 0 0   100%
src/bluetooth_sig/gatt/characteristics/unknown.py   22 4 0   82%
src/bluetooth_sig/gatt/characteristics/unread_alert_status.py   22 0 0   100%
src/bluetooth_sig/gatt/characteristics/uri.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_control_point.py   28 0 0   100%
src/bluetooth_sig/gatt/characteristics/user_index.py   7 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils.py   7 7 0   0%
src/bluetooth_sig/gatt/characteristics/utils/__init__.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/bit_field_utils.py   183 5 0   97%
src/bluetooth_sig/gatt/characteristics/utils/data_parser.py   104 7 0   93%
src/bluetooth_sig/gatt/characteristics/utils/data_validator.py   44 0 0   100%
src/bluetooth_sig/gatt/characteristics/utils/debug_utils.py   78 22 0   72%
src/bluetooth_sig/gatt/characteristics/utils/extractors.py   168 16 0   90%
src/bluetooth_sig/gatt/characteristics/utils/ieee11073_parser.py   169 8 0   95%
src/bluetooth_sig/gatt/characteristics/utils/parse_trace.py   13 6 0   54%
src/bluetooth_sig/gatt/characteristics/utils/translators.py   87 19 0   78%
src/bluetooth_sig/gatt/characteristics/uv_index.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/vo2_max.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/voc_concentration.py   6 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_name.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_service_control_point.py   54 1 0   98%
src/bluetooth_sig/gatt/characteristics/voice_assistant_session_flag.py   12 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_session_state.py   13 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_supported_features.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_supported_languages.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/voice_assistant_uuid.py   10 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage.py   8 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_frequency.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/voltage_specification.py   40 4 0   90%
src/bluetooth_sig/gatt/characteristics/voltage_statistics.py   64 6 0   91%
src/bluetooth_sig/gatt/characteristics/volume_control_point.py   38 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_flags.py   9 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_flow.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_control_point.py   32 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_offset_state.py   19 0 0   100%
src/bluetooth_sig/gatt/characteristics/volume_state.py   26 0 0   100%
src/bluetooth_sig/gatt/characteristics/waist_circumference.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/weight_measurement.py   138 14 0   90%
src/bluetooth_sig/gatt/characteristics/weight_scale_feature.py   78 9 0   88%
src/bluetooth_sig/gatt/characteristics/wind_chill.py   5 0 0   100%
src/bluetooth_sig/gatt/characteristics/work_cycle_data.py   12 0 0   100%
src/bluetooth_sig/gatt/constants.py   61 0 0   100%
src/bluetooth_sig/gatt/context.py   3 0 0   100%
src/bluetooth_sig/gatt/descriptor_utils.py   59 35 0   41%
src/bluetooth_sig/gatt/descriptors/__init__.py   14 3 0   79%
src/bluetooth_sig/gatt/descriptors/_export_map.py   2 0 0   100%
src/bluetooth_sig/gatt/descriptors/base.py   66 8 7   88%
src/bluetooth_sig/gatt/descriptors/cccd.py   42 8 0   81%
src/bluetooth_sig/gatt/descriptors/characteristic_aggregate_format.py   26 6 0   77%
src/bluetooth_sig/gatt/descriptors/characteristic_extended_properties.py   28 6 0   79%
src/bluetooth_sig/gatt/descriptors/characteristic_presentation_format.py   109 9 0   92%
src/bluetooth_sig/gatt/descriptors/characteristic_user_description.py   19 2 0   89%
src/bluetooth_sig/gatt/descriptors/complete_br_edr_transport_block_data.py   16 4 0   75%
src/bluetooth_sig/gatt/descriptors/cooking_sensor_info.py   63 3 0   95%
src/bluetooth_sig/gatt/descriptors/cooking_trigger_setting.py   28 2 0   93%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_configuration.py   36 8 0   78%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_measurement.py   32 12 0   62%
src/bluetooth_sig/gatt/descriptors/environmental_sensing_trigger_setting.py   20 6 0   70%
src/bluetooth_sig/gatt/descriptors/external_report_reference.py   17 4 0   76%
src/bluetooth_sig/gatt/descriptors/imd_trigger_setting.py   17 4 0   76%
src/bluetooth_sig/gatt/descriptors/manufacturer_limits.py   25 8 0   68%
src/bluetooth_sig/gatt/descriptors/measurement_description.py   19 4 0   79%
src/bluetooth_sig/gatt/descriptors/number_of_digitals.py   19 4 0   79%
src/bluetooth_sig/gatt/descriptors/observation_schedule.py   15 4 0   73%
src/bluetooth_sig/gatt/descriptors/process_tolerances.py   22 6 0   73%
src/bluetooth_sig/gatt/descriptors/registry.py   63 5 0   92%
src/bluetooth_sig/gatt/descriptors/report_reference.py   31 9 0   71%
src/bluetooth_sig/gatt/descriptors/server_characteristic_configuration.py   27 6 0   78%
src/bluetooth_sig/gatt/descriptors/time_trigger_setting.py   17 4 0   76%
src/bluetooth_sig/gatt/descriptors/valid_range.py   17 2 0   88%
src/bluetooth_sig/gatt/descriptors/valid_range_and_accuracy.py   21 4 0   81%
src/bluetooth_sig/gatt/descriptors/value_trigger_setting.py   35 8 0   77%
src/bluetooth_sig/gatt/exceptions.py   153 9 0   94%
src/bluetooth_sig/gatt/lazy_exports.py   12 0 0   100%
src/bluetooth_sig/gatt/registry_utils.py   63 3 0   95%
src/bluetooth_sig/gatt/resolver.py   115 4 0   97%
src/bluetooth_sig/gatt/services/__init__.py   14 3 0   79%
src/bluetooth_sig/gatt/services/_export_map.py   2 0 0   100%
src/bluetooth_sig/gatt/services/alert_notification.py   6 0 0   100%
src/bluetooth_sig/gatt/services/audio_input_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/audio_stream_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/authorization_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/automation_io.py   7 0 0   100%
src/bluetooth_sig/gatt/services/base.py   327 58 0   82%
src/bluetooth_sig/gatt/services/basic_audio_announcement.py   6 0 0   100%
src/bluetooth_sig/gatt/services/battery_service.py   6 0 0   100%
src/bluetooth_sig/gatt/services/binary_sensor.py   6 0 0   100%
src/bluetooth_sig/gatt/services/blood_pressure.py   7 0 0   100%
src/bluetooth_sig/gatt/services/body_composition.py   6 0 0   100%
src/bluetooth_sig/gatt/services/bond_management.py   6 0 0   100%
src/bluetooth_sig/gatt/services/broadcast_audio_announcement.py   6 0 0   100%
src/bluetooth_sig/gatt/services/broadcast_audio_scan.py   6 0 0   100%
src/bluetooth_sig/gatt/services/common_audio.py   6 0 0   100%
src/bluetooth_sig/gatt/services/constant_tone_extension.py   6 0 0   100%
src/bluetooth_sig/gatt/services/continuous_glucose_monitoring.py   6 0 0   100%
src/bluetooth_sig/gatt/services/cookware.py   6 0 0   100%
src/bluetooth_sig/gatt/services/coordinated_set_identification.py   6 0 0   100%
src/bluetooth_sig/gatt/services/current_time_service.py   6 0 0   100%
src/bluetooth_sig/gatt/services/custom.py   29 4 0   86%
src/bluetooth_sig/gatt/services/cycling_power.py   6 0 0   100%
src/bluetooth_sig/gatt/services/cycling_speed_and_cadence.py   6 0 0   100%
src/bluetooth_sig/gatt/services/device_information.py   6 0 0   100%
src/bluetooth_sig/gatt/services/device_time.py   6 0 0   100%
src/bluetooth_sig/gatt/services/elapsed_time.py   6 0 0   100%
src/bluetooth_sig/gatt/services/electronic_shelf_label.py   6 0 0   100%
src/bluetooth_sig/gatt/services/emergency_configuration.py   6 0 0   100%
src/bluetooth_sig/gatt/services/environmental_sensing.py   6 0 0   100%
src/bluetooth_sig/gatt/services/fitness_machine_service.py   6 0 0   100%
src/bluetooth_sig/gatt/services/gaming_audio.py   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_access.py   7 0 0   100%
src/bluetooth_sig/gatt/services/generic_attribute.py   7 0 0   100%
src/bluetooth_sig/gatt/services/generic_health_sensor.py   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_media_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_telephone_bearer.py   6 0 0   100%
src/bluetooth_sig/gatt/services/generic_voice_assistant.py   6 0 0   100%
src/bluetooth_sig/gatt/services/glucose.py   6 0 0   100%
src/bluetooth_sig/gatt/services/health_thermometer.py   6 0 0   100%
src/bluetooth_sig/gatt/services/hearing_access.py   6 0 0   100%
src/bluetooth_sig/gatt/services/heart_rate.py   6 0 0   100%
src/bluetooth_sig/gatt/services/hid_iso.py   7 0 0   100%
src/bluetooth_sig/gatt/services/http_proxy.py   7 0 0   100%
src/bluetooth_sig/gatt/services/human_interface_device.py   6 0 0   100%
src/bluetooth_sig/gatt/services/immediate_alert.py   6 0 0   100%
src/bluetooth_sig/gatt/services/indoor_positioning_service.py   6 0 0   100%
src/bluetooth_sig/gatt/services/industrial_measurement_device.py   6 0 0   100%
src/bluetooth_sig/gatt/services/insulin_delivery.py   6 0 0   100%
src/bluetooth_sig/gatt/services/internet_protocol_support.py   6 0 0   100%
src/bluetooth_sig/gatt/services/link_loss.py   6 0 0   100%
src/bluetooth_sig/gatt/services/location_and_navigation.py   7 0 0   100%
src/bluetooth_sig/gatt/services/media_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_provisioning.py   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_proxy.py   6 0 0   100%
src/bluetooth_sig/gatt/services/mesh_proxy_solicitation.py   6 0 0   100%
src/bluetooth_sig/gatt/services/microphone_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/next_dst_change.py   6 0 0   100%
src/bluetooth_sig/gatt/services/object_transfer.py   6 0 0   100%
src/bluetooth_sig/gatt/services/phone_alert_status.py   7 0 0   100%
src/bluetooth_sig/gatt/services/physical_activity_monitor.py   6 0 0   100%
src/bluetooth_sig/gatt/services/public_broadcast_announcement.py   6 0 0   100%
src/bluetooth_sig/gatt/services/published_audio_capabilities.py   6 0 0   100%
src/bluetooth_sig/gatt/services/pulse_oximeter_service.py   6 0 0   100%
src/bluetooth_sig/gatt/services/ranging.py   6 0 0   100%
src/bluetooth_sig/gatt/services/reconnection_configuration.py   6 0 0   100%
src/bluetooth_sig/gatt/services/reference_time_update.py   6 0 0   100%
src/bluetooth_sig/gatt/services/registry.py   105 16 0   85%
src/bluetooth_sig/gatt/services/running_speed_and_cadence.py   6 0 0   100%
src/bluetooth_sig/gatt/services/scan_parameters.py   6 0 0   100%
src/bluetooth_sig/gatt/services/telephone_bearer.py   6 0 0   100%
src/bluetooth_sig/gatt/services/telephony_and_media_audio.py   7 0 0   100%
src/bluetooth_sig/gatt/services/transport_discovery.py   6 0 0   100%
src/bluetooth_sig/gatt/services/tx_power.py   6 0 0   100%
src/bluetooth_sig/gatt/services/unknown.py   9 0 0   100%
src/bluetooth_sig/gatt/services/user_data.py   6 0 0   100%
src/bluetooth_sig/gatt/services/voice_assistant.py   6 0 0   100%
src/bluetooth_sig/gatt/services/volume_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/volume_offset_control.py   6 0 0   100%
src/bluetooth_sig/gatt/services/weight_scale.py   6 0 0   100%
src/bluetooth_sig/gatt/special_values_resolver.py   55 33 0   40%
src/bluetooth_sig/gatt/uuid_registry.py   341 35 0   90%
src/bluetooth_sig/gatt/validation.py   97 19 0   80%
src/bluetooth_sig/registry/__init__.py   3 0 0   100%
src/bluetooth_sig/registry/base.py   219 35 0   84%
src/bluetooth_sig/registry/company_identifiers/__init__.py   3 0 0   100%
src/bluetooth_sig/registry/company_identifiers/company_identifiers_registry.py   52 9 0   83%
src/bluetooth_sig/registry/core/__init__.py   7 0 0   100%
src/bluetooth_sig/registry/core/ad_types.py   63 13 0   79%
src/bluetooth_sig/registry/core/appearance_values.py   69 12 0   83%
src/bluetooth_sig/registry/core/class_of_device.py   97 7 0   93%
src/bluetooth_sig/registry/core/coding_format.py   62 13 0   79%
src/bluetooth_sig/registry/core/formattypes.py   65 13 0   80%
src/bluetooth_sig/registry/core/namespace_description.py   65 13 0   80%
src/bluetooth_sig/registry/core/uri_schemes.py   65 13 0   80%
src/bluetooth_sig/registry/gss.py   117 11 0   91%
src/bluetooth_sig/registry/profiles/__init__.py   4 0 0   100%
src/bluetooth_sig/registry/profiles/permitted_characteristics.py   67 11 0   84%
src/bluetooth_sig/registry/profiles/profile_lookup.py   121 10 0   92%
src/bluetooth_sig/registry/service_discovery/__init__.py   3 0 0   100%
src/bluetooth_sig/registry/service_discovery/attribute_ids.py   101 19 0   81%
src/bluetooth_sig/registry/utils.py   42 6 0   86%
src/bluetooth_sig/registry/uuids/__init__.py   11 0 0   100%
src/bluetooth_sig/registry/uuids/browse_groups.py   32 6 0   81%
src/bluetooth_sig/registry/uuids/declarations.py   32 6 0   81%
src/bluetooth_sig/registry/uuids/members.py   27 4 0   85%
src/bluetooth_sig/registry/uuids/mesh_profiles.py   26 4 0   85%
src/bluetooth_sig/registry/uuids/object_types.py   32 6 0   81%
src/bluetooth_sig/registry/uuids/protocol_identifiers.py   24 2 0   92%
src/bluetooth_sig/registry/uuids/sdo_uuids.py   30 3 0   90%
src/bluetooth_sig/registry/uuids/service_classes.py   25 2 0   92%
src/bluetooth_sig/registry/uuids/units.py   47 5 0   89%
src/bluetooth_sig/stream/__init__.py   3 0 0   100%
src/bluetooth_sig/stream/pairing.py   49 0 0   100%
src/bluetooth_sig/types/__init__.py   23 0 0   100%
src/bluetooth_sig/types/acs.py   14 0 0   100%
src/bluetooth_sig/types/ad_types_constants.py   52 0 0   100%
src/bluetooth_sig/types/address.py   18 2 0   89%
src/bluetooth_sig/types/advertising/__init__.py   11 0 0   100%
src/bluetooth_sig/types/advertising/ad_structures.py   89 6 0   93%
src/bluetooth_sig/types/advertising/builder.py   110 14 0   87%
src/bluetooth_sig/types/advertising/channel_map_update.py   22 0 0   100%
src/bluetooth_sig/types/advertising/extended.py   32 0 0   100%
src/bluetooth_sig/types/advertising/features.py   106 26 0   75%
src/bluetooth_sig/types/advertising/flags.py   11 0 0   100%
src/bluetooth_sig/types/advertising/indoor_positioning.py   64 0 0   100%
src/bluetooth_sig/types/advertising/pdu.py   127 11 0   91%
src/bluetooth_sig/types/advertising/result.py   39 6 0   85%
src/bluetooth_sig/types/advertising/three_d_information.py   30 0 0   100%
src/bluetooth_sig/types/advertising/transport_discovery.py   46 0 0   100%
src/bluetooth_sig/types/alert.py   44 0 0   100%
src/bluetooth_sig/types/appearance.py   32 1 0   97%
src/bluetooth_sig/types/audio_context_type.py   15 0 0   100%
src/bluetooth_sig/types/base_types.py   7 0 0   100%
src/bluetooth_sig/types/battery.py   50 12 0   76%
src/bluetooth_sig/types/bss.py   25 0 0   100%
src/bluetooth_sig/types/company.py   34 3 0   91%
src/bluetooth_sig/types/context.py   19 0 0   100%
src/bluetooth_sig/types/data_types.py   37 2 0   95%
src/bluetooth_sig/types/device_types.py   76 35 0   54%
src/bluetooth_sig/types/ead.py   42 0 0   100%
src/bluetooth_sig/types/gatt_enums.py   630 1 0   99%
src/bluetooth_sig/types/gatt_services.py   24 4 0   83%
src/bluetooth_sig/types/io.py   19 1 0   95%
src/bluetooth_sig/types/location.py   7 0 0   100%
src/bluetooth_sig/types/mesh.py   147 59 0   60%
src/bluetooth_sig/types/peripheral_types.py   40 0 0   100%
src/bluetooth_sig/types/protocols.py   7 0 4   100%
src/bluetooth_sig/types/registry/__init__.py   5 0 0   100%
src/bluetooth_sig/types/registry/ad_types.py   3 0 0   100%
src/bluetooth_sig/types/registry/amp.py   6 6 0   0%
src/bluetooth_sig/types/registry/appearance_info.py   14 0 0   100%
src/bluetooth_sig/types/registry/browse_group_identifiers.py   3 0 0   100%
src/bluetooth_sig/types/registry/characteristic_uuids.py   5 5 0   0%
src/bluetooth_sig/types/registry/class_of_device.py   25 0 0   100%
src/bluetooth_sig/types/registry/coding_format.py   3 0 0   100%
src/bluetooth_sig/types/registry/common.py   82 3 1   96%
src/bluetooth_sig/types/registry/company_identifiers.py   3 3 0   0%
src/bluetooth_sig/types/registry/core_version.py   3 3 0   0%
src/bluetooth_sig/types/registry/declarations.py   3 0 0   100%
src/bluetooth_sig/types/registry/descriptor_types.py   20 2 0   90%
src/bluetooth_sig/types/registry/descriptors.py   5 5 0   0%
src/bluetooth_sig/types/registry/diacs.py   3 3 0   0%
src/bluetooth_sig/types/registry/dp_property.py   10 10 0   0%
src/bluetooth_sig/types/registry/dp_property_groups.py   12 12 0   0%
src/bluetooth_sig/types/registry/dp_property_ids.py   10 10 0   0%
src/bluetooth_sig/types/registry/formattypes.py   8 0 0   100%
src/bluetooth_sig/types/registry/gss_characteristic.py   146 38 0   74%
src/bluetooth_sig/types/registry/member_uuids.py   3 0 0   100%
src/bluetooth_sig/types/registry/mesh_profile_uuids.py   3 0 0   100%
src/bluetooth_sig/types/registry/mws_channel_type.py   3 3 0   0%
src/bluetooth_sig/types/registry/namespace.py   6 0 0   100%
src/bluetooth_sig/types/registry/namespaces.py   3 3 0   0%
src/bluetooth_sig/types/registry/object_types.py   4 0 0   100%
src/bluetooth_sig/types/registry/pcm_data_format.py   3 3 0   0%
src/bluetooth_sig/types/registry/profile_types.py   16 0 0   100%
src/bluetooth_sig/types/registry/protocol_identifiers.py   3 0 0   100%
src/bluetooth_sig/types/registry/psm.py   3 3 0   0%
src/bluetooth_sig/types/registry/sdo_uuids.py   3 0 0   100%
src/bluetooth_sig/types/registry/sdp_base_uuid.py   5 5 0   0%
src/bluetooth_sig/types/registry/service_class.py   3 0 0   100%
src/bluetooth_sig/types/registry/service_uuids.py   5 5 0   0%
src/bluetooth_sig/types/registry/transport_layers.py   3 3 0   0%
src/bluetooth_sig/types/registry/units.py   12 0 0   100%
src/bluetooth_sig/types/registry/uri_schemes.py   3 0 0   100%
src/bluetooth_sig/types/scan_interval_window.py   24 0 0   100%
src/bluetooth_sig/types/special_values.py   21 3 0   86%
src/bluetooth_sig/types/units.py   62 0 0   100%
src/bluetooth_sig/types/uri.py   35 0 0   100%
src/bluetooth_sig/types/uuid.py   150 29 0   81%
src/bluetooth_sig/utils/__init__.py   3 0 0   100%
src/bluetooth_sig/utils/prewarm.py   9 0 0   100%
src/bluetooth_sig/utils/prewarm_catalog.py   53 1 0   98%
src/bluetooth_sig/utils/profiling.py   75 0 0   100%
src/bluetooth_sig/utils/rssi_utils.py   18 11 0   39%
src/bluetooth_sig/utils/values.py   20 0 0   100%
Total   26841 2552 253   90%

No items found using the specified filter.