class_docstr: BaseProgressIndicator(name)
  
  A progress indicator helps display the progress of a task to the
  user. Progress can be pending, running, finished or failed.
  
  Each task has:
    * a name - a short description of what needs to be done.
    * an action - the current action in performing the task (e.g. a subtask)
    * progress - how far the task is completed
    * max - max number of progress units. If 0, the progress is indefinite
    * unit - the units in which the progress is counted
    * status - 0: pending, 1: in progress, 2: finished, 3: failed
  
  This class defines an abstract interface. Subclasses should implement
  _start, _stop, _update_progress(progressText), _write(message).
class_docstr_tok: ["BaseProgressIndicator","(","name",")","A","progress","indicator","helps","display","the","progress","of","a","task","to","the","user",".","Progress","can","be","pending",",","running",",","finished","or","failed",".","Each","task","has",":","*","a","name","-","a","short","description","of","what","needs","to","be","done",".","*","an","action","-","the","current","action","in","performing","the","task","(","e.g",".","a","subtask",")","*","progress","-","how","far","the","task","is","completed","*","max","-","max","number","of","progress","units",".","If","0",",","the","progress","is","indefinite","*","unit","-","the","units","in","which","the","progress","is","counted","*","status","-","0",":","pending",",","1",":","in","progress",",","2",":","finished",",","3",":","failed","This","class","defines","an","abstract","interface",".","Subclasses","should","implement","_start",",","_stop",",","_update_progress","(","progressText",")",",","_write","(","message",")","."]
docstr: finish(message=None)
  
  Finish the progress, optionally specifying a message. This will
  not set the progress to the maximum.
docstr_tok: ["finish","(","message=None",")","Finish","the","progress",",","optionally","specifying","a","message",".","This","will","not","set","the","progress","to","the","maximum","."]
code: def finish(self, message=None):
      """finish(message=None)
  
      Finish the progress, optionally specifying a message. This will
      not set the progress to the maximum.
      """
      self.set_progress(self._progress, True)  # fore update
      self._status = 2
      self._stop()
      if message is not None:
          self._write(message)
  
imports: from collections import OrderedDict
  import numpy
  import os
  import re
  import struct
  import sys
  import time
  import logging
label_desc: Use image node_id 6 for calling the BaseProgressIndicator obj's underlying member method code with example usage: obj.finish(message) without return types