code: def get_layout(ns):
      def in_build(f, dest="", new_name=None):
          n, _, x = f.rpartition(".")
          n = new_name or n
          src = ns.build / f
          if ns.debug and src not in REQUIRED_DLLS:
              if not src.stem.endswith("_d"):
                  src = src.parent / (src.stem + "_d" + src.suffix)
              if not n.endswith("_d"):
                  n += "_d"
                  f = n + "." + x
          yield dest + n + "." + x, src
          if ns.include_symbols:
              pdb = src.with_suffix(".pdb")
              if pdb.is_file():
                  yield dest + n + ".pdb", pdb
          if ns.include_dev:
              lib = src.with_suffix(".lib")
              if lib.is_file():
                  yield "libs/" + n + ".lib", lib
  
      if ns.include_appxmanifest:
          yield from in_build(
              "python_uwp.exe", new_name="python{}".format(VER_DOT)
          )
          yield from in_build(
              "pythonw_uwp.exe", new_name="pythonw{}".format(VER_DOT)
          )
          # For backwards compatibility, but we don't reference these ourselves.
          yield from in_build("python_uwp.exe", new_name="python")
          yield from in_build("pythonw_uwp.exe", new_name="pythonw")
      else:
          yield from in_build("python.exe", new_name="python")
          yield from in_build("pythonw.exe", new_name="pythonw")
  
      yield from in_build(PYTHON_DLL_NAME)
  
      if ns.include_launchers and ns.include_appxmanifest:
          if ns.include_pip:
              yield from in_build(
                  "python_uwp.exe", new_name="pip{}".format(VER_DOT)
              )
          if ns.include_idle:
              yield from in_build(
                  "pythonw_uwp.exe", new_name="idle{}".format(VER_DOT)
              )
  
      if ns.include_stable:
          yield from in_build(PYTHON_STABLE_DLL_NAME)
  
      found_any = False
      for dest, src in rglob(ns.build, "vcruntime*.dll"):
          found_any = True
          yield dest, src
      if not found_any:
          log_error("Failed to locate vcruntime DLL in the build.")
  
      yield "LICENSE.txt", ns.build / "LICENSE.txt"
  
      for dest, src in rglob(ns.build, ("*.pyd", "*.dll")):
          if (
              src.stem.endswith("_d") != bool(ns.debug)
              and src not in REQUIRED_DLLS
          ):
              continue
          if src in EXCLUDE_FROM_PYDS:
              continue
          if src in TEST_PYDS_ONLY and not ns.include_tests:
              continue
          if src in TCLTK_PYDS_ONLY and not ns.include_tcltk:
              continue
  
          yield from in_build(
              src.name, dest="" if ns.flat_dlls else "DLLs/"
          )
  
      if ns.zip_lib:
          zip_name = PYTHON_ZIP_NAME
          yield zip_name, ns.temp / zip_name
      else:
          for dest, src in get_lib_layout(ns):
              yield "Lib/{}".format(dest), src
  
          if ns.include_venv:
              yield from in_build(
                  "venvlauncher.exe", "Lib/venv/scripts/nt/", "python"
              )
              yield from in_build(
                  "venvwlauncher.exe", "Lib/venv/scripts/nt/", "pythonw"
              )
  
      if ns.include_tools:
  
          def _c(d):
              if d.is_dir():
                  return d in TOOLS_DIRS
              return d in TOOLS_FILES
  
          for dest, src in rglob(ns.source / "Tools", "**/*", _c):
              yield "Tools/{}".format(dest), src
  
      if ns.include_underpth:
          yield PYTHON_PTH_NAME, ns.temp / PYTHON_PTH_NAME
  
      if ns.include_dev:
          for dest, src in rglob(ns.source / "Include", "**/*.h"):
              yield "include/{}".format(dest), src
          yield "include/pyconfig.h", ns.build / "pyconfig.h"
  
      for dest, src in get_tcltk_lib(ns):
          yield dest, src
  
      if ns.include_pip:
          for dest, src in get_pip_layout(ns):
              if not isinstance(src, tuple) and (
                  src in EXCLUDE_FROM_LIB
                  or src in EXCLUDE_FROM_PACKAGED_LIB
              ):
                  continue
              yield dest, src
  
      if ns.include_chm:
          for dest, src in rglob(
              ns.doc_build / "htmlhelp", PYTHON_CHM_NAME
          ):
              yield "Doc/{}".format(dest), src
  
      if ns.include_html_doc:
          for dest, src in rglob(ns.doc_build / "html", "**/*"):
              yield "Doc/html/{}".format(dest), src
  
      if ns.include_props:
          for dest, src in get_props_layout(ns):
              yield dest, src
  
      if ns.include_nuspec:
          for dest, src in get_nuspec_layout(ns):
              yield dest, src
  
      for dest, src in get_appx_layout(ns):
          yield dest, src
  
      if ns.include_cat:
          if ns.flat_dlls:
              yield ns.include_cat.name, ns.include_cat
          else:
              yield "DLLs/{}".format(
                  ns.include_cat.name
              ), ns.include_cat
  
imports: import argparse
  import os
  import shutil
  import sys
  import tempfile
  import zipfile
  from pathlib import Path
  from .support.appxmanifest import *
  from .support.catalog import *
  from .support.constants import *
  from .support.filesets import *
  from .support.logging import *
  from .support.options import *
  from .support.pip import *
  from .support.props import *
  from .support.nuspec import *
label_desc: Use image node_id 4 for calling a global function with example usage: get_layout(ns) and returns: unknown, unknown