code: def _PrintExtractionStatusUpdateWindow(self, processing_status):
      
      if self._stdout_output_writer:
        self._ClearScreen()
  
      output_text = 'plaso - {0:s} version {1:s}\n\n'.format(
          self._tool_name, plaso.__version__)
      self._output_writer.Write(output_text)
  
      self.PrintExtractionStatusHeader(processing_status)
  
      table_view = views.CLITabularTableView(column_names=[
          'Identifier', 'PID', 'Status', 'Memory', 'Sources', 'Events',
          'File'], column_sizes=[15, 7, 15, 15, 15, 15, 0])
  
      self._AddExtractionProcessStatusTableRow(
          processing_status.foreman_status, table_view)
  
      for worker_status in processing_status.workers_status:
        self._AddExtractionProcessStatusTableRow(worker_status, table_view)
  
      table_view.Write(self._output_writer)
      self._output_writer.Write('\n')
  
      if processing_status.aborted:
        self._output_writer.Write(
            'Processing aborted - waiting for clean up.\n\n')
  
      # TODO: remove update flicker. For win32console we could set the cursor
      # top left, write the table, clean the remainder of the screen buffer
      # and set the cursor at the end of the table.
      if self._stdout_output_writer:
        # We need to explicitly flush stdout to prevent partial status updates.
        sys.stdout.flush()
docs: Prints an extraction status update in window mode.
  
      Args:
        processing_status (ProcessingStatus): processing status.