The name pyfunc argument in kernel.py is a remnant from when we converted python functions to C code in v3. Now that we don't do that anymore in v4, the name may not be very informative/descriptive
Since the pyfunc expects a function with the signature of a Kernel or a list of such functions (or a Kernel object), I'd suggest we rename it to kernels. Or does anyone have a better name for it?