code: def _notify_progress_sync(self, uuid, client, done_count, total_count):
          
  
          # If the connection was closed, don't notify anything
          conn_data = self._connections.get(uuid, None)
          if conn_data is None:
              return
  
          last_progress = conn_data['last_progress']
  
          should_drop = False
  
          # We drop status updates that come faster than our configured update interval
          # unless those updates are the final update, which we send on.  The first
          # update is always also sent since there would not have been an update before
          # that.
  
          now = monotonic()
          if last_progress is not None and (now - last_progress) < self.throttle_progress:
              should_drop = True
  
          if should_drop and (done_count != total_count):
              return
  
          conn_data['last_progress'] = now
  
          slug = self._build_device_slug(uuid)
          status_msg = {'type': 'notification', 'operation': 'send_script', 'client': client, 'done_count': done_count, 'total_count': total_count}
          self._publish_response(slug, status_msg)
docs: Notify progress reporting on the status of a script download.
  
          This function must be called synchronously inside of the event loop.
  
          Args:
              uuid (int): The id of the device that we are talking to
              client (string): The client identifier
              done_count (int): The number of items that have been finished
              total_count (int): The total number of items