[New-bugs-announce] [issue23502] pprint: added support for mapping proxy

Serhiy Storchaka report at bugs.python.org
Mon Feb 23 20:21:48 CET 2015


New submission from Serhiy Storchaka:

Mapping proxy is quite often used in building . For example types __dict__ are mapping proxy.

>>> bool.__dict__
mappingproxy({'__or__': <slot wrapper '__or__' of 'bool' objects>, '__doc__': 'bool(x) -> bool\n\nReturns True when the argument x is true, False otherwise.\nThe builtins True and False are the only two instances of the class bool.\nThe class bool is a subclass of the class int, and cannot be subclassed.', '__xor__': <slot wrapper '__xor__' of 'bool' objects>, '__and__': <slot wrapper '__and__' of 'bool' objects>, '__rxor__': <slot wrapper '__rxor__' of 'bool' objects>, '__repr__': <slot wrapper '__repr__' of 'bool' objects>, '__new__': <built-in method __new__ of type object at 0x82a1140>, '__rand__': <slot wrapper '__rand__' of 'bool' objects>, '__str__': <slot wrapper '__str__' of 'bool' objects>, '__ror__': <slot wrapper '__ror__' of 'bool' objects>})

Mapping proxy is not a subclass of dict, so pprint doesn't print it pretty. Proposed patch adds support for mapping proxies in pprint.

>>> from pprint import pprint as pp
>>> pp(bool.__dict__)
mappingproxy({'__and__': <slot wrapper '__and__' of 'bool' objects>,
              '__doc__': 'bool(x) -> bool\n'
                         '\n'
                         'Returns True when the argument x is true, False '
                         'otherwise.\n'
                         'The builtins True and False are the only two '
                         'instances of the class bool.\n'
                         'The class bool is a subclass of the class int, and '
                         'cannot be subclassed.',
              '__new__': <built-in method __new__ of type object at 0x82a1140>,
              '__or__': <slot wrapper '__or__' of 'bool' objects>,
              '__rand__': <slot wrapper '__rand__' of 'bool' objects>,
              '__repr__': <slot wrapper '__repr__' of 'bool' objects>,
              '__ror__': <slot wrapper '__ror__' of 'bool' objects>,
              '__rxor__': <slot wrapper '__rxor__' of 'bool' objects>,
              '__str__': <slot wrapper '__str__' of 'bool' objects>,
              '__xor__': <slot wrapper '__xor__' of 'bool' objects>})

----------
components: Library (Lib)
files: pprint_mappingproxy.patch
keywords: patch
messages: 236460
nosy: fdrake, pitrou, rhettinger, serhiy.storchaka
priority: normal
severity: normal
stage: patch review
status: open
title: pprint: added support for mapping proxy
type: enhancement
versions: Python 3.5
Added file: http://bugs.python.org/file38215/pprint_mappingproxy.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23502>
_______________________________________


More information about the New-bugs-announce mailing list