diff --git a/changelog.d/fix-runner-parameter-not-found.fixed.md b/changelog.d/fix-runner-parameter-not-found.fixed.md new file mode 100644 index 0000000..4ccf00d --- /dev/null +++ b/changelog.d/fix-runner-parameter-not-found.fixed.md @@ -0,0 +1 @@ +Handle missing parameter errors gracefully in PolicyEngineRunner instead of crashing. diff --git a/policyengine_taxsim/runners/policyengine_runner.py b/policyengine_taxsim/runners/policyengine_runner.py index d18b116..ad9e84d 100644 --- a/policyengine_taxsim/runners/policyengine_runner.py +++ b/policyengine_taxsim/runners/policyengine_runner.py @@ -1043,7 +1043,7 @@ def _extract_vectorized_results( arr = self._calc_tax_unit(sim, resolved, year_str) var_sum += arr except Exception as e: - if "does not exist" in str(e): + if "does not exist" in str(e) or "was not found" in str(e): if self.logs: print( f"Variable {resolved} not implemented, setting to 0" @@ -1061,7 +1061,7 @@ def _extract_vectorized_results( arr = self._calc_tax_unit(sim, resolved, year_str) result_array[state_mask] = arr[state_mask] except Exception as e: - if "does not exist" in str(e): + if "does not exist" in str(e) or "was not found" in str(e): if self.logs: print( f"Variable {resolved} not implemented, setting to 0" @@ -1085,7 +1085,8 @@ def _extract_vectorized_results( columns[taxsim_var] = np.round(arr, 2) except Exception as e: - if "does not exist" in str(e): + err_msg = str(e) + if "does not exist" in err_msg or "was not found" in err_msg: if self.logs: print( f"Variable {pe_var} not implemented, setting to 0"