]> granicus.if.org Git - python/commitdiff
According to the docs, __name__ is not exposed via the API except
authorFred Drake <fdrake@acm.org>
Fri, 25 Oct 2002 20:41:30 +0000 (20:41 +0000)
committerFred Drake <fdrake@acm.org>
Fri, 25 Oct 2002 20:41:30 +0000 (20:41 +0000)
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

index 5e796c80d41f6480364c6840be547357f77e0010..c623ec999f464dfc78d7604f7dcca113dc917dcd 100644 (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))