@@ -289,11 +289,17 @@ def show_row_diff(
289289
290290class BaseConsole (abc .ABC ):
291291 @abc .abstractmethod
292- def log_error (self , message : str ) -> None :
292+ def log_error (self , message : str , * args : t . Any , ** kwargs : t . Any ) -> None :
293293 """Display error info to the user."""
294294
295295 @abc .abstractmethod
296- def log_warning (self , short_message : str , long_message : t .Optional [str ] = None ) -> None :
296+ def log_warning (
297+ self ,
298+ short_message : str ,
299+ long_message : t .Optional [str ] = None ,
300+ * args : t .Any ,
301+ ** kwargs : t .Any ,
302+ ) -> None :
297303 """Display warning info to the user.
298304
299305 Args:
@@ -3090,15 +3096,23 @@ def consume_captured_errors(self) -> str:
30903096 finally :
30913097 self ._errors = []
30923098
3093- def log_warning (self , short_message : str , long_message : t .Optional [str ] = None ) -> None :
3099+ def log_warning (
3100+ self ,
3101+ short_message : str ,
3102+ long_message : t .Optional [str ] = None ,
3103+ * args : t .Any ,
3104+ ** kwargs : t .Any ,
3105+ ) -> None :
30943106 if short_message not in self ._warnings :
30953107 self ._warnings .append (short_message )
3096- super ().log_warning (short_message , long_message )
3108+ if kwargs .pop ("print" , True ):
3109+ super ().log_warning (short_message , long_message )
30973110
3098- def log_error (self , message : str ) -> None :
3111+ def log_error (self , message : str , * args : t . Any , ** kwargs : t . Any ) -> None :
30993112 if message not in self ._errors :
31003113 self ._errors .append (message )
3101- super ().log_error (message )
3114+ if kwargs .pop ("print" , True ):
3115+ super ().log_error (message )
31023116
31033117 def log_skipped_models (self , snapshot_names : t .Set [str ]) -> None :
31043118 if snapshot_names :
@@ -3135,6 +3149,11 @@ def __init__(self, **kwargs: t.Any) -> None:
31353149 kwargs .pop ("alert_block_collapsible_threshold" , 200 )
31363150 )
31373151
3152+ # capture_only = True: capture but dont print to console
3153+ # capture_only = False: capture and also print to console
3154+ self .warning_capture_only = kwargs .pop ("warning_capture_only" , False )
3155+ self .error_capture_only = kwargs .pop ("error_capture_only" , False )
3156+
31383157 super ().__init__ (
31393158 ** {** kwargs , "console" : RichConsole (no_color = True , width = kwargs .pop ("width" , None ))}
31403159 )
@@ -3409,6 +3428,12 @@ def stop_promotion_progress(self, success: bool = True) -> None:
34093428 super ().stop_promotion_progress (success )
34103429 self ._print ("\n " )
34113430
3431+ def log_warning (self , short_message : str , long_message : t .Optional [str ] = None ) -> None :
3432+ super ().log_warning (short_message , long_message , print = not self .warning_capture_only )
3433+
3434+ def log_error (self , message : str ) -> None :
3435+ super ().log_error (message , print = not self .error_capture_only )
3436+
34123437 def log_success (self , message : str ) -> None :
34133438 self ._print (message )
34143439
@@ -3435,19 +3460,24 @@ def log_test_results(self, result: ModelTextTestResult, target_dialect: str) ->
34353460
34363461 def log_skipped_models (self , snapshot_names : t .Set [str ]) -> None :
34373462 if snapshot_names :
3438- msg = " " + "\n " .join (snapshot_names )
3439- self ._print (f"**Skipped models**\n \n { msg } " )
3463+ self ._print (f"**Skipped models**" )
3464+ for snapshot_name in snapshot_names :
3465+ self ._print (f"* `{ snapshot_name } `" )
3466+ self ._print ("" )
34403467
34413468 def log_failed_models (self , errors : t .List [NodeExecutionFailedError ]) -> None :
34423469 if errors :
3443- self ._print ("\n ``` \n Failed models\n " )
3470+ self ._print ("**Failed models** " )
34443471
34453472 error_messages = _format_node_errors (errors )
34463473
34473474 for node_name , msg in error_messages .items ():
3448- self ._print (f" **{ node_name } **\n \n { msg } " )
3475+ self ._print (f"* `{ node_name } `\n " )
3476+ self ._print (" ```" )
3477+ self ._print (msg )
3478+ self ._print (" ```" )
34493479
3450- self ._print ("``` \n " )
3480+ self ._print ("" )
34513481
34523482 def show_linter_violations (
34533483 self , violations : t .List [RuleViolation ], model : Model , is_error : bool = False
0 commit comments