code: def _distutils_scheme(
      dist_name,
      user=False,
      home=None,
      root=None,
      isolated=False,
      prefix=None,
  ):
      """
      Return a distutils install scheme
  
      This function is vendored from pip.
      """
      from setuptools.dist import Distribution
  
      def running_under_virtualenv():
          """Return True if we're running inside a virtualenv, False otherwise."""
          if hasattr(sys, "real_prefix"):
              return True
          if sys.prefix != getattr(sys, "base_prefix", sys.prefix):
              return True
          return False
  
      scheme = {}
  
      if isolated:
          extra_dist_args = {"script_args": ["--no-user-cfg"]}
      else:
          extra_dist_args = {}
      dist_args = {"name": dist_name}
      dist_args.update(extra_dist_args)
  
      d = Distribution(dist_args)
      d.parse_config_files()
      i = d.get_command_obj("install", create=True)
      # NOTE: setting user or home has the side-effect of creating the home dir
      # or user base for installations during finalize_options()
      # ideally, we'd prefer a scheme class that has no side-effects.
      assert not (user and prefix), f"user={user} prefix={prefix}"
      i.user = user or i.user
      if user:
          i.prefix = ""
      i.prefix = prefix or i.prefix
      i.home = home or i.home
      i.root = root or i.root
      i.finalize_options()
      for key in ("purelib", "platlib", "headers", "scripts", "data"):
          scheme[key] = getattr(i, "install_" + key)
  
      # install_lib specified in setup.cfg should install *everything*
      # into there (i.e. it takes precedence over both purelib and
      # platlib).  Note, i.install_lib is *always* set after
      # finalize_options(); we only want to override here if the user
      # has explicitly requested it hence going back to the config
      if "install_lib" in d.get_option_dict("install"):
          scheme.update(
              {"purelib": i.install_lib, "platlib": i.install_lib}
          )
  
      if running_under_virtualenv():
          scheme["headers"] = os.path.join(
              sys.prefix,
              "include",
              "site",
              "python" + sys.version[:3],
              dist_name,
          )
  
          if root is not None:
              path_no_drive = os.path.splitdrive(
                  os.path.abspath(scheme["headers"])
              )[1]
              scheme["headers"] = os.path.join(
                  root,
                  path_no_drive[1:],
              )
  
      return scheme
  
imports: import logging
  import os
  import re
  import subprocess
  import sys
  from guild import util
label_desc: Use image node_id 15 for calling a global function with example usage: _distutils_scheme(dist_name, user, home, root, isolated, prefix) and returns: scheme, False, True, True