






import logging
import os

from .state import PartialState


class    lowercase__   (	logging.LoggerAdapter		):

	@staticmethod
	def 						UpperCAmelCase     (							__UpperCAmelCase				)->    Optional[int]:







							'''simple docstring'''





							lowerCAmelCase__       					=  PartialState()
							return not main_process_only or (main_process_only and state.is_main_process)


	def 						UpperCAmelCase     (							self						,			__UpperCAmelCase						,			__UpperCAmelCase						,			*__UpperCAmelCase						,			**__UpperCAmelCase				)->    List[str]:







							'''simple docstring'''





							if PartialState._shared_state == {}:
													raise RuntimeError(
													    "You must initialize the accelerate state by calling either `PartialState()` or `Accelerator()` before using the logging utility."				)
							lowerCAmelCase__       					=  kwargs.pop("main_process_only"						,			UpperCAmelCase__				)
							lowerCAmelCase__       					=  kwargs.pop("in_order"						,			UpperCAmelCase__				)

							if self.isEnabledFor(UpperCAmelCase__				):
													if self._should_log(UpperCAmelCase__				):
																			lowerCAmelCase__					,							lowerCAmelCase__       					=  self.process(UpperCAmelCase__						,			UpperCAmelCase__				)
																			self.logger.log(UpperCAmelCase__						,			UpperCAmelCase__						,			*UpperCAmelCase__						,			**UpperCAmelCase__				)

													elif in_order:
																			lowerCAmelCase__       					=  PartialState()
																			for i in range(state.num_processes				):
																									if i == state.process_index:
																															lowerCAmelCase__					,							lowerCAmelCase__       					=  self.process(UpperCAmelCase__						,			UpperCAmelCase__				)
																															self.logger.log(UpperCAmelCase__						,			UpperCAmelCase__						,			*UpperCAmelCase__						,			**UpperCAmelCase__				)
																									state.wait_for_everyone()





def 				_a     (   UpperCamelCase_    : str			,      UpperCamelCase_    : str = None      )       ->      int:
						"""simple docstring"""







						if log_level is None:
												lowerCAmelCase__       					=  os.environ.get("ACCELERATE_LOG_LEVEL"			,      UpperCamelCase_      )
						lowerCAmelCase__       					=  logging.getLogger(UpperCamelCase_      )
						if log_level is not None:
												logger.setLevel(log_level.upper()      )
												logger.root.setLevel(log_level.upper()      )
						return MultiProcessAdapter(UpperCamelCase_			,      {}      )










'''simple docstring'''




from ...configuration_utils import PretrainedConfig
from ...utils import logging


__snake_case    						=logging.get_logger(__name__)

__snake_case    						={
    """facebook/s2t-wav2vec2-large-en-de""": (
        """https://huggingface.co/facebook/s2t-wav2vec2-large-en-de/resolve/main/config.json"""
    ),
    # See all Speech2Text models at https://huggingface.co/models?filter=speech2text2
}

class 		UpperCAmelCase_      (  __lowercase		):
     lowerCamelCase				:	Union[str, Any]		=     '''speech_to_text_2'''
     lowerCamelCase				:	Any		=     ['''past_key_values''']
     lowerCamelCase				:	Optional[Any]		=     {'''num_attention_heads''': '''decoder_attention_heads''', '''hidden_size''': '''d_model'''}





     def __init__( self       :      Optional[int]    ,      UpperCAmelCase__       :      Optional[Any]=1_0_0_0_0    ,      UpperCAmelCase__       :      int=6    ,      UpperCAmelCase__       :      Optional[Any]=2_0_4_8    ,      UpperCAmelCase__       :      Union[str, Any]=4    ,      UpperCAmelCase__       :      List[Any]=0.0    ,      UpperCAmelCase__       :      str=True    ,      UpperCAmelCase__       :      str="relu"    ,      UpperCAmelCase__       :      Any=2_5_6    ,      UpperCAmelCase__       :      Optional[Any]=0.1    ,      UpperCAmelCase__       :      Any=0.0    ,      UpperCAmelCase__       :      Tuple=0.0    ,      UpperCAmelCase__       :      List[Any]=0.02    ,      UpperCAmelCase__       :      List[Any]=2    ,      UpperCAmelCase__       :      str=True    ,      UpperCAmelCase__       :      List[str]=1    ,      UpperCAmelCase__       :      Any=0    ,      UpperCAmelCase__       :      Dict=2    ,      UpperCAmelCase__       :      int=1_0_2_4    ,      **UpperCAmelCase__       :      Optional[Any]    ,      )				->  Dict:
        lowerCAmelCase     =			vocab_size
        lowerCAmelCase     =			d_model
        lowerCAmelCase     =			decoder_ffn_dim
        lowerCAmelCase     =			decoder_layers
        lowerCAmelCase     =			decoder_attention_heads
        lowerCAmelCase     =			dropout
        lowerCAmelCase     =			attention_dropout
        lowerCAmelCase     =			activation_dropout
        lowerCAmelCase     =			activation_function
        lowerCAmelCase     =			init_std
        lowerCAmelCase     =			decoder_layerdrop
        lowerCAmelCase     =			use_cache
        lowerCAmelCase     =			decoder_layers
        lowerCAmelCase     =			scale_embedding  # scale factor will be sqrt(d_model) if True
        lowerCAmelCase     =			max_target_positions

        super().__init__(
            pad_token_id=UpperCAmelCase__    ,      bos_token_id=UpperCAmelCase__    ,      eos_token_id=UpperCAmelCase__    ,      decoder_start_token_id=UpperCAmelCase__    ,      **UpperCAmelCase__    ,      )





