[Python-checkins] cpython (merge 3.4 -> default): Closes #23207: logging.basicConfig() now does additional validation of its

vinay.sajip python-checkins at python.org
Fri Jan 23 20:54:42 CET 2015


https://hg.python.org/cpython/rev/06ba5e776a6e
changeset:   94257:06ba5e776a6e
parent:      94255:a3a44d871d70
parent:      94256:2bc3e839a3a3
user:        Vinay Sajip <vinay_sajip at yahoo.co.uk>
date:        Fri Jan 23 19:54:23 2015 +0000
summary:
  Closes #23207: logging.basicConfig() now does additional validation of its arguments.

files:
  Lib/logging/__init__.py |  19 +++++++++++--------
  1 files changed, 11 insertions(+), 8 deletions(-)


diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1723,7 +1723,7 @@
     _acquireLock()
     try:
         if len(root.handlers) == 0:
-            handlers = kwargs.get("handlers")
+            handlers = kwargs.pop("handlers", None)
             if handlers is None:
                 if "stream" in kwargs and "filename" in kwargs:
                     raise ValueError("'stream' and 'filename' should not be "
@@ -1733,28 +1733,31 @@
                     raise ValueError("'stream' or 'filename' should not be "
                                      "specified together with 'handlers'")
             if handlers is None:
-                filename = kwargs.get("filename")
+                filename = kwargs.pop("filename", None)
                 if filename:
-                    mode = kwargs.get("filemode", 'a')
+                    mode = kwargs.pop("filemode", 'a')
                     h = FileHandler(filename, mode)
                 else:
-                    stream = kwargs.get("stream")
+                    stream = kwargs.pop("stream", None)
                     h = StreamHandler(stream)
                 handlers = [h]
-            dfs = kwargs.get("datefmt", None)
-            style = kwargs.get("style", '%')
+            dfs = kwargs.pop("datefmt", None)
+            style = kwargs.pop("style", '%')
             if style not in _STYLES:
                 raise ValueError('Style must be one of: %s' % ','.join(
                                  _STYLES.keys()))
-            fs = kwargs.get("format", _STYLES[style][1])
+            fs = kwargs.pop("format", _STYLES[style][1])
             fmt = Formatter(fs, dfs, style)
             for h in handlers:
                 if h.formatter is None:
                     h.setFormatter(fmt)
                 root.addHandler(h)
-            level = kwargs.get("level")
+            level = kwargs.pop("level", None)
             if level is not None:
                 root.setLevel(level)
+            if kwargs:
+                keys = ', '.join(kwargs.keys())
+                raise ValueError('Unrecognised argument(s): %s' % keys)
     finally:
         _releaseLock()
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list