I understand this is a recurring question but I think my use case is a bit different from the norm:

On one end, I have a number of tasks running that update the state of a Model object, all running asynchronously with Advanced Python Scheduler
On the other end, I have a terminal UI framework (asciimatics) that is basically a loop refreshing the screen.

My goal is to have the UI display the state of the Model. How do I do this in python?
Thanks
Solved my own question. In case anyone stumbles upon a similar problem: the short answer is to use multithreading.

If you're using APS as well, you can just use the BackgroundScheduler class. It will schedule your tasks in separate threads and won't block the main one.
If you are using something else for your background tasks, just run them in a separate thread with the threading module.
How do I run separate tasks at the same time in python