code: def configuration(parent_package="", top_path=None):
      from numpy.distutils.misc_util import Configuration
      from scipy._build_utils.system_info import get_info
  
      config = Configuration("optimize", parent_package, top_path)
  
      include_dirs = [
          join(os.path.dirname(__file__), "..", "_lib", "src")
      ]
  
      minpack_src = [join("minpack", "*f")]
      config.add_library("minpack", sources=minpack_src)
      config.add_extension(
          "_minpack",
          sources=["_minpackmodule.c"],
          libraries=["minpack"],
          depends=(["minpack.h", "__minpack.h"] + minpack_src),
          include_dirs=include_dirs,
          **numpy_nodepr_api,
      )
  
      rootfind_src = [join("Zeros", "*.c")]
      rootfind_hdr = [join("Zeros", "zeros.h")]
      config.add_library(
          "rootfind",
          sources=rootfind_src,
          headers=rootfind_hdr,
          **numpy_nodepr_api,
      )
  
      config.add_extension(
          "_zeros",
          sources=["zeros.c"],
          libraries=["rootfind"],
          depends=(rootfind_src + rootfind_hdr),
          **numpy_nodepr_api,
      )
  
      lapack = get_info("lapack_opt")
      if "define_macros" in numpy_nodepr_api:
          if ("define_macros" in lapack) and (
              lapack["define_macros"] is not None
          ):
              lapack["define_macros"] = (
                  lapack["define_macros"]
                  + numpy_nodepr_api["define_macros"]
              )
          else:
              lapack["define_macros"] = numpy_nodepr_api[
                  "define_macros"
              ]
      sources = ["lbfgsb.pyf", "lbfgsb.f", "linpack.f", "timer.f"]
      config.add_extension(
          "_lbfgsb",
          sources=[join("lbfgsb_src", x) for x in sources],
          **lapack,
      )
  
      sources = ["moduleTNC.c", "tnc.c"]
      config.add_extension(
          "moduleTNC",
          sources=[join("tnc", x) for x in sources],
          depends=[join("tnc", "tnc.h")],
          **numpy_nodepr_api,
      )
  
      config.add_extension(
          "_cobyla",
          sources=[
              join("cobyla", x)
              for x in ["cobyla.pyf", "cobyla2.f", "trstlp.f"]
          ],
          **numpy_nodepr_api,
      )
  
      sources = ["minpack2.pyf", "dcsrch.f", "dcstep.f"]
      config.add_extension(
          "minpack2",
          sources=[join("minpack2", x) for x in sources],
          **numpy_nodepr_api,
      )
  
      sources = ["slsqp.pyf", "slsqp_optmz.f"]
      config.add_extension(
          "_slsqp",
          sources=[join("slsqp", x) for x in sources],
          **numpy_nodepr_api,
      )
  
      config.add_extension(
          "_nnls",
          sources=[join("nnls", x) for x in ["nnls.f", "nnls.pyf"]],
          **numpy_nodepr_api,
      )
  
      config.add_extension(
          "_group_columns",
          sources=["_group_columns.c"],
      )
  
      config.add_subpackage("_lsq")
  
      config.add_subpackage("_trlib")
  
      config.add_subpackage("_trustregion_constr")
  
      config.add_subpackage("_shgo_lib")
      config.add_data_dir("_shgo_lib")
  
      config.add_data_dir("tests")
  
      # Add license files
      config.add_data_files("lbfgsb_src/README")
  
      return config
  
imports: from __future__ import division, print_function, absolute_import
  import os.path
  from os.path import join
  from scipy._build_utils import numpy_nodepr_api
label_desc: Use image node_id 1 for calling a global function with example usage: configuration(parent_package, top_path) and returns: config