Konfigurationsystem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
maxwell
User
Beiträge: 69
Registriert: Samstag 11. Juli 2009, 15:36
Wohnort: am Fernsehturm in B.

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
be or not to be
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
maxwell
User
Beiträge: 69
Registriert: Samstag 11. Juli 2009, 15:36
Wohnort: am Fernsehturm in B.

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
be or not to be
Antworten