code: def _iexplode_path(path):
      """Iterate over all the parts of a path.
  
      Splits path recursively with os.path.split().
      """
      (head, tail) = os.path.split(path)
      if not head or (not tail and head == path):
          if head:
              yield head
          if tail or not head:
              yield tail
          return
      for p in _iexplode_path(head):
          yield p
      yield tail
  
imports: from collections import defaultdict
  from os.path import join
  import io
  import os
  import functools
  import pipes
  import re
  import shlex
  import subprocess
  import sys
  from setuptools import Command
  from setuptools.command.build_py import build_py
  from setuptools.command.sdist import sdist
  from distutils import log
  from setuptools.command.develop import develop
  from setuptools.command.bdist_egg import bdist_egg
label_desc: Use image node_id 23 for calling a global function with example usage: _iexplode_path(path) without return types