code: def check_is_iterable_of_strings(
      iterable_obj, /, *, allow_subclass=True, name="String Iterable"
  ):
      """Check if an iterable's items are all strings.
  
      Parameters
      ----------
      iterable_obj : Iterable
          Iterable to check.
  
      allow_subclass : bool, default: True
          If ``True``, the type of the iterable's items must be any of the
          given types or a subclass thereof. Otherwise, subclasses are not
          allowed.
  
      name : str, default: "String Iterable"
          Variable name to use in the error messages if any are raised.
  
      Raises
      ------
      TypeError
          If any of the elements have an incorrect type.
  
      See Also
      --------
      check_is_iterable
      check_is_string
      check_is_string_in_iterable
  
      Examples
      --------
      Check if a ``tuple`` only has ``str`` elements.
  
      >>> import pyvista.core.input_validation as valid
      >>> valid.check_is_iterable_of_strings(("cat", "dog"))
  
      """
      try:
          check_is_iterable_of_some_type(
              iterable_obj,
              str,
              allow_subclass=allow_subclass,
              name=name,
          )
      except TypeError:
          raise
  
imports: from collections.abc import Iterable, Sequence
  from numbers import Number
  from typing import Tuple, Union, get_args, get_origin
  import numpy
  from pyvista.core.utilities.arrays import cast_to_ndarray
label_desc: Use image node_id 20 for calling a global function with example usage: check_is_iterable_of_strings() without return types