class_docstr: Compatibility backend for setuptools
  
  This is a version of setuptools.build_meta that endeavors
  to maintain backwards
  compatibility with pre-PEP 517 modes of invocation. It
  exists as a temporary
  bridge between the old packaging mechanism and the new
  packaging mechanism,
  and will eventually be removed.
code: def run_setup(self, setup_script="setup.py"):
      # In order to maintain compatibility with scripts assuming that
      # the setup.py script is in a directory on the PYTHONPATH, inject
      # '' into sys.path. (pypa/setuptools#1642)
      sys_path = list(sys.path)  # Save the original path
  
      script_dir = os.path.dirname(os.path.abspath(setup_script))
      if script_dir not in sys.path:
          sys.path.insert(0, script_dir)
  
      # Some setup.py scripts (e.g. in pygame and numpy) use sys.argv[0] to
      # get the directory of the source code. They expect it to refer to the
      # setup.py script.
      sys_argv_0 = sys.argv[0]
      sys.argv[0] = setup_script
  
      try:
          super(_BuildMetaLegacyBackend, self).run_setup(
              setup_script=setup_script
          )
      finally:
          # While PEP 517 frontends should be calling each hook in a fresh
          # subprocess according to the standard (and thus it should not be
          # strictly necessary to restore the old sys.path), we'll restore
          # the original path so that the path manipulation does not persist
          # within the hook after run_setup is called.
          sys.path[:] = sys_path
          sys.argv[0] = sys_argv_0
  
imports: import io
  import os
  import shlex
  import sys
  import tokenize
  import shutil
  import contextlib
  import tempfile
  import warnings
  from pathlib import Path
  from typing import Dict, Iterator, List, Optional, Union
  import setuptools
  import distutils
  from .None import errors
  from ._path import same_path
  from ._reqs import parse_strings
  from .warnings import SetuptoolsDeprecationWarning
  from distutils.util import strtobool
label_desc: Use image node_id 1 for calling the _BuildMetaLegacyBackend obj's underlying member method code with example usage: obj.run_setup(setup_script) without return types