@@ -52,10 +52,14 @@ def __init__(self, **model_fields: Any) -> None:
5252 """
5353 # call the parent constructor first to initialize Pydantic internals
5454 super ().__init__ (** model_fields )
55+ # set the placeholder for the default deprecation messages
56+ self ._default_deprecation_messages : List [str ] = []
5557 # set the placeholder for the deprecation logs
5658 self ._deprecation_logs : List [AirbyteLogMessage ] = []
5759 # process deprecated fields, if present
5860 self ._process_fields (model_fields )
61+ # emit default deprecation messages
62+ self ._emit_default_deprecation_messages ()
5963 # set the deprecation logs attribute to the model
6064 self ._set_deprecation_logs_attr_to_model ()
6165
@@ -119,13 +123,23 @@ def _create_warning(self, field_name: str, message: str) -> None:
119123 message (str): Warning message to be displayed.
120124 """
121125
122- message = f"Component type: `{ self .__class__ .__name__ } `. Field '{ field_name } ' is deprecated. { message } "
123- # Emit a warning message for deprecated fields (to stdout) (Python Default behavior)
124- warnings .warn (message , DeprecationWarning )
126+ deprecated_message = f"Component type: `{ self .__class__ .__name__ } `. Field '{ field_name } ' is deprecated. { message } "
127+
128+ if deprecated_message not in self ._default_deprecation_messages :
129+ # Avoid duplicates in the default deprecation messages
130+ self ._default_deprecation_messages .append (deprecated_message )
131+
125132 # Create an Airbyte deprecation log message
126- deprecation_log_message = AirbyteLogMessage (level = Level .WARN , message = message )
133+ deprecation_log_message = AirbyteLogMessage (level = Level .WARN , message = deprecated_message )
127134 # Add the deprecation message to the Airbyte log messages,
128135 # this logs are displayed in the Connector Builder.
129136 if deprecation_log_message not in self ._deprecation_logs :
130137 # Avoid duplicates in the deprecation logs
131138 self ._deprecation_logs .append (deprecation_log_message )
139+
140+ def _emit_default_deprecation_messages (self ) -> None :
141+ """
142+ Emit default deprecation messages for deprecated fields to STDOUT.
143+ """
144+ for message in self ._default_deprecation_messages :
145+ warnings .warn (message , DeprecationWarning )
0 commit comments