Мне нужно разрешить другим приложениям Python регистрировать функции обратного вызова для событий в моем приложении. Они должны иметь связанные с ними приоритеты (поэтому обратный вызов с приоритетом 10 запускается перед обратным вызовом с приоритетом 1), а функции обратного вызова должны иметь возможность сигнализировать об ошибках диспетчеру.
Все это легкие обратные вызовы, выполняемые в одном процессе, поэтому мне не нужно посылать сигналы через границы процесса.
Есть ли хорошая библиотека Python, чтобы справиться с этим, или мне нужно написать свою собственную?
@ Флориан: Я думаю, что Крису нужны библиотеки, которые будут отправлять события между двумя отдельными приложениями.






Эти другие приложения работают в другом адресном пространстве? Если это так, вам необходимо использовать библиотеку межпроцессного взаимодействия, например D-BUS.
Если вы просто отправляете сигналы в том же процессе, попробуйте PyDispatcher
Позволяет ли PyDispatcher вызывающим абонентам устанавливать приоритет своих методов? Или возвращаемые значения?
Нет приоритета, но это то, что вы можете написать для выполнения функции регистрации сигнала. Не уверен, что вы имеете в виду под возвращаемыми значениями - я считаю, что PyDispatcher возвращает результат вызова всех обратных вызовов в виде списка.
На какой платформе вы работаете? GObject - это основа графического интерфейса GTK, широко используемого в Linux, и он поддерживает циклы событий с такими событиями, приоритезируемыми как это.
Попробуйте Twisted для чего-нибудь, связанного с сетью. Его перспективный брокер довольно удобен.
Попробуйте python-callbacks - http://code.google.com/p/python-callbacks/.
Разве это не обман этого stackoverflow.com/questions/115844/…