


import copy

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ..auto.configuration_auto import AutoConfig


__snake_case             =	logging.get_logger(__name__)

__snake_case             =	{
    '''facebook/musicgen-small''': '''https://huggingface.co/facebook/musicgen-small/resolve/main/config.json''',
    # See all Musicgen models at https://huggingface.co/models?filter=musicgen
}



class   __lowerCamelCase (_a	):
       _lowercase       							=    """musicgen_decoder"""
       _lowercase       							=    ["""past_key_values"""]







       def __init__( self:   Union[str, Any],A_:   str=2048,A_:   str=2048,A_:   List[str]=24,A_:   List[Any]=4096,A_:   Tuple=16,A_:   Optional[Any]=0.0,A_:   Optional[int]=True,A_:   Union[str, Any]="gelu",A_:   str=1024,A_:   Tuple=0.1,A_:   Union[str, Any]=0.0,A_:   List[Any]=0.0,A_:   int=0.0_2,A_:   Optional[Any]=False,A_:   Union[str, Any]=4,A_:   Optional[int]=2048,A_:   Union[str, Any]=2048,A_:   str=None,A_:   Tuple=False,**A_:   Union[str, Any],):






            '''simple docstring'''




            __UpperCamelCase   = vocab_size
            __UpperCamelCase   = max_position_embeddings
            __UpperCamelCase   = hidden_size
            __UpperCamelCase   = ffn_dim
            __UpperCamelCase   = num_hidden_layers
            __UpperCamelCase   = num_attention_heads
            __UpperCamelCase   = dropout
            __UpperCamelCase   = attention_dropout
            __UpperCamelCase   = activation_dropout
            __UpperCamelCase   = activation_function
            __UpperCamelCase   = initializer_factor
            __UpperCamelCase   = layerdrop
            __UpperCamelCase   = use_cache
            __UpperCamelCase   = scale_embedding  # scale factor will be sqrt(d_model) if True
            __UpperCamelCase   = num_codebooks
            super().__init__(
                pad_token_id=A_,bos_token_id=A_,eos_token_id=A_,tie_word_embeddings=A_,**A_,)



class   __lowerCamelCase (_a	):
       _lowercase       							=    """musicgen"""
       _lowercase       							=    True







       def __init__( self:   Tuple,**A_:   Tuple				):






            '''simple docstring'''




            super().__init__(**A_				)
            if "text_encoder" not in kwargs or "audio_encoder" not in kwargs or "decoder" not in kwargs:
                 raise ValueError('Config has to be initialized with text_encoder, audio_encoder and decoder config'				)

            __UpperCamelCase   = kwargs.pop('text_encoder'				)
            __UpperCamelCase   = text_encoder_config.pop('model_type'				)

            __UpperCamelCase   = kwargs.pop('audio_encoder'				)
            __UpperCamelCase   = audio_encoder_config.pop('model_type'				)

            __UpperCamelCase   = kwargs.pop('decoder'				)

            __UpperCamelCase   = AutoConfig.for_model(A_,**A_				)
            __UpperCamelCase   = AutoConfig.for_model(A_,**A_				)
            __UpperCamelCase   = MusicgenDecoderConfig(**A_				)
            __UpperCamelCase   = True







       @classmethod
       def 		snake_case_  ( cls:   List[Any],A_:   PretrainedConfig,A_:   PretrainedConfig,A_:   MusicgenDecoderConfig,**A_:   Dict,):






            '''simple docstring'''




            return cls(
                text_encoder=text_encoder_config.to_dict(),audio_encoder=audio_encoder_config.to_dict(),decoder=decoder_config.to_dict(),**A_,)







       def 		snake_case_  ( self:   List[Any]				):






            '''simple docstring'''




            __UpperCamelCase   = copy.deepcopy(self.__dict__				)
            __UpperCamelCase   = self.text_encoder.to_dict()
            __UpperCamelCase   = self.audio_encoder.to_dict()
            __UpperCamelCase   = self.decoder.to_dict()
            __UpperCamelCase   = self.__class__.model_type
            return output






from __future__ import annotations






def 		_A		(		_lowercase   )				->   int | float:


     """simple docstring"""


     if len(_lowercase   ) == 0:
          raise ValueError('find_max() arg is an empty sequence'   )
     __UpperCamelCase   = nums[0]
     for x in nums:
          if x > max_num:
               __UpperCamelCase   = x
     return max_num


if __name__ == "__main__":
    import doctest

    doctest.testmod(verbose=True)


