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.
class_docstr_tok: ["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 sys
  import tokenize
  import shutil
  import contextlib
  import setuptools
  import distutils
  from setuptools.py31compat import TemporaryDirectory
  from pkg_resources import parse_requirements
  from pkg_resources.py31compat import makedirs
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