I thought about this more and realized that doing (1) and simply trying to move init of global data outside of the init_application method would have the same end result as grouping the global data init into a single method and ensuring that method could only run once per python interpreter instance ... and the latter seemed much simpler after I had another look around the code. I've proposed a new PS with this approach and will add a test soon to see if it would solve the problem.
I thought about this more and realized that doing (1) and simply trying to move init of global data outside of the init_application method would have the same end result as grouping the global data init into a single method and ensuring that method could only run once per python interpreter instance ... and the latter seemed much simpler after I had another look around the code. I've proposed a new PS with this approach and will add a test soon to see if it would solve the problem.