
import json
from typing import List, Optional, Tuple

from tokenizers import normalizers

from ...tokenization_utils_fast import PreTrainedTokenizerFast
from .tokenization_lxmert import LxmertTokenizer


__A				={'''vocab_file''': '''vocab.txt''', '''tokenizer_file''': '''tokenizer.json'''}

__A				={
    '''vocab_file''': {
        '''unc-nlp/lxmert-base-uncased''': '''https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/vocab.txt''',
    },
    '''tokenizer_file''': {
        '''unc-nlp/lxmert-base-uncased''': (
            '''https://huggingface.co/unc-nlp/lxmert-base-uncased/resolve/main/tokenizer.json'''
        ),
    },
}

__A				={
    '''unc-nlp/lxmert-base-uncased''': 5_1_2,
}

__A				={
    '''unc-nlp/lxmert-base-uncased''': {'''do_lower_case''': True},
}




class     _SCREAMING_SNAKE_CASE     (      snake_case_						):
	lowerCAmelCase__         = VOCAB_FILES_NAMES
	lowerCAmelCase__         = PRETRAINED_VOCAB_FILES_MAP
	lowerCAmelCase__         = PRETRAINED_INIT_CONFIGURATION
	lowerCAmelCase__         = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
	lowerCAmelCase__         = LxmertTokenizer



	def __init__(    self						,  lowercase=None						,  lowercase=None						,  lowercase=True						,  lowercase="[UNK]"						,  lowercase="[SEP]"						,  lowercase="[PAD]"						,  lowercase="[CLS]"						,  lowercase="[MASK]"						,  lowercase=True						,  lowercase=None						,  **lowercase						,  )				->       Dict:
					super().__init__(
					    lowercase						,  tokenizer_file=lowercase						,  do_lower_case=lowercase						,  unk_token=lowercase						,  sep_token=lowercase						,  pad_token=lowercase						,  cls_token=lowercase						,  mask_token=lowercase						,  tokenize_chinese_chars=lowercase						,  strip_accents=lowercase						,  **lowercase						,  )

					lowerCamelCase_						=			json.loads(self.backend_tokenizer.normalizer.__getstate__() )
					if (
					    normalizer_state.get("lowercase"						,  lowercase ) != do_lower_case
					    or normalizer_state.get("strip_accents"						,  lowercase ) != strip_accents
					    or normalizer_state.get("handle_chinese_chars"						,  lowercase ) != tokenize_chinese_chars
					):
									lowerCamelCase_						=			getattr(lowercase						,  normalizer_state.pop("type" ) )
									lowerCamelCase_						=			do_lower_case
									lowerCamelCase_						=			strip_accents
									lowerCamelCase_						=			tokenize_chinese_chars
									lowerCamelCase_						=			normalizer_class(**lowercase )

					lowerCamelCase_						=			do_lower_case



	def     SCREAMING_SNAKE_CASE_(    self						,  lowercase						,  lowercase=None )				->       Union[str, Any]:
					lowerCamelCase_						=			[self.cls_token_id] + token_ids_a + [self.sep_token_id]

					if token_ids_a:
									output += token_ids_a + [self.sep_token_id]

					return output



	def     SCREAMING_SNAKE_CASE_(    self						,  lowercase						,  lowercase = None )				->       List[int]:
					lowerCamelCase_						=			[self.sep_token_id]
					lowerCamelCase_						=			[self.cls_token_id]
					if token_ids_a is None:
									return len(cls + token_ids_a + sep ) * [0]
					return len(cls + token_ids_a + sep ) * [0] + len(token_ids_a + sep ) * [1]



	def     SCREAMING_SNAKE_CASE_(    self						,  lowercase						,  lowercase = None )				->       Tuple[str]:
					lowerCamelCase_						=			self._tokenizer.model.save(lowercase						,  name=lowercase )
					return tuple(lowercase )




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__A				={'''configuration_wavlm''': ['''WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''WavLMConfig''']}

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			__A				=[
			    '''WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''WavLMForAudioFrameClassification''',
			    '''WavLMForCTC''',
			    '''WavLMForSequenceClassification''',
			    '''WavLMForXVector''',
			    '''WavLMModel''',
			    '''WavLMPreTrainedModel''',
			]

if TYPE_CHECKING:
			from .configuration_wavlm import WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP, WavLMConfig

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_wavlm import (
						    WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST,
						    WavLMForAudioFrameClassification,
						    WavLMForCTC,
						    WavLMForSequenceClassification,
						    WavLMForXVector,
						    WavLMModel,
						    WavLMPreTrainedModel,
						)

else:
			import sys

			__A				=_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)


