code: def configuration(parent_package="", top_path=None):
      from numpy.distutils.misc_util import Configuration
      from numpy.distutils.system_info import get_info, system_info
  
      config = Configuration("linalg", parent_package, top_path)
  
      config.add_subpackage("tests")
  
      # Configure lapack_lite
  
      src_dir = "lapack_lite"
      lapack_lite_src = [
          os.path.join(src_dir, "python_xerbla.c"),
          os.path.join(src_dir, "f2c_z_lapack.c"),
          os.path.join(src_dir, "f2c_c_lapack.c"),
          os.path.join(src_dir, "f2c_d_lapack.c"),
          os.path.join(src_dir, "f2c_s_lapack.c"),
          os.path.join(src_dir, "f2c_lapack.c"),
          os.path.join(src_dir, "f2c_blas.c"),
          os.path.join(src_dir, "f2c_config.c"),
          os.path.join(src_dir, "f2c.c"),
      ]
      all_sources = config.paths(lapack_lite_src)
  
      if os.environ.get("NPY_USE_BLAS_ILP64", "0") != "0":
          lapack_info = get_info("lapack_ilp64_opt", 2)
      else:
          lapack_info = get_info("lapack_opt", 0)  # and {}
  
      use_lapack_lite = not lapack_info
  
      if use_lapack_lite:
          # This makes numpy.distutils write the fact that lapack_lite
          # is being used to numpy.__config__
          class numpy_linalg_lapack_lite(system_info):
              def calc_info(self):
                  info = {"language": "c"}
                  size_t_size = sysconfig.get_config_var(
                      "SIZEOF_SIZE_T"
                  )
                  if size_t_size:
                      maxsize = 2 ** (size_t_size - 1) - 1
                  else:
                      # We prefer using sysconfig as it allows cross-compilation
                      # but the information may be missing (e.g. on windows).
                      maxsize = sys.maxsize
                  if maxsize > 2**32:
                      # Build lapack-lite in 64-bit integer mode.
                      # The suffix is arbitrary (lapack_lite symbols follow it),
                      # but use the "64_" convention here.
                      info["define_macros"] = [
                          ("HAVE_BLAS_ILP64", None),
                          ("BLAS_SYMBOL_SUFFIX", "64_"),
                          ("OPENBLAS_ILP64_NAMING_SCHEME", None),
                      ]
                  self.set_info(**info)
  
          lapack_info = numpy_linalg_lapack_lite().get_info(2)
  
      def get_lapack_lite_sources(ext, build_dir):
          if use_lapack_lite:
              print("### Warning:  Using unoptimized lapack ###")
              return all_sources
          else:
              if sys.platform == "win32":
                  print("### Warning:  python_xerbla.c is disabled ###")
                  return []
              return [all_sources[0]]
  
      config.add_extension(
          "lapack_lite",
          sources=["lapack_litemodule.c", get_lapack_lite_sources],
          depends=["lapack_lite/f2c.h"],
          extra_info=lapack_info,
      )
  
      # umath_linalg module
      config.add_extension(
          "_umath_linalg",
          sources=["umath_linalg.cpp", get_lapack_lite_sources],
          depends=["lapack_lite/f2c.h"],
          extra_info=lapack_info,
          libraries=["npymath"],
      )
      config.add_data_files("*.pyi")
      return config
  
imports: import os
  import sys
  import sysconfig
label_desc: Use image node_id 1 for calling a global function with example usage: configuration(parent_package, top_path) and returns: config, all_sources, list, list