code: def log(*args, is_new_line: bool = True, is_reset: bool = True):
      r"""
      This has multiple overloads
  
      .. function:: log(message: str, *, is_new_line=True)
          :noindex:
  
      .. function:: log(message: str, color: StyleCode, *, is_new_line=True)
          :noindex:
  
      .. function:: log(message: str, colors: List[StyleCode], *, is_new_line=True)
          :noindex:
  
      .. function:: log(messages: List[Union[str, Tuple[str, StyleCode]]], *, is_new_line=True)
          :noindex:
  
      .. function:: log(*args: Union[str, Tuple[str, StyleCode]], is_new_line: bool = True)
          :noindex:
  
      Arguments:
          message (str): string to be printed
          color (StyleCode): color/style of the message
          colors (List[StyleCode]): list of colors/styles for the message
          args (Union[str, Tuple[str, StyleCode]]): list of messages
              Each element should be either a string or a tuple of string and styles.
          messages (List[Union[str, Tuple[str, StyleCode]]]): a list of messages.
              Each element should be either a string or a tuple of string and styles.
  
      Keyword Arguments:
          is_new_line (bool): whether to print a new line at the end
  
      Example::
          >>> logger.log("test")
      """
      from labml.internal.logger import logger_singleton as _internal
  
      if len(args) == 0:
          assert is_new_line
          _internal().log(
              [], is_new_line=is_new_line, is_reset=is_reset
          )
      elif len(args) == 1:
          message = args[0]
          if isinstance(message, str):
              _internal().log(
                  [(message, None)],
                  is_new_line=is_new_line,
                  is_reset=is_reset,
              )
          elif isinstance(message, list):
              _internal().log(
                  message, is_new_line=is_new_line, is_reset=is_reset
              )
          else:
              raise TypeError(
                  f"Unrecognized type: {type(message)}", message
              )
      elif (
          len(args) == 2
          and isinstance(args[0], str)
          and isinstance(args[1], StyleCode)
      ):
          _internal().log(
              [(args[0], args[1])],
              is_new_line=is_new_line,
              is_reset=is_reset,
          )
      else:
          _internal().log(
              args, is_new_line=is_new_line, is_reset=is_reset
          )
  
file_path: labml/client/labml/logger.py
imports: from typing import Union, List, Tuple, overload, Dict
  from labml.internal.util.colors import StyleCode
label_desc: Use image node_id 7 for calling a global function with example usage: log() without return types