From df393bd46a0b98197a73407c55750519cd159a2e Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Fri, 25 Oct 2002 20:41:30 +0000 Subject: 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. --- Lib/ConfigParser.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py index 5e796c8..c623ec9 100644 --- a/Lib/ConfigParser.py +++ b/Lib/ConfigParser.py @@ -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)) -- cgit v0.12