code: def wrap_exception(func: Callable) -> Callable:
      
      try:
          # only do the wrapping if pygatt is installed.
          # otherwise it's pointless anyway
          from pygatt.backends.bgapi.exceptions import BGAPIError
          from pygatt.exceptions import NotConnectedError
      except ImportError:
          return func
  
      def _func_wrapper(*args, **kwargs):
          try:
              return func(*args, **kwargs)
          except BGAPIError as exception:
              raise BluetoothBackendException() from exception
          except NotConnectedError as exception:
              raise BluetoothBackendException() from exception
  
      return _func_wrapper
docs: Decorator to wrap pygatt exceptions into BluetoothBackendException.