@@ -524,6 +524,13 @@ def __init__(self, msg="", code=1, error_code_group=1, add_traceback=True, max_m
524524
525525 def _process_message_and_code (self , msg , code , add_traceback = True , _levels = - 2 ):
526526 """Helper to process messages and codes."""
527+ if isinstance (msg , ResultErr ):
528+ self .msg += msg .msg
529+ self .code += msg .code
530+ self .traceback_info += _deepcopy (msg .traceback_info )
531+ self ._check_max_messages ()
532+ return
533+
527534 if add_traceback and msg != "" :
528535 if _levels > - 2 :
529536 if _levels > - 1 :
@@ -534,11 +541,8 @@ def _process_message_and_code(self, msg, code, add_traceback=True, _levels=-2):
534541 tb = [line for line in tb if not any (exclude in line for exclude in TRACEBACK_EXCLUDE_FILES )]
535542 else :
536543 tb = []
537- if isinstance (msg , ResultErr ):
538- self .msg += msg .msg
539- self .code += msg .code
540- self .traceback_info += _deepcopy (msg .traceback_info )
541- elif not isinstance (msg , str ) and isinstance (msg , (Sequence , Iterable )):
544+
545+ if not isinstance (msg , str ) and isinstance (msg , (Sequence , Iterable )):
542546 dim = len (self .msg )
543547 self .msg += list (map (str .strip , map (str , msg )))
544548 dim = len (self .msg ) - dim
@@ -552,6 +556,9 @@ def _process_message_and_code(self, msg, code, add_traceback=True, _levels=-2):
552556 self .code .append (code )
553557 self .traceback_info .append (tb )
554558
559+ self ._check_max_messages ()
560+
561+ def _check_max_messages (self ):
555562 if len (self .msg ) > self .max_messages :
556563 self .msg = self .msg [: self .max_messages ]
557564 self .code = self .code [: self .max_messages ]
@@ -651,9 +658,7 @@ def set_max_messages(self, max_messages):
651658 else :
652659 self .max_messages = max_messages
653660
654- if len (self .msg ) > self .max_messages :
655- self .msg = self .msg [: self .max_messages ]
656- self .code = self .code [: self .max_messages ]
661+ self ._check_max_messages ()
657662
658663 def copy (self ):
659664 """Return a copy of the ResultErr instance."""
0 commit comments