According to the docs, __name__ is not exposed via the API except

indirectly via %(__name__)s.  Not sure why, but maintain the
documented behavior for the new items() method.

Be a little more efficient about how we compute the list of options in
the ConfigParser.items() method.
This commit is contained in:
Fred Drake 2002-10-25 20:41:30 +00:00
parent 97d5f05221
commit df393bd46a
1 changed files with 8 additions and 2 deletions

View File

@ -274,8 +274,11 @@ class RawConfigParser:
except KeyError:
if section != DEFAULTSECT:
raise NoSectionError(section)
d2 = {}
d = self._defaults.copy()
d.update(d2)
if "__name__" in d:
del d["__name__"]
return d.items()
def _get(self, section, conv, option):
@ -508,11 +511,14 @@ class ConfigParser(RawConfigParser):
# Update with the entry specific variables
if vars:
d.update(vars)
options = d.keys()
if "__name__" in options:
options.remove("__name__")
if raw:
for option in self.options(section):
for option in options:
yield (option, d[option])
else:
for option in self.options(section):
for option in options:
yield (option,
self._interpolate(section, option, d[option], d))