@@ -15,9 +15,11 @@ def __init__(
15
15
sl : Optional [SourceLine ] = None ,
16
16
children : Optional [Sequence ["SchemaSaladException" ]] = None ,
17
17
bullet_for_children : str = "" ,
18
+ detailed_message : Optional [str ] = None ,
18
19
) -> None :
19
20
super ().__init__ (msg )
20
21
self .message = self .args [0 ]
22
+ self .detailed_message = detailed_message
21
23
self .file : Optional [str ] = None
22
24
self .start : Optional [tuple [int , int ]] = None
23
25
self .end : Optional [tuple [int , int ]] = None
@@ -97,14 +99,23 @@ def summary(self, level: int = 0, with_bullet: bool = False) -> str:
97
99
indent_per_level = 2
98
100
spaces = (level * indent_per_level ) * " "
99
101
bullet = self .bullet + " " if len (self .bullet ) > 0 and with_bullet else ""
100
- return f"{ self .prefix ()} { spaces } { bullet } { self .message } "
102
+ message_string = (
103
+ self .detailed_message
104
+ if (len (self .children ) < 1 and self .detailed_message )
105
+ else self .message
106
+ )
107
+ return f"{ self .prefix ()} { spaces } { bullet } { message_string } "
101
108
102
109
def __str__ (self ) -> str :
103
110
"""Convert to a string using :py:meth:`pretty_str`."""
104
111
return str (self .pretty_str ())
105
112
106
113
def pretty_str (self , level : int = 0 ) -> str :
107
- messages = len (self .message )
114
+ messages = (
115
+ len (self .message )
116
+ if len (self .children ) > 0
117
+ else len (self .detailed_message or self .message )
118
+ )
108
119
my_summary = [self .summary (level , True )] if messages else []
109
120
next_level = level + 1 if messages else level
110
121
0 commit comments