Я пишу модуль Python на C. Мне нужно сообщать об ошибках, которые не могут быть описаны встроенными исключениями Python. Поэтому я хочу выбросить исключения моего собственного типа. Проблема в том, что политика Python состоит в том, чтобы извлекать все исключения из класса BaseException. Я знаю, как создать объект производного типа (назначая tp_base memeber), но я не знаю, как получить ссылку на объект типа BaseException. PyExc_BaseException - это ссылка на PyObject, представляющая класс, а не объект типа.
Как вывести пользовательские исключения Python из кода C?