
    ^j                         d dl mZ ddlmZ ddlmZmZ ddlmZ  ej                  e
      Z ed      e G d	 d
e                    Zd
gZy)    )strict   )PreTrainedConfig)auto_docstringlogging   )
AutoConfigzfacebook/nougat-base)
checkpointc                        e Zd ZU dZdZeedZdZee	z  dz  e
d<   dZee	z  dz  e
d<   dZee
d<    fd	Zed
e	de	de	fd       Z xZS )NougatConfiga3  
    encoder (`dict | PreTrainedConfig`):
        The config object or dictionary of the encoder backbone.
    decoder (`dict | PreTrainedConfig`):
        The config object or dictionary of the decoder backbone.

    Examples:

    ```python
    >>> from transformers import NougatConfig, VisionEncoderDecoderModel

    >>> # Initializing a Nougat configuration
    >>> config = NougatConfig()

    >>> # Initializing a VisionEncoderDecoder model (with random weights) from a Nougat configurations
    >>> model = VisionEncoderDecoderModel(config=config)
    ```nougatencoderdecoderNr   r   Tis_encoder_decoderc                    | j                   | j                  t        d| j                   d      t	        | j                   t
              r@| j                   j                  d      }t        j                  |fi | j                   | _         t	        | j                  t
              r@| j                  j                  d      }t        j                  |fi | j                  | _        t        | (  di | y )NzA configuration of type zd cannot be instantiated because one of both `encoder` or `decoder` sub-configurations is not passed.
model_type )r   r   
ValueErrorr   
isinstancedictpopr	   	for_modelsuper__post_init__)selfkwargsencoder_model_typedecoder_model_type	__class__s       z/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/nougat/configuration_nougat.pyr   zNougatConfig.__post_init__6   s    <<4<<#7*4??*; <W X 
 dllD)!%!1!1,!?%//0BSdllSDLdllD)!%!1!1,!?%//0BSdllSDL''    encoder_configdecoder_configreturnc                     t         j                  d       d|_        d|_         | d|j	                         |j	                         d|S )a  
        Instantiate a [`VisionEncoderDecoderConfig`] (or a derived class) from a pre-trained encoder model
        configuration and decoder model configuration.

        Returns:
            [`VisionEncoderDecoderConfig`]: An instance of a configuration object
        zYSetting `config.is_decoder=True` and `config.add_cross_attention=True` for decoder_configTr   r   )loggerinfo
is_decoderadd_cross_attentionto_dict)clsr#   r$   r   s       r!   from_encoder_decoder_configsz)NougatConfig.from_encoder_decoder_configsE   sI     	op$(!-1*`>113^=S=S=U`Y_``r"   )__name__
__module____qualname____doc__r   r	   sub_configsr   r   r   __annotations__r   r   boolr   classmethodr-   __classcell__)r    s   @r!   r   r      s    $ J(Z@K.2GT$$t+2.2GT$$t+2##( a-a?Oa	a ar"   r   N)huggingface_hub.dataclassesr   configuration_utilsr   utilsr   r   auto.configuration_autor	   
get_loggerr.   r'   r   __all__r   r"   r!   <module>r=      s_     / 3 , 0 
		H	% 128a# 8a  38av 
r"   