def validate_inputs(meta_param_dict, adjustment, errors_warnings): ''' Validates user inputs for parameters ''' # Validate meta parameter inputs meta_params = MetaParams() meta_params.adjust(meta_param_dict, raise_errors=False) errors_warnings["Business Tax Parameters"]["errors"].update( meta_params.errors) # Validate CCC parameter inputs params = Specification() params.adjust(adjustment["Business Tax Parameters"], raise_errors=False) errors_warnings["Business Tax Parameters"]["errors"].update( params.errors) # Validate TC parameter inputs iit_adj = cs2tc.convert_policy_adjustment( adjustment["Individual and Payroll Tax Parameters"]) iit_params = Policy() iit_params.adjust(iit_adj, raise_errors=False, ignore_warnings=True) errors_warnings["Individual and Payroll Tax Parameters"][ "errors"].update(iit_params.errors) return {"errors_warnings": errors_warnings}
def validate_inputs(meta_param_dict, adjustment, errors_warnings): ''' Validates user inputs for parameters ''' # ccc doesn't look at meta_param_dict for validating inputs. params = Specification() params.adjust(adjustment["ccc"], raise_errors=False) errors_warnings["ccc"]["errors"].update(params.errors) return errors_warnings
def run_model(meta_param_dict, adjustment): ''' Initiliazes classes from CCC that compute the model under different policies. Then calls function get output objects. ''' meta_params = MetaParams() meta_params.adjust(meta_param_dict) if meta_params.data_source == "PUF": data = retrieve_puf(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) else: data = "cps" params = Specification(year=meta_params.year, call_tc=True, data=data) params.adjust(adjustment["ccc"]) assets = Assets() calc1 = Calculator(params, assets) params2 = Specification(year=meta_params.year) calc2 = Calculator(params2, assets) comp_dict = comp_output(calc1, calc2) return comp_dict
def validate_inputs(meta_param_dict, adjustment, errors_warnings): ''' Validates user inputs for parameters ''' # ccc doesn't look at meta_param_dict for validating inputs. params = Specification() params.adjust(adjustment["Business Tax Parameters"], raise_errors=False) errors_warnings["Business Tax Parameters"]["errors"].update(params.errors) # Validate TC parameter inputs pol_params = {} # drop checkbox parameters. for param, data in list( adjustment["Individual and Payroll Tax Parameters"].items()): if not param.endswith("checkbox"): pol_params[param] = data iit_params = TCParams() iit_params.adjust(pol_params, raise_errors=False) errors_warnings["Individual and Payroll Tax Parameters"]["errors"].update( iit_params.errors) return {"errors_warnings": errors_warnings}