Hi @abitrolly ,
jit decorator is a completely normal decorator. As such it is just syntactic sugar around a function that modifies other functions.
# The above is basically the same as
f = decorator(f)
You can therefore do this
from numba import jit
# This is the plain replacement of @jit
f_jit = jit(f)
#This is used when you want to pass extra options as in @jit(nopython=True)
f_jit_options = jit(nopython=True)(f)
The reason that the latter works, is that
jit is actually a little clever and figures out if the first argument passed is a function or not. If not it assumes you pass options and creates a specialised decorator on the fly, which is then applied to
f. Otherwise the default options are used.