code: def finish(self, end='\n', dirty=False):
          '''
          Puts the ProgressBar bar in the finished state.
  
          Also flushes and disables output buffering if this was the last
          progressbar running.
  
          Args:
              end (str): The string to end the progressbar with, defaults to a
                  newline
              dirty (bool): When True the progressbar kept the current state and
                  won't be set to 100 percent
          '''
  
          if not dirty:
              self.end_time = datetime.now()
              self.update(self.max_value, force=True)
  
          StdRedirectMixin.finish(self, end=end)
          ResizableMixin.finish(self)
          ProgressBarBase.finish(selff finish(self, end='\n', dirty=False):
          '''
          Puts the ProgressBar bar in the finished state.
  
          Also flushes and disables output buffering if this was the last
          progressbar running.
  
          Args:
              end (str): The string to end the progressbar with, defaults to a
                  newline
              dirty (bool): When True the progressbar kept the current state and
                  won't be set to 100 percent
          '''
  
          if not dirty:
              self.end_time = datetime.now()
              self.update(self.max_value, force=True)
  
          StdRedirectMixin.finish(self, end=end)
          ResizableMixin.finish(self)
          ProgressBarBase.finish(self)
docs: Puts the ProgressBar bar in the finished state.
  
          Also flushes and disables output buffering if this was the last
          progressbar running.
  
          Args:
              end (str): The string to end the progressbar with, defaults to a
                  newline
              dirty (bool): When True the progressbar kept the current state and
                  won't be set to 100 percent