code: def _get_future_devices(self, context):
          
          monitor = Monitor.from_netlink(context)
          monitor.filter_by("hidraw")
          monitor.start()
  
          self._scanning_log_message()
          for device in iter(monitor.poll, None):
              if device.action == "add":
                  # Sometimes udev rules has not been applied at this point,
                  # causing permission denied error if we are running in user
                  # mode. With this sleep this will hopefully not happen.
                  sleep(1)
  
                  yield device
                  self._scanning_log_message()
docs: Return a generator yielding new devices.