code: def process_pyx(fromfile, tofile):
      print("Processing %s" % fromfile)
      try:
          from Cython.Compiler.Version import version as cython_version
          from distutils.version import LooseVersion
  
          if LooseVersion(cython_version) < LooseVersion("0.19"):
              raise Exception("Require Cython >= 0.19")
  
      except ImportError:
          pass
  
      flags = ["--fast-fail"]
      if tofile.endswith(".cpp"):
          flags += ["--cplus"]
  
      try:
          try:
              r = subprocess.call(
                  ["cython"] + flags + ["-o", tofile, fromfile],
                  env=os.environ,
              )  # See Issue #791
              if r != 0:
                  raise Exception("Cython failed")
          except OSError:
              # There are ways of installing Cython that don't result in a cython
              # executable on the path, see gh-2397.
              r = subprocess.call(
                  [
                      sys.executable,
                      "-c",
                      "import sys; from Cython.Compiler.Main import "
                      "setuptools_main as main; sys.exit(main())",
                  ]
                  + flags
                  + ["-o", tofile, fromfile]
              )
              if r != 0:
                  raise Exception("Cython failed")
      except OSError:
          raise OSError("Cython needs to be installed")
  
file_path: neuralcoref/bin/cythonize.py
imports: import os
  import sys
  import json
  import hashlib
  import subprocess
  import argparse
label_desc: Use image node_id 1 for calling a global function with example usage: process_pyx(fromfile, tofile) without return types