code: def setup_package():
      root = Path(__file__).parent
  
      if len(sys.argv) > 1 and sys.argv[1] == "clean":
          return clean(root / "thinc")
  
      with (root / "thinc" / "about.py").open("r") as f:
          about = {}
          exec(f.read(), about)
  
      include_dirs = [numpy.get_include(), get_path("include")]
      ext_modules = []
      for name in MOD_NAMES:
          mod_path = name.replace(".", "/") + ".pyx"
          ext = Extension(
              name,
              [mod_path],
              language="c++",
              include_dirs=include_dirs,
          )
          ext_modules.append(ext)
      print("Cythonizing sources")
      ext_modules = cythonize(
          ext_modules,
          compiler_directives=COMPILER_DIRECTIVES,
          language_level=2,
      )
  
      setup(
          name="thinc",
          packages=PACKAGES,
          version=about["__version__"],
          ext_modules=ext_modules,
          cmdclass={"build_ext": build_ext_subclass},
          package_data={
              "": ["*.pyx", "*.pxd", "*.pxi", "*.cu", "*.hh"]
          },
      )
  
file_path: thinc/setup.py
imports: import sys
  from setuptools.command.build_ext import build_ext
  from sysconfig import get_path
  from setuptools import Extension, setup, find_packages
  from pathlib import Path
  import numpy
  from Cython.Build import cythonize
  from Cython.Compiler import Options
label_desc: Use image node_id 2 for calling a global function with example usage: setup_package() and returns: clean