Update of /cvsroot/pywebmail/webmail/webmail/utils
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24609
Modified Files:
__init__.py
Log Message:
mutable XPrefixDict+default section handling in ConfigSection
Index: __init__.py
===================================================================
RCS file: /cvsroot/pywebmail/webmail/webmail/utils/__init__.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** __init__.py 16 Jul 2007 21:59:32 -0000 1.14
--- __init__.py 2 Mar 2008 17:12:47 -0000 1.15
***************
*** 137,140 ****
--- 137,144 ----
def __getitem__(self, name):
return self.config[self.prefix+name]
+ def __setitem__(self, name, value):
+ self.config[self.prefix+name] = value
+ def __delitem__(self, name):
+ del self.config[self.prefix+name]
def keys(self):
result = []
***************
*** 151,166 ****
def get(self, name, default=''):
try:
! return self[self.prefix+name]
except KeyError:
return default
class ConfigSection:
! from ConfigParser import NoOptionError
_NoOptionError = NoOptionError
! del NoOptionError
def __init__(self, parent_config, section_name):
self.config = parent_config
self.section = section_name
def __len__(self):
if not self.config.has_section(self.section): return 0
return len(self.keys())
--- 155,173 ----
def get(self, name, default=''):
try:
! return self.config[self.prefix+name]
except KeyError:
return default
class ConfigSection:
! from ConfigParser import NoOptionError, DEFAULTSECT
_NoOptionError = NoOptionError
! _DEFAULTSECT = DEFAULTSECT
! del NoOptionError, DEFAULTSECT
def __init__(self, parent_config, section_name):
self.config = parent_config
self.section = section_name
def __len__(self):
+ if self.section == ConfigSection._DEFAULTSECT:
+ return len(self.config.defaults())
if not self.config.has_section(self.section): return 0
return len(self.keys())
***************
*** 171,174 ****
--- 178,183 ----
raise KeyError(name)
def keys(self):
+ if self.section == ConfigSection._DEFAULTSECT:
+ return self.config.defaults().keys()
return self.config.options(self.section)
def has_key(self, name):
***************
*** 178,181 ****
--- 187,192 ----
return self[name]
def values(self):
+ if self.section == ConfigSection._DEFAULTSECT:
+ return self.config.defaults().values()
res = []
for k in self.keys():
***************
*** 183,186 ****
--- 194,199 ----
return res
def items(self):
+ if self.section == ConfigSection._DEFAULTSECT:
+ return self.config.defaults().items()
res = []
for k in self.keys():
|