code: def iterable_not_string(obj) -> bool:
      """
      Check if the object is an iterable but not a string.
  
      Parameters
      ----------
      obj : The object to check.
  
      Returns
      -------
      is_iter_not_string : bool
          Whether `obj` is a non-string iterable.
  
      Examples
      --------
      >>> iterable_not_string([1, 2, 3])
      True
      >>> iterable_not_string("foo")
      False
      >>> iterable_not_string(1)
      False
      """
      return isinstance(obj, abc.Iterable) and not isinstance(obj, str)
  
file_path: catboost/contrib/python/pandas/py3/pandas/core/dtypes/inference.py
imports: from __future__ import annotations
  from collections import abc
  from numbers import Number
  import re
  from typing import Pattern
  import numpy
  from pandas._libs import lib
label_desc: Use image node_id 2 for calling a global function with example usage: iterable_not_string(obj) and returns: unknown