mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #21172: isinstance check relaxed from dict to collections.Mapping.
This commit is contained in:
parent
0654be18b3
commit
1b7611405d
2 changed files with 11 additions and 2 deletions
|
@ -23,7 +23,8 @@ Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.
|
|||
To use, simply 'import logging' and log away!
|
||||
"""
|
||||
|
||||
import sys, os, time, io, traceback, warnings, weakref
|
||||
import sys, os, time, io, traceback, warnings, weakref, collections
|
||||
|
||||
from string import Template
|
||||
|
||||
__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
|
||||
|
@ -253,7 +254,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)
|
||||
|
|
|
@ -27,6 +27,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #21172: isinstance check relaxed from dict to collections.Mapping.
|
||||
|
||||
- Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
|
||||
if path and sock are specified at the same time.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue