docs: def is_union_type(type_):
      """ Checks if the given type is a union type.
  
      :param type_: The type to check
      :return: True if the type is a union type, otherwise False
      :rtype: bool
      """
  
      if is_typing_type(type_) and hasattr(type_, "__origin__"):
          # NOTE: union types can only be from typing module
          return type_.__origin__ in _get_types(Types.UNION)
      return False