class_docstr: Class for progress bars that supports distributed progress bars in ray.
  
  # Inputs
  
  :param report_to_ray: (bool) use the ray.air.session method
      to report progress to the ray driver. If false then this behaves as a normal tqdm
      progress bar
  :param config: (dict) the tqdm configs used for the progress bar. See https://github.com/tqdm/tqdm#parameters
      for list of parameters
  :param is_coordinator: (bool) whether the calling process is the coordinator process.
  
  # Example usage:
  
  ```python
  from ludwig.progress_bar import LudwigProgressBar
  
  config = {"total": 20, "desc": "Sample progress bar"}
  pbar = LudwigProgressBar(report_to_ray=False, config=config, is_coordinator=True)
  for i in range(20):
      pbar.update(1)
  pbar.close()
  ```
docstr: Closes the progress bar.
  
  # Return
  
  :return: (None) `None`
code: def close(self) -> None:
      """Closes the progress bar.
  
      # Return
  
      :return: (None) `None`
      """
      if self.progress_bar:
          self.progress_bar.close()
      elif self.report_to_ray:
          session.report(
              metrics={
                  "progress_bar": {
                      "id": self.id,
                      "is_coordinator": self.is_coordinator,
                      "action": LudwigProgressBarActions.CLOSE,
                  }
              }
          )
  
file_path: ludwig/ludwig/progress_bar.py
imports: import uuid
  from typing import Dict
  import tqdm
label_desc: Use image node_id 4 for calling the LudwigProgressBar obj's underlying member method code with example usage: obj.close() without return types