============= Configuration ============= Die Klasse Config stellt einen globalen Zugriff auf das Config-File zur Verfügung. Die Konfiguration wird in einer JSON-Datei gespeichert und der Aufbau gliedert sich wie folgt: .. code-block:: javascript { "PROPERTY_NAME1":{ "PROPERTY_KEY1":"KEY_VALUE", "PROPERTY_KEY2":"KEY_VALUE", }, "PROPERTY_NAME2":{ "PROPERTY_KEY1":"KEY_VALUE", "PROPERTY_KEY2":"KEY_VALUE", }, ... } Der Zugriff auf die Entsprechende KEY_VALUE kann über die ``get_property(PROPERTY_NAME,PROPERTY_KEY)`` ausgelesen werden. .. hint:: Wird die ``get_property()-Methode`` mit Namen oder Schlüsseln gerufen, die es noch nicht gibt, werden diese als leere Hülle in dem Config-File angelegt. Klassendiagramm =============== .. image:: _img/Config-Klassendiagramm.png :align: center Nutzen der globalen Konfiguration in eigenem Modul ================================================== Um die globale Konfiguration im eigenen Modul nutzen zu können muss die Klasse Config im eigenen Modul inkludiert werden und anschließend von dieser Basisklasse abgeleitet werden. .. code-block:: python from configuration.config import Config class ExampleConfig(Config): @property def key1(self): return self.get_property("Example", "KEY1") @property def key2(self): return self.get_property("Example", "KEY2") Die von der Basisklasse Config abgeleitete Klasse ExampleConfig() stellt über die beiden Methoden key1() und key2() den Zugriff auf die beiden Schlüssel des Config-FIles zur Verfügung. Der Eintrag in der config.json sieht dann wie folgt aus: .. code-block:: javascript { "Example":{ "KEY1":"42", // liefert bei Aufruf der Methode key1() Wert 42 "KEY2":"Beispiel 1", // liefert bei Aufruf der Methode key2() "Beispiel 1" }, ... } Schnittstellen ============== .. automodule:: einsatzserver.configuration.config :members: