class_docstr: The protocol that OCRmyPDF expects progress bar classes to be compatible with.
  
  In practice this could be used for any time of monitoring, not just a progress bar.
  
  Calling the class should return a new progress bar object, which is activated
  with ``__enter__`` and terminated with ``__exit__``. An update method is called
  whenever the progress bar is updated. Progress bar objects will not be reused;
  a new one will be created for each group of tasks.
  
  The progress bar is held in the main process/thread and not updated by child
  process/threads. When a child notifies the parent of completed work, the
  parent updates the progress bar.
  
  Progress bars should never write to ``sys.stdout``, or they will corrupt the
  output if OCRmyPDF writes a PDF to standard output.
  
  The type of events that OCRmyPDF reports to a progress bar may change in
  minor releases.
class_docstr_tok: ["The","protocol","that","OCRmyPDF","expects","progress","bar","classes","to","be","compatible","with",".","In","practice","this","could","be","used","for","any","time","of","monitoring",",","not","just","a","progress","bar",".","Calling","the","class","should","return","a","new","progress","bar","object",",","which","is","activated","with","``","__enter__","``","and","terminated","with","``","__exit__","``",".","An","update","method","is","called","whenever","the","progress","bar","is","updated",".","Progress","bar","objects","will","not","be","reused",";","a","new","one","will","be","created","for","each","group","of","tasks",".","The","progress","bar","is","held","in","the","main","process\/thread","and","not","updated","by","child","process\/threads",".","When","a","child","notifies","the","parent","of","completed","work",",","the","parent","updates","the","progress","bar",".","Progress","bars","should","never","write","to","``","sys.stdout","``",",","or","they","will","corrupt","the","output","if","OCRmyPDF","writes","a","PDF","to","standard","output",".","The","type","of","events","that","OCRmyPDF","reports","to","a","progress","bar","may","change","in","minor","releases","."]
docstr: Exit a progress bar context.
docstr_tok: ["Exit","a","progress","bar","context","."]
code: def __exit__(self, *args):
      """Exit a progress bar context."""
  
imports: from __future__ import annotations
  from typing import Protocol
  from rich.console import Console
  from rich.progress import BarColumn, MofNCompleteColumn, Progress, TaskProgressColumn, TextColumn, TimeRemainingColumn
  from rich.table import Column
label_desc: Use image node_id 3 for calling the ProgressBar obj's underlying member method code with example usage: obj.__exit__() without return types