code: def _zip_equal(*iterables):
      # Check whether the iterables are all the same size.
      try:
          first_size = len(iterables[0])
          for i, it in enumerate(iterables[1:], 1):
              size = len(it)
              if size != first_size:
                  raise UnequalIterablesError(
                      details=(first_size, i, size)
                  )
          # All sizes are equal, we can use the built-in zip.
          return zip(*iterables)
      # If any one of the iterables didn't have a length, start reading
      # them until one runs out.
      except TypeError:
          return _zip_equal_generator(iterables)
  
file_path: catboost/contrib/python/setuptools/py3/setuptools/_distutils/py39compat.py
imports: import functools
  import itertools
  import platform
  import sys
label_desc: Use image node_id 3 for calling a global function with example usage: _zip_equal() and returns: zip, _zip_equal_generator