class_docstr: A 2-line progress bar.
  
  The progress bar looks roughly like this in the console::
  
                              Header
      20% [===========----------------------------------]
  
  The progress bar is colored, if the terminal supports color
  output; and adjusts to the width of the terminal.
class_docstr_tok: ["A","2-line","progress","bar",".","The","progress","bar","looks","roughly","like","this","in","the","console",":",":","Header","20","%","[","===========","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","]","The","progress","bar","is","colored",",","if","the","terminal","supports","color","output",";","and","adjusts","to","the","width","of","the","terminal","."]
code: def __init__(self, term):
      self.term = term
      if not (self.term.CLEAR_EOL and self.term.UP and self.term.BOL):
          raise ValueError(
              "Terminal isn't capable enough -- you "
              "should use a simpler progress display."
          )
      self.width = self.term.COLS or 75
      self.progress_bar = term.render(self.BAR)
      self.header = self.term.render(
          self.HEADER % "".center(self.width)
      )
      self.cleared = True  #: true if we haven't drawn the bar yet.
  
      self.last_percent = 0
      self.last_message = ""
  
imports: from abc import ABCMeta, abstractmethod
  import re
  import sys
  from igraph import __version__
  from igraph._igraph import set_progress_handler, set_status_handler
  from igraph.configuration import Configuration
label_desc: Use image node_id 1 to create a new ProgressBar object  with example: obj = ProgressBar(term)