17
17
PARENTHESES_LOOKUP = [
18
18
(list , '[' , ']' ),
19
19
(set , '{' , '}' ),
20
+ (frozenset , 'frozenset({' , '})' ),
20
21
]
21
22
__all__ = ['PrettyFormat' , 'pformat' , 'pprint' ]
22
23
@@ -37,9 +38,9 @@ def __init__(self,
37
38
self ._width = width
38
39
self ._type_lookup = [
39
40
(dict , self ._format_dict ),
40
- ((tuple , list , set ), self ._format_list_like ),
41
41
(str , self ._format_str ),
42
42
(bytes , self ._format_bytes ),
43
+ ((tuple , list , set , frozenset ), self ._format_list_like ),
43
44
(collections .Generator , self ._format_generators ),
44
45
]
45
46
@@ -68,13 +69,18 @@ def _format(self, value: Any, indent_current: int, indent_first: bool):
68
69
self ._format_raw (value , value_repr , indent_current , indent_new )
69
70
70
71
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_ )
72
77
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_ )
75
81
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_ )
78
84
79
85
def _format_list_like (self , value : Union [list , tuple , set ], value_repr : str , indent_current : int , indent_new : int ):
80
86
open_ , close_ = '(' , ')'
0 commit comments