code: def notify_progress(self, conn_string, operation, finished, total, wait=True):
          
  
          if operation not in self.PROGRESS_OPERATIONS:
              raise ArgumentError("Invalid operation for progress event: {}".format(operation))
  
          event = dict(operation=operation, finished=finished, total=total)
  
          if wait:
              return self.notify_event(conn_string, 'progress', event)
  
          self.notify_event_nowait(conn_string, 'progress', event)
          return None
docs: Send a progress event.
  
          Progress events can be sent for ``debug`` and ``script`` operations and
          notify the caller about the progress of these potentially long-running
          operations.  They have two integer properties that specify what fraction
          of the operation has been completed.
  
          Args:
              conn_string (str): The device that is sending the event.
              operations (str): The operation that is in progress: debug or script
              finished (int): The number of "steps" that have finished.
              total (int): The total number of steps to perform.
              wait (bool): Whether to return an awaitable that we can use to
                  block until the notification has made it to all callbacks.
  
          Returns:
              awaitable or None: An awaitable if wait=True.
  
              If wait is False, the notification is run in the background with
              no way to check its progress and None is returned.