Seite 1 von 1

Konfigurationsystem

Verfasst: Samstag 1. August 2009, 16:39
von maxwell
Hallo Forum,

ich versuche gerade eine kl. Anwendung zu schreiben. Ich würde die Anwendungskonfiguration gerne in Textdateien ablegen. Gibt es hier bereits fertige Sachen?

Unabhängig von meiner Applikation. Wie verhält es sich bei einer WSGI-App? Werden die die Textdateien bei jedem Request neu eingelesen? Oder einmal geladen und stehen anschließend zur Verfügung.

Viele Grüße
Chris

Verfasst: Samstag 1. August 2009, 16:47
von cofi
ConfigParser: http://docs.python.org/library/configparser.html
ConfigObj: http://www.voidspace.org.uk/python/configobj.html

Daneben gibts noch die Moeglichkeit das direkt in .py-Dateien zu machen, ``shelve`` oder ``pickle`` zu verwenden.

WSGI ist nicht mein Gebiet, das sollen andere beantworten, baut es aber auf das CGI Prinzip auf, dann bieten sich IMHO die Varianten an, bei denen Config-Dateien nicht explizit geparst werden.

Re: Konfigurationsystem

Verfasst: Samstag 1. August 2009, 18:19
von Leonidas
maxwell hat geschrieben:Unabhängig von meiner Applikation. Wie verhält es sich bei einer WSGI-App? Werden die die Textdateien bei jedem Request neu eingelesen? Oder einmal geladen und stehen anschließend zur Verfügung.
Ja, nein, vielleicht. WSGI legt sich da nicht fest: es kann sein dass die Daten bei jedem Request eingelesen werden (etwa bei Deployment über CGI) aber es kann auch sein dass sie länger beständig sind (etwa bei Deployment über FastCGI).

Verfasst: Sonntag 2. August 2009, 08:11
von sma
Ich finde es ja auch praktisch, Konfigurationsdaten einfach in Python auszudrücken. Dann braucht man keine weiteren Bibliotheken, nur ein paar Konventionen. Ist es okay, wenn man die Konfiguration nur einmal beim Programmstart einlesen will, kann man einfach `import` benutzen.

Code: Alles auswählen

MAX_FOO = 5
BARS = ("1", "2")
Ansonsten könnte man's z.B. so machen:

Code: Alles auswählen

def load_config(s):
    config = {}
    exec s in None, config
    return config

def read_config(name):
    with open(name) as f:
        return load_config(f.read())
Stefan

Verfasst: Montag 3. August 2009, 09:14
von maxwell
hallo @ all,

erstmal vielen dank für eure antworten!
nun ja .py dateien zu verwenden ist relativ praktisch. jedoch schlecht über eine gemeinsame schnittstelle zu manipulieren. ich stelle mir eben eine shell-schnittstelle vor, von der man zentral konfigurationen über einen definierten optionssatz manipulieren kann.

im prinzip gehts mir ja nur um das minimieren von plattenzugriffen, bzw. das parsen von der config dateien.

ich glaube die idee mit shelve oder pickle ist so nicht schlecht.

vg chris