Como alguém expõe métodos e propriedades no DBus usando um QDBusAbstractAdaptor com PyQt4?

Eu estou tentando obter algum código básico em execução no DBus usando PyQt4, especificamente QtDBus. Eu estou usando uma versão Python3 do PyQt4. Eu já peguei o código que eu quero rodar no Qt (c ++), mas eu quero fazer um código similar rodando usando apenas Python. Eu quero expor métodos, sinais / slots e propriedades no DBus para outro código Python para chamar.

No Qt você usa a macro / função Q_CLASSINFO para fazer introspecção no DBus. Embora eu tenha puxado o método Q_CLASSINFO, não consigo fazer com que ele produza o mesmo tipo de funcionalidade. Tanto quanto eu posso dizer que há zero documentação sobre o método Q_CLASSINFO, então não tenho certeza se existe outra maneira. Usando D-Feet eu posso ver claramente que nenhum método é exposto automaticamente, então estou meio que preso.

Aqui está o que eu tenho até agora.

from PyQt4 import QtDBus
from PyQt4.QtCore import QCoreApplication, QObject, Q_CLASSINFO, pyqtSlot, pyqtProperty
from PyQt4.QtDBus import QDBusConnection, QDBusAbstractAdaptor

SERVICE = 'com.home.dbus'

class MyServer(QObject):


    def __init__(self):
        QObject.__init__(self)
        self.__dbusAdaptor = ServerAdaptor(self)

    def close(self):
        pass

    def echo(self, value):
        echoed = 'Received {0}'.format(value)
        return echoed

    def name(self):
        return 'myname'

    def dbus_adaptor(self):
        return self.__dbusAdaptor

class ServerAdaptor(QDBusAbstractAdaptor):
    """ This provides the DBus adaptor to the outside world"""

    def __init__(self, parent):
        super().__init__(parent)
        self.__parent = parent
        Q_CLASSINFO("D-Bus Introspection",
        "  <interface name=\"com.home.dbus\">\n"
        "    <method name=\"name\">\n"
        "      <arg direction=\"out\" type=\"s\" name=\"name\"/>\n"
        "    </method>\n"
        "    <method name=\"echo\">\n"
        "      <arg direction=\"in\" type=\"s\" name=\"phrase\"/>\n"
        "      <arg directory=\"out\" type=\"s\" name=\"echoed\"/>\n"
        "    </method>\n"
        "  </interface>\n")

    def close(self):
        parent.close()

    def echo(self, value):
        return parent.echo(value)

    def name(self):
        return parent.name

def start():
    app = QCoreApplication([])
    if QDBusConnection.sessionBus().isConnected() == False:
        print('Cannot connect to D-Bus session bus')
        return
    print('Starting')
    server = MyServer()
    if not QDBusConnection.sessionBus().registerService(SERVICE):
        print('Unable to register service name')
        return
    if not QDBusConnection.sessionBus().registerObject('/mydbus', server.dbus_adaptor):
        print('Unable to register object at service path')
        return
    app.exec();
    print('Exited')

if __name__ == '__main__':
    start()

Embora eu realmente goste do uso do QtDBus em C ++ por causa de como eu quero estruturar esse meu grande projeto, eu realmente preciso que o objeto acessado via DBus seja escrito em Python3.