Issue #21172: isinstance check relaxed from dict to collections.Mapping.
This commit is contained in:
parent
00109c9bd3
commit
5aad46e5c3
|
@ -23,7 +23,7 @@ Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.
|
|||
To use, simply 'import logging' and log away!
|
||||
"""
|
||||
|
||||
import sys, os, time, cStringIO, traceback, warnings, weakref
|
||||
import sys, os, time, cStringIO, traceback, warnings, weakref, collections
|
||||
|
||||
__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
|
||||
'FATAL', 'FileHandler', 'Filter', 'Formatter', 'Handler', 'INFO',
|
||||
|
@ -261,7 +261,13 @@ class LogRecord(object):
|
|||
# 'Value is %d' instead of 'Value is 0'.
|
||||
# For the use case of passing a dictionary, this should not be a
|
||||
# problem.
|
||||
if args and len(args) == 1 and isinstance(args[0], dict) and args[0]:
|
||||
# Issue #21172: a request was made to relax the isinstance check
|
||||
# to hasattr(args[0], '__getitem__'). However, the docs on string
|
||||
# formatting still seem to suggest a mapping object is required.
|
||||
# Thus, while not removing the isinstance check, it does now look
|
||||
# for collections.Mapping rather than, as before, dict.
|
||||
if (args and len(args) == 1 and isinstance(args[0], collections.Mapping)
|
||||
and args[0]):
|
||||
args = args[0]
|
||||
self.args = args
|
||||
self.levelname = getLevelName(level)
|
||||
|
|
Loading…
Reference in New Issue