1717PARENTHESES_LOOKUP = [
1818 (list , '[' , ']' ),
1919 (set , '{' , '}' ),
20+ (frozenset , 'frozenset({' , '})' ),
2021]
2122__all__ = ['PrettyFormat' , 'pformat' , 'pprint' ]
2223
@@ -37,9 +38,9 @@ def __init__(self,
3738 self ._width = width
3839 self ._type_lookup = [
3940 (dict , self ._format_dict ),
40- ((tuple , list , set ), self ._format_list_like ),
4141 (str , self ._format_str ),
4242 (bytes , self ._format_bytes ),
43+ ((tuple , list , set , frozenset ), self ._format_list_like ),
4344 (collections .Generator , self ._format_generators ),
4445 ]
4546
@@ -68,13 +69,18 @@ def _format(self, value: Any, indent_current: int, indent_first: bool):
6869 self ._format_raw (value , value_repr , indent_current , indent_new )
6970
7071 def _format_dict (self , value : dict , value_repr : str , indent_current : int , indent_new : int ):
71- self ._stream .write ('{\n ' )
72+ open_ , before_ , split_ , after_ , close_ = '{\n ' , indent_new * self ._c , ': ' , ',\n ' , '}'
73+ if isinstance (value , collections .OrderedDict ):
74+ open_ , split_ , after_ , close_ = 'OrderedDict([\n ' , ', ' , '),\n ' , '])'
75+ before_ += '('
76+ self ._stream .write (open_ )
7277 for k , v in value .items ():
73- self ._format (k , indent_new , True )
74- self ._stream .write (': ' )
78+ self ._stream .write (before_ )
79+ self ._format (k , indent_new , False )
80+ self ._stream .write (split_ )
7581 self ._format (v , indent_new , False )
76- self ._stream .write (', \n ' )
77- self ._stream .write (indent_current * self ._c + '}' )
82+ self ._stream .write (after_ )
83+ self ._stream .write (indent_current * self ._c + close_ )
7884
7985 def _format_list_like (self , value : Union [list , tuple , set ], value_repr : str , indent_current : int , indent_new : int ):
8086 open_ , close_ = '(' , ')'
0 commit comments