def _get_numba_ufunc(expr):
 if isinstance(expr, Broadcast):
  leaves = expr._scalars
  expr = expr._scalar_expr
 else:
  leaves = expr._leaves()
 (s, scope) = funcstr(leaves, expr)
 scope = dict(((k, (numba.jit(nopython=True)(v) if callable(v) else v)) for (k, v) in scope.items()))
 func = eval(s, scope)
 sig = compute_signature(expr)
 with lock:
  ufunc = numba.vectorize([sig], nopython=True)(func)
 return ufunc

def _get_numba_ufunc ( expr ) : if isinstance ( expr , Broadcast ) : leaves = expr . _scalars expr = expr . _scalar_expr else : leaves = expr . _leaves ( ) ( s , scope ) = funcstr ( leaves , expr ) scope = dict ( ( ( k , ( numba . jit ( nopython = True ) ( v ) if callable ( v ) else v ) ) for ( k , v ) in scope . items ( ) ) ) func = eval ( s , scope ) sig = compute_signature ( expr ) with lock : ufunc = numba . vectorize ( [ sig ] , nopython = True ) ( func ) return ufunc
construct a numba ufunc from a blaze expression parameters expr : blaze .