![]() |
0.1.33
|
Carries a Python exception raised inside a callback back to the caller. More...
Carries a Python exception raised inside a callback back to the caller.
A Python exception cannot propagate through the intervening C++ frames. Worse, ctypes does not even let it escape the callback: it prints the traceback via PyErr_WriteUnraisable and returns 0 to C++, and 0 is a perfectly plausible objective value, so the optimizer would carry on and return a confidently wrong answer.
Instead the trampoline catches everything, stores it here, and raises the error flag. The native side unwinds and returns PARAMOPT_CALLBACK_FAILED, and the caller re-raises the stored exception with its original traceback.
Definition at line 425 of file UParameterOptimizationWrapper.py.
Public Member Functions | |
| __init__ (self) | |
Public Attributes | |
| Optional[Tuple] | exception = None |
| pyhelios.wrappers.UParameterOptimizationWrapper._CallbackState.__init__ | ( | self | ) |
Definition at line 429 of file UParameterOptimizationWrapper.py.
| Optional[Tuple] pyhelios.wrappers.UParameterOptimizationWrapper._CallbackState.exception = None |
Definition at line 430 of file UParameterOptimizationWrapper.py.