After more time than I wish to think about, I have managed to have traits/traitsui/pyface demos working without segfaults under Python 3.6 and wxPython Phoenix, and have most deprecated behaviors updated.
In summary, the triggers for two primary segfaulting issues:
- PushEventHandler - my “cure” was to comment this line out wherever it occurred.
- GetAttr method under a custom GridTableBase object - “cure” was to simply let the default method for the class handle the calls.
At this point, there may be unintended consequences of the “cures” like memory leaks or performance hits or some missed event responses. Clearly more detailed testing needs to be done to monitor for non-catastrophic fails, but I am ecstatic to be able to move forward on other things.
I have not tested every nook and cranny of mayavi, but everything I’ve tested seems to be working properly. Most important since my last report is that shifting from “Basic” to “Advanced” views doesn’t crash the program. That said, it appears the “Advanced” view is a blank screen - maybe a hint that if you want a more advanced interface you probably should program the behaviors directly in your scripts.
Cheers, Eric