Tax-Calculator Decorators#
Tax-Calculator Decorators
taxcalc.decorators#
Implement numba JIT decorators used to speed-up the execution of Tax-Calculator functions in the calcfunctions.py module.
- taxcalc.decorators.apply_jit(dtype_sig_out, dtype_sig_in, parameters=None, **kwargs)[source]#
- Make a decorator that takes in a calc-style function, handle apply step. 
- taxcalc.decorators.create_apply_function_string(sigout, sigin, parameters)[source]#
- Create a string for a function of the form: - def ap_fuc(x_0, x_1, x_2, ...): for i in range(len(x_0)): x_0[i], ... = jitted_f(x_j[i], ...) return x_0[i], ... - where the specific args to jitted_f and the number of values to return is determined by sigout and sigin. - Parameters:
- sigout (iterable of the out arguments) 
- sigin (iterable of the in arguments) 
- parameters (iterable of which of the args (from in_args) are parameter) – variables (as opposed to column records). This influences how we construct the apply-style function 
 
- Return type:
- a String representing the function 
 
- taxcalc.decorators.create_toplevel_function_string(args_out, args_in, pm_or_pf)[source]#
- Create a string for a function of the form: - def hl_func(x_0, x_1, x_2, …):
- outputs = (…) = calc_func(…) header = […] return DataFrame(data, columns=header) 
 - Parameters:
- args_out (iterable of the out arguments) 
- args_in (iterable of the in arguments) 
- pm_or_pf (iterable of strings for object that holds each arg) 
 
- Return type:
- a String representing the function 
 
- taxcalc.decorators.id_wrapper(*dec_args, **dec_kwargs)[source]#
- Function wrapper when numba package is not being used during debugging. 
- taxcalc.decorators.iterate_jit(parameters=None, **kwargs)[source]#
- Public decorator for a calc-style function (see calcfunctions.py) that transforms the calc-style function into an apply-style function that can be called by Calculator class methods (see calculator.py). 
- taxcalc.decorators.make_apply_function(func, out_args, in_args, parameters, do_jit=True, **kwargs)[source]#
- Takes a calc-style function and creates the necessary Python code for an apply-style function. Will also jit the function if desired. - Parameters:
- func (the calc-style function) 
- out_args (list of out arguments for the apply-style function) 
- in_args (list of in arguments for the apply-style function) 
- parameters (iterable of which of the args (from in_args) are parameter) – variables (as opposed to column records). This influences how we construct the apply-style function. 
- do_jit (Bool, if True, jit the resulting apply-style function) 
 
- Return type:
- apply-style function