[Python-de] Registrierung externer Plugins

Florian Lindner mailinglists at xgm.de
Di Sep 4 12:20:20 CEST 2012


Hallo,

ich schreibe ein Programm, wo sich Module (= Python Klassen)
registrieren müssen. Die Klassen werden dann, wenn ein bestimmtes Tag
in der XML-Konfigurationsdatei angetroffen wird, aufgerufen:

from somewhere import ChangeDictionary
WorkerRegistry.register("changeDictionary", ChangeDictionary)  # ist
eine @classmethod

Später gibt es eine WorkerFactory die Instanzen entsprechend zurückliefert.

Es soll anderen Benutzern ermöglicht werden neue Klassen
hinzuzugefügen und diese entsprechend zu registrieren. Ich brauche
also eine Möglichkeit die Registrierung auszuführen, wenn mein
Programm startet. Wie mache ich das am besten?

1) Ich gebe den Program einen Modulpfad mit (über Konfig-Datei,
Umgebungsvariable oder Argument) wo dieser Code liegt  Es wird dann
__import__(modulepath) ausgeführt. In der __init__.py des Modules
können die entsprechenden Aufrufe zur Registrierung liegen.

2) ...?

Wie würdert ihr das regeln? Oder ganz anders?

Grüße,
Florian


Mehr Informationen über die Mailingliste python-de