Issue #23502: The pprint module now supports mapping proxies.
In particular the __dict__ attributes of building types.
diff --git a/Lib/pprint.py b/Lib/pprint.py
index 5b65f57..9031a0b 100644
--- a/Lib/pprint.py
+++ b/Lib/pprint.py
@@ -36,6 +36,7 @@
 
 import re
 import sys as _sys
+import types as _types
 from collections import OrderedDict as _OrderedDict
 from io import StringIO as _StringIO
 
@@ -313,6 +314,14 @@
 
     _dispatch[bytearray.__repr__] = _pprint_bytearray
 
+    def _pprint_mappingproxy(self, object, stream, indent, allowance, context, level):
+        stream.write('mappingproxy(')
+        self._format(object.copy(), stream, indent + 13, allowance + 1,
+                     context, level)
+        stream.write(')')
+
+    _dispatch[_types.MappingProxyType.__repr__] = _pprint_mappingproxy
+
     def _format_dict_items(self, items, stream, indent, allowance, context,
                            level):
         write = stream.write