class_docstr: Singleton class for CLI logging.
  
  Without calling 'cli_logger.configure', the CLILogger will default
  to 'record' style logging.
  
  Attributes:
      color_mode (str):
          Can be "true", "false", or "auto".
  
          Enables or disables `colorful`.
  
          If `color_mode` is "auto", is set to `not stdout.isatty()`
      indent_level (int):
          The current indentation level.
  
          All messages will be indented by prepending `"  " * indent_level`
      vebosity (int):
          Output verbosity.
  
          Low verbosity will disable `verbose` and `very_verbose` messages.
class_docstr_tok: ["Singleton","class","for","CLI","logging",".","Without","calling","'cli_logger.configure","'",",","the","CLILogger","will","default","to","'record","'","style","logging",".","Attributes",":","color_mode","(","str",")",":","Can","be","``","true","''",",","``","false","''",",","or","``","auto","''",".","Enables","or","disables","`","colorful","`",".","If","`","color_mode","`","is","``","auto","''",",","is","set","to","`","not","stdout.isatty","(",")","`","indent_level","(","int",")",":","The","current","indentation","level",".","All","messages","will","be","indented","by","prepending","`","``","``","*","indent_level","`","vebosity","(","int",")",":","Output","verbosity",".","Low","verbosity","will","disable","`","verbose","`","and","`","very_verbose","`","messages","."]
docstr: Update color output settings.
  
  Parse the `color_mode` string and optionally disable or force-enable
  color output
  (8-color ANSI if no terminal detected to be safe) in colorful.
code: def detect_colors(self):
      """Update color output settings.
  
      Parse the `color_mode` string and optionally disable or force-enable
      color output
      (8-color ANSI if no terminal detected to be safe) in colorful.
      """
      if self.color_mode == "true":
          if self._autodetected_cf_colormode != cf.NO_COLORS:
              cf.colormode = self._autodetected_cf_colormode
          else:
              cf.colormode = cf.ANSI_8_COLORS
          return
      if self.color_mode == "false":
          cf.disable()
          return
      if self.color_mode == "auto":
          # colorful autodetects tty settings
          return
  
      raise ValueError("Invalid log color setting: " + self.color_mode)
  
imports: import inspect
  import logging
  import os
  import sys
  import time
  from contextlib import contextmanager
  from functools import wraps
  from typing import Any, Callable, Dict, List, Optional, Tuple
  import click
  import colorama
  import ray
label_desc: Use image node_id 10 for calling the _CliLogger obj's underlying member method code with example usage: obj.detect_colors() without return types