#### Previous topic

Low-level callback functions

#### Next topic

scipy.LowLevelCallable.from_cython

# scipy.LowLevelCallable

class `scipy.``LowLevelCallable`

  Low-level callback function.

  Parameters:

  function : {PyCapsule, ctypes function pointer, cffi function pointer}

  > Low-level callback function.

  user_data : {PyCapsule, ctypes void pointer, cffi void pointer}

  > User data to pass on to the callback function.

  signature : str, optional

  > Signature of the function. If omitted, determined from function, if possible.

  Notes

  The argument `function` can be one of:

  - PyCapsule, whose name contains the C function signature
  - ctypes function pointer
  - cffi function pointer

  The signature of the low-level callback must match one of those expected by the routine it is passed to.

  If constructing low-level functions from a PyCapsule, the name of the capsule must be the corresponding signature, in the format:

      return_type (arg1_type, arg2_type, ...)

  For example:

      "void (double)"
      "double (double, int *, void *)"

  The context of a PyCapsule passed in as `function` is used as `user_data`, if an explicit value for `user_data` was not given.

  Attributes

  function | Callback function given
  user_data | User data given
  signature | Signature of the function.

  Methods

  `from_cython`(module, name[, user_data, signature]) | Create a low-level callback function from an exported Cython function.