Commit df393bd4 authored by Fred Drake's avatar Fred Drake

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.
parent 97d5f052
......@@ -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))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment