code: def unpack(src_dir, dst_dir):
      """Move everything under `src_dir` to `dst_dir`, and delete the former."""
      for dirpath, dirnames, filenames in os.walk(src_dir):
          subdir = os.path.relpath(dirpath, src_dir)
          for f in filenames:
              src = os.path.join(dirpath, f)
              dst = os.path.join(dst_dir, subdir, f)
              os.renames(src, dst)
          for n, d in reversed(list(enumerate(dirnames))):
              src = os.path.join(dirpath, d)
              dst = os.path.join(dst_dir, subdir, d)
              if not os.path.exists(dst):
                  # Directory does not exist in destination,
                  # rename it and prune it from os.walk list.
                  os.renames(src, dst)
                  del dirnames[n]
      # Cleanup.
      for dirpath, dirnames, filenames in os.walk(
          src_dir, topdown=True
      ):
          assert not filenames
          os.rmdir(dirpath)
  
imports: import email
  import itertools
  import functools
  import os
  import posixpath
  import re
  import zipfile
  import contextlib
  from distutils.util import get_platform
  import setuptools
  from setuptools.extern.packaging.version import Version
  from setuptools.extern.packaging.tags import sys_tags
  from setuptools.extern.packaging.utils import canonicalize_name
  from setuptools.command.egg_info import write_requirements, _egg_basename
  from setuptools.archive_util import _unpack_zipfile_obj
label_desc: Use image node_id 2 for calling a global function with example usage: unpack(src_dir, dst_dir) without return types