code: def _iglob(pathname, recursive):
      dirname, basename = os.path.split(pathname)
      if not has_magic(pathname):
          if basename:
              if os.path.lexists(pathname):
                  yield pathname
          else:
              # Patterns ending with a slash should match only directories
              if os.path.isdir(dirname):
                  yield pathname
          return
      if not dirname:
          if recursive and _isrecursive(basename):
              for x in glob2(dirname, basename):
                  yield x
          else:
              for x in glob1(dirname, basename):
                  yield x
          return
      # `os.path.split()` returns the argument itself as a dirname if it is a
      # drive or UNC path.  Prevent an infinite recursion if a drive or UNC path
      # contains magic characters (i.e. r'\\?\C:').
      if dirname != pathname and has_magic(dirname):
          dirs = _iglob(dirname, recursive)
      else:
          dirs = [dirname]
      if has_magic(basename):
          if recursive and _isrecursive(basename):
              glob_in_dir = glob2
          else:
              glob_in_dir = glob1
      else:
          glob_in_dir = glob0
      for dirname in dirs:
          for name in glob_in_dir(dirname, basename):
              yield os.path.join(dirname, name)
  
file_path: catboost/contrib/python/setuptools/py2/setuptools/glob.py
imports: import os
  import re
  import fnmatch
label_desc: Use image node_id 3 for calling a global function with example usage: _iglob(pathname, recursive) without return types