ConfigSubDict: gespeicherte Werte lesen

  • Ich verwende in einem Plugin einen ConfigSubDict. Die einzelnen Werte baue ich dynamisch auf, wenn der Screen aufgerufen wird.


    Zuerst wird mal der ConfigSubDict überhaupt angelegt:

    Code
    1. config.meinplugin.elements = ConfigSubDict()


    Später werden dann die Optionen pro Element aufgebaut:

    Code
    1. config.meinplugin.elements[element] = ConfigSelection(default="none", choices=[("none", "nothing"), ("all", "all")])


    Im configfile wird der Eintrag als config.meinplugin.elements.elementname=all gespeichert.


    Wenn ich den Screen aufrufe, dann wird wie gewünscht "all" ausgewählt.


    Wenn ich nun aber den Wert sonstwo aufrufen will, dann gibt es einen KeyError. Grundsätzlich irgendwie logisch, da durch die Initialisierung config.meinplugin.elements ein leerer Dict ist.


    Auch ein Zugriff auf config.meinplugin.elements.elementname.value gibt einen Fehler. Kann ich den Wert wirklich nur auslesen, indem ich das configfile auslese?

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Super Antwort - echt jetzt!


    Es gibt dort einen config helper der die config beim start lädt - aber wenn du nicht nachlesen willst, kann ich auch nicht helfen...

  • So ging es mir auch. Aber du hast mir ja jetzt einen Hinweis gegeben.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ich hab am Anfang auch mit dem ConfigSubDict gekämpft und bin dann draufgekommen, dass die irgendwie nicht von selber geladen wird.


    Probier das mal von Styles aus mit dem ConfigHelper, eventuell funktioniert das dann auch bei dir ;)

  • ja, der Zugriff über .stored_values klappt. Ich hatte es schon mit load() versucht. Eigentlich müsste doch beim init gleich geprüft werden, ob schon was in der Config ist und dann geladen werden.


    Danke dir.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource