parameters: (sig, locals={}, cache=False, **options)
return_statement: return wrapper
docstring: This decorator is used to compile a Python function into a C callback
      usable with foreign C libraries.
  
      Usage::
          @cfunc("float64(float64, float64)", nopython=True, cache=True)
          def add(a, b):
              return a + b
docstring_summary: This decorator is used to compile a Python function into a C callback
      usable with foreign C libraries.
docstring_tokens: This decorator is used to compile a Python function into a C callback usable with foreign C libraries .
function: def cfunc(sig, locals={}, cache=False, **options):
      """
      This decorator is used to compile a Python function into a C callback
      usable with foreign C libraries.
  
      Usage::
          @cfunc("float64(float64, float64)", nopython=True, cache=True)
          def add(a, b):
              return a + b
  
      """
      sig = sigutils.normalize_signature(sig)
  
      def wrapper(func):
          from .ccallback import CFunc
          res = CFunc(func, sig, locals=locals, options=options)
          if cache:
              res.enable_caching()
          res.compile()
          return res
  
      return wrapper
function_tokens: def cfunc ( sig , locals = { } , cache = False , * * options ) : sig = sigutils . normalize_signature ( sig ) def wrapper ( func ) : from . ccallback import CFunc res = CFunc ( func , sig , locals = locals , options = options ) if cache : res . enable_caching ( ) res . compile ( ) return res return wrapper