docs: def arg_type_to_string(arg_type) -> str:
      """
      Converts the argument type to a string
  
      :param arg_type:
      :return:
          String representation of the argument type. Multiple return types are
          turned into a comma delimited list of type names
      """
  
      union_params = (
          getattr(arg_type, '__union_params__', None) or
          getattr(arg_type, '__args__', None)
      )
  
      if union_params and isinstance(union_params, (list, tuple)):
          return ', '.join([arg_type_to_string(item) for item in union_params])
  
      try:
          return arg_type.__name__
      except AttributeError:
          return '{}'.format(arg_type)