@@ -930,31 +930,36 @@ def __init__(self, color):
930
930
self .lines = []
931
931
self .dom_term = DomTerm () if DomTerm .is_domterm () else None
932
932
933
- def __call__ (self , s1 , s2 = None , ** kwargs ):
933
+ def __call__ (self , s1 , s2 = None , merge_into_prev = True , ** kwargs ):
934
934
"""
935
935
Adds to self.lines.
936
936
This strange function signature is for historical reasons.
937
937
938
938
:param str s1:
939
939
:param str|None s2:
940
+ :param bool merge_into_prev: if True and existing self.lines, merge into prev line.
940
941
:param kwargs: passed to self.color
941
942
"""
942
943
if kwargs :
943
944
s1 = self .color (s1 , ** kwargs )
944
945
if s2 is not None :
945
946
s1 = add_indent_lines (s1 , s2 )
946
- self .lines .append (s1 + "\n " )
947
+ if merge_into_prev and self .lines :
948
+ self .lines [- 1 ] += s1 + "\n "
949
+ else :
950
+ self .lines .append (s1 + "\n " )
947
951
948
952
@contextlib .contextmanager
949
- def fold_text_ctx (self , line ):
953
+ def fold_text_ctx (self , line , merge_into_prev = True ):
950
954
"""
951
955
Folds text, via :class:`DomTerm`, if available.
952
956
Notes that this temporarily overwrites self.lines.
953
957
954
958
:param str line: always visible
959
+ :param bool merge_into_prev: if True and existing self.lines, merge into prev line.
955
960
"""
956
961
if not self .dom_term :
957
- self .__call__ (line )
962
+ self .__call__ (line , merge_into_prev = merge_into_prev )
958
963
yield
959
964
return
960
965
self .lines , old_lines = [], self .lines # overwrite self.lines
@@ -970,7 +975,10 @@ def fold_text_ctx(self, line):
970
975
line = line [1 :]
971
976
self .dom_term .fold_text (line , hidden = hidden_text , file = output_buf , align = len (prefix ))
972
977
output_text = prefix [1 :] + output_buf .getvalue ()
973
- self .lines .append (output_text )
978
+ if merge_into_prev and self .lines :
979
+ self .lines [- 1 ] += output_text
980
+ else :
981
+ self .lines .append (output_text )
974
982
975
983
def _pp_extra_info (self , obj , depth_limit = 3 ):
976
984
"""
@@ -1197,7 +1205,7 @@ def _try_set(old, prefix, func):
1197
1205
name ,
1198
1206
]
1199
1207
)
1200
- with output .fold_text_ctx (file_descr ):
1208
+ with output .fold_text_ctx (file_descr , merge_into_prev = False ):
1201
1209
source_code = get_source_code (filename , lineno , f .f_globals )
1202
1210
if source_code :
1203
1211
source_code = remove_indent_lines (replace_tab_indents (source_code )).rstrip ()
0 commit comments