summaryrefslogtreecommitdiff
path: root/configobj.py
diff options
context:
space:
mode:
authorfuzzyman <devnull@localhost>2010-02-27 18:21:19 +0000
committerfuzzyman <devnull@localhost>2010-02-27 18:21:19 +0000
commita1a9c089da21fa3cd511ebfef316aa70f44b1c08 (patch)
treed5c0019e387da90ac24f667274dcd2088b03b476 /configobj.py
parent1c026e33f66be248ae380d7f7501e0216d5fb9d3 (diff)
downloadconfigobj-a1a9c089da21fa3cd511ebfef316aa70f44b1c08.tar.gz
Fix for 2.3 compatibility and version number bump.
Diffstat (limited to 'configobj.py')
-rw-r--r--configobj.py25
1 files changed, 11 insertions, 14 deletions
diff --git a/configobj.py b/configobj.py
index 6dcb554..7015c16 100644
--- a/configobj.py
+++ b/configobj.py
@@ -83,7 +83,7 @@ tdquot = "'''%s'''"
# Sentinel for use in getattr calls to replace hasattr
MISSING = object()
-__version__ = '4.7.1'
+__version__ = '4.7.2'
try:
any
@@ -665,22 +665,19 @@ class Section(dict):
self[entry] = indict[entry]
- def pop(self, key, *args):
+ def pop(self, key, default=MISSING):
"""
'D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised'
"""
- val = dict.pop(self, key, *args)
- if key in self.scalars:
- del self.comments[key]
- del self.inline_comments[key]
- self.scalars.remove(key)
- elif key in self.sections:
- del self.comments[key]
- del self.inline_comments[key]
- self.sections.remove(key)
- if self.main.interpolation and isinstance(val, basestring):
- return self._interpolate(key, val)
+ try:
+ val = self[key]
+ except KeyError:
+ if default is MISSING:
+ raise
+ val = default
+ else:
+ del self[key]
return val
@@ -2445,7 +2442,7 @@ def get_extra_values(conf, _prepend=()):
"""
out = []
- out.extend((_prepend, name) for name in conf.extra_values)
+ out.extend([(_prepend, name) for name in conf.extra_values])
for name in conf.sections:
if name not in conf.extra_values:
out.extend(get_extra_values(conf[name], _prepend + (name,)))