


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


a_ :int  							=			{'processing_layoutxlm': ['LayoutXLMProcessor']}

try:
    if not is_sentencepiece_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    a_ :Optional[int]  							=			['LayoutXLMTokenizer']

try:
    if not is_tokenizers_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    a_ :List[str]  							=			['LayoutXLMTokenizerFast']

if TYPE_CHECKING:
    from .processing_layoutxlm import LayoutXLMProcessor

    try:
        if not is_sentencepiece_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .tokenization_layoutxlm import LayoutXLMTokenizer

    try:
        if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .tokenization_layoutxlm_fast import LayoutXLMTokenizerFast

else:
    import sys

    a_ :Dict  							=			_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)













import logging

from transformers import PretrainedConfig


_lowerCAmelCase				:   str						       =						logging.getLogger(__name__)


_lowerCAmelCase				:   Dict						       =						{
    '''bertabs-finetuned-cnndm''': '''https://huggingface.co/remi/bertabs-finetuned-cnndm-extractive-abstractive-summarization/resolve/main/config.json''',
}


class        __magic_name__	(				lowerCamelCase__				):





     """simple docstring"""



     __UpperCamelCase            =  '''bertabs'''



     def __init__(				self							:Optional[int]      ,   snake_case							:Any=30_522      ,   snake_case							:List[str]=512      ,   snake_case							:str=6      ,   snake_case							:int=512      ,   snake_case							:Optional[Any]=8      ,   snake_case							:Tuple=512      ,   snake_case							:str=0.2      ,   snake_case							:Any=6      ,   snake_case							:Optional[Any]=768      ,   snake_case							:Optional[Any]=8      ,   snake_case							:List[Any]=2_048      ,   snake_case							:Dict=0.2      ,   **snake_case							:List[str]      ,   ):





        '''simple docstring'''




        super().__init__(**snake_case	)

        A_       :					List[str]        =      vocab_size
        A_       :					int        =      max_pos

        A_       :					Tuple        =      enc_layers
        A_       :					Tuple        =      enc_hidden_size
        A_       :					str        =      enc_heads
        A_       :					Optional[Any]        =      enc_ff_size
        A_       :					Optional[Any]        =      enc_dropout

        A_       :					List[str]        =      dec_layers
        A_       :					List[Any]        =      dec_hidden_size
        A_       :					Optional[int]        =      dec_heads
        A_       :					Any        =      dec_ff_size
        A_       :					Optional[int]        =      dec_dropout
