docs: def preserve_batch_state():
      """
      Context manager which ensures the batch state is the same on exit as it was
      on entry.
      """
      with LOCK:
          old = ROOT.gROOT.IsBatch()
          try:
              yield
          finally:
              ROOT.gROOT.SetBatch(old)