code: def run_setup(binary: bool = True) -> None:
      if not binary:
          extensions = []
          import logging
  
          logging.warning(
              """
  ##############################################################################
  
  Building arch WITHOUT compiling the binary. You should ensure that numba is
  installed.
  
  ##############################################################################
  """
          )
      else:
          directives = {
              "language_level": "3",
              "cpow": True,
              "linetrace": CYTHON_COVERAGE,
              "boundscheck": False,
              "wraparound": False,
              "cdivision": True,
              "binding": True,
          }
          macros = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]
          if CYTHON_COVERAGE:
              macros.append(("CYTHON_TRACE", "1"))
  
          ext_modules = []
          ext_modules.append(
              Extension(
                  "arch.univariate.recursions",
                  ["./arch/univariate/recursions.pyx"],
                  define_macros=macros,
              )
          )
          ext_modules.append(
              Extension(
                  "arch.bootstrap._samplers",
                  ["./arch/bootstrap/_samplers.pyx"],
                  define_macros=macros,
              )
          )
          extensions = cythonize(
              ext_modules,
              force=CYTHON_COVERAGE,
              compiler_directives=directives,
          )
  
      setup(
          name="arch",
          long_description=description,
          long_description_content_type="text/markdown",
          packages=["arch"] + find_namespace_packages(),
          ext_modules=extensions,
          package_dir={"arch": "./arch"},
          cmdclass=cmdclass,
          zip_safe=False,
          include_package_data=False,
          package_data=package_data,
          distclass=BinaryDistribution,
      )
  
file_path: arch/setup.py
imports: from setuptools import Command, Extension, find_namespace_packages, setup
  from setuptools.command.build_ext import build_ext
  from setuptools.dist import Distribution
  from setuptools.errors import CCompilerError, ExecError, PlatformError
  from collections import defaultdict
  import fnmatch
  import os
label_desc: Use image node_id 1 for calling a global function with example usage: run_setup(binary) without return types