Чтобы определить, является ли библиотека или приложение поточно-ориентированным, без ввода автора, я бы искал механизмы для синхронизации потоков: http://effbot.org/zone/thread-synchronization.htm или что он содержит методы потоков: http://docs.python.org/library/threading.html
Однаконичто из этого не скажет вам, как использовать API безопасным для потоков способом.Практически все может быть помещено в объект потока и передано с использованием объектов синхронизации потока.
Для чего-то вроде pubsub можно создать класс, который оборачивает API и связывается исключительно через очереди.Если pubsub находится в том же потоке, что и, например, wx, то можно было бы создать API для добавления сообщений в очередь, используя API потоков для отправки сообщений.Тогда цикл pubsub или таймер может отслеживать очередь.Затем он будет отправлять сообщения.Одна из проблем с переносом чего-то вроде pubsub заключается в том, что где-то это потребует опроса.Это можно сделать прозрачным, если опрос выполняется таймерами.Каждый поток должен был бы выделить таймер для получения сообщений, если pubsub не находился в этом потоке.Возможно, есть более элегантные подходы к этому, но я не знаю о них.