code: def pip_run(build_ext):
      if SKIP_BAZEL_BUILD:
          build(False, False, False)
      else:
          build(True, BUILD_JAVA, True)
  
      if setup_spec.type == SetupType.RAY:
          setup_spec.files_to_include += ray_files
  
          thirdparty_dir = os.path.join(ROOT_DIR, THIRDPARTY_SUBDIR)
          setup_spec.files_to_include += walk_directory(thirdparty_dir)
  
          runtime_env_agent_thirdparty_dir = os.path.join(
              ROOT_DIR, RUNTIME_ENV_AGENT_THIRDPARTY_SUBDIR
          )
          setup_spec.files_to_include += walk_directory(
              runtime_env_agent_thirdparty_dir
          )
  
          # Copy over the autogenerated protobuf Python bindings.
          for directory in generated_python_directories:
              for filename in os.listdir(directory):
                  if filename[-3:] == ".py":
                      setup_spec.files_to_include.append(
                          os.path.join(directory, filename)
                      )
  
      copied_files = 0
      for filename in setup_spec.files_to_include:
          copied_files += copy_file(
              build_ext.build_lib, filename, ROOT_DIR
          )
      if sys.platform == "win32":
          # _raylet.pyd links to some MSVC runtime DLLS, this one may not be
          # present on a user's machine. While vcruntime140.dll and
          # vcruntime140_1.dll are also required, they are provided by CPython.
          runtime_dlls = ["msvcp140.dll"]
          add_system_dlls(
              runtime_dlls, os.path.join(build_ext.build_lib, "ray")
          )
          copied_files += len(runtime_dlls)
      print(
          "# of files copied to {}: {}".format(
              build_ext.build_lib, copied_files
          )
      )
  
imports: import argparse
  import errno
  import io
  import logging
  import os
  import pathlib
  import re
  import shlex
  import shutil
  import subprocess
  import sys
  import urllib.error
  import urllib.parse
  import urllib.request
  import warnings
  from enum import Enum
  from itertools import chain
label_desc: Use image node_id 12 for calling a global function with example usage: pip_run(build_ext) without return types