summaryrefslogtreecommitdiff
path: root/portato/config_parser.py
diff options
context:
space:
mode:
authorNecoro <>2008-01-14 16:45:06 +0000
committerNecoro <>2008-01-14 16:45:06 +0000
commitf9a4a36b341b1d866269f568e86cbf63b90b5f63 (patch)
tree4d532b9a6cbf77a72cd99d841cd37ba5f8228991 /portato/config_parser.py
parent31b1482b90f4d9c03c549538756978fe6f2da6a3 (diff)
downloadportato-f9a4a36b341b1d866269f568e86cbf63b90b5f63.tar.gz
portato-f9a4a36b341b1d866269f568e86cbf63b90b5f63.tar.bz2
portato-f9a4a36b341b1d866269f568e86cbf63b90b5f63.zip
r609@Devoty: necoro | 2008-01-14 17:04:38 +0100
Allowed '-' and '_' in key names. Also use group names instead of their number. r610@Devoty: necoro | 2008-01-14 17:05:42 +0100 Disabled saving of the queues r611@Devoty: necoro | 2008-01-14 17:08:53 +0100 Added the possibility to permanently en-/disable plugins r612@Devoty: necoro | 2008-01-14 17:14:09 +0100 adjust changelog and translations r613@Devoty: necoro | 2008-01-14 17:40:53 +0100 Dropdown should be localized too
Diffstat (limited to 'portato/config_parser.py')
-rw-r--r--portato/config_parser.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/portato/config_parser.py b/portato/config_parser.py
index b2b47a6..30d5d28 100644
--- a/portato/config_parser.py
+++ b/portato/config_parser.py
@@ -43,8 +43,8 @@ COMMENT = [";","#"]
# precompiled expressions
TRUE = re.compile("((true)|(1)|(on)|(wahr)|(ja)|(yes))", re.I)
FALSE = re.compile("((false)|(0)|(off)|(falsch)|(nein)|(no))", re.I)
-SECTION = re.compile("\s*\[(\w+)\]\s*")
-EXPRESSION = re.compile(r"\s*(\w+)\s*[:=]\s*(.*)\s*")
+SECTION = re.compile("\s*\[(?P<name>\w(\w|[-_])*)\]\s*")
+EXPRESSION = re.compile(r"\s*(?P<key>\w(\w|[-_])*)\s*[:=]\s*(?P<value>.*)\s*")
class Value (object):
"""Class defining a value of a key.
@@ -187,7 +187,7 @@ class ConfigParser:
# look for a section
match = SECTION.search(line)
if match:
- sec = match.group(1).upper()
+ sec = match.group("name").upper()
self.sections[sec] = count
if sec != section:
self.vars[sec] = {}
@@ -197,7 +197,7 @@ class ConfigParser:
# look for an expression
match = EXPRESSION.search(line)
if match:
- val = match.group(2)
+ val = match.group("value")
# find the boolean value
bool = None
@@ -207,9 +207,9 @@ class ConfigParser:
bool = False
# insert
- key = match.group(1).lower()
+ key = match.group("key").lower()
self.vars[section][key] = Value(val, count, bool = bool)
- self.pos[count] = match.span(2)
+ self.pos[count] = match.span("value")
else: # neither comment nor empty nor expression nor section => error
error(_("Unrecognized line in configuration: %s"), line)
@@ -252,7 +252,7 @@ class ConfigParser:
if val.is_bool():
return val.boolean
- raise ValueError, "\"%s\" is not a boolean." % key
+ raise ValueError, "\"%s\" is not a boolean. (%s)" % (key, val.value)
def set (self, key, value = "", section = "MAIN"):
"""Sets a new value of a given key in a section.