



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


__UpperCAmelCase      = {
    '''configuration_gptsan_japanese''': ['''GPTSAN_JAPANESE_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''GPTSanJapaneseConfig'''],
    '''tokenization_gptsan_japanese''': ['''GPTSanJapaneseTokenizer'''],
}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    __UpperCAmelCase      = [
        '''GPTSAN_JAPANESE_PRETRAINED_MODEL_ARCHIVE_LIST''',
        '''GPTSanJapaneseForConditionalGeneration''',
        '''GPTSanJapaneseModel''',
        '''GPTSanJapanesePreTrainedModel''',
    ]
    __UpperCAmelCase      = [
        '''GPTSanJapaneseTokenizer''',
    ]


if TYPE_CHECKING:
    from .configuration_gptsan_japanese import GPTSAN_JAPANESE_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTSanJapaneseConfig
    from .tokenization_gptsan_japanese import GPTSanJapaneseTokenizer

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_gptsan_japanese import (
            GPTSAN_JAPANESE_PRETRAINED_MODEL_ARCHIVE_LIST,
            GPTSanJapaneseForConditionalGeneration,
            GPTSanJapaneseModel,
            GPTSanJapanesePreTrainedModel,
        )
        from .tokenization_gptsan_japanese import GPTSanJapaneseTokenizer


else:
    import sys

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








from typing import Optional, Tuple

from ...tokenization_utils_fast import PreTrainedTokenizerFast
from ...utils import logging
from .tokenization_openai import OpenAIGPTTokenizer


__UpperCAmelCase      = logging.get_logger(__name__)

__UpperCAmelCase      = {'''vocab_file''': '''vocab.json''', '''merges_file''': '''merges.txt''', '''tokenizer_file''': '''tokenizer.json'''}

__UpperCAmelCase      = {
    '''vocab_file''': {'''openai-gpt''': '''https://huggingface.co/openai-gpt/resolve/main/vocab.json'''},
    '''merges_file''': {'''openai-gpt''': '''https://huggingface.co/openai-gpt/resolve/main/merges.txt'''},
    '''tokenizer_file''': {'''openai-gpt''': '''https://huggingface.co/openai-gpt/resolve/main/tokenizer.json'''},
}

__UpperCAmelCase      = {
    '''openai-gpt''': 512,
}



class        lowerCAmelCase_	(						a__							):
       UpperCAmelCase__       :      Union[str, Any]       =						VOCAB_FILES_NAMES
       UpperCAmelCase__       :      int       =						PRETRAINED_VOCAB_FILES_MAP
       UpperCAmelCase__       :      Optional[int]       =						PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
       UpperCAmelCase__       :      Optional[int]       =						["input_ids", "attention_mask"]
       UpperCAmelCase__       :      Tuple       =						OpenAIGPTTokenizer
       def __init__(    self,    SCREAMING_SNAKE_CASE_=None,    SCREAMING_SNAKE_CASE_=None,    SCREAMING_SNAKE_CASE_=None,    SCREAMING_SNAKE_CASE_="<unk>",    **SCREAMING_SNAKE_CASE_ )  ->	List[str]:
          super().__init__(SCREAMING_SNAKE_CASE_,    SCREAMING_SNAKE_CASE_,    tokenizer_file=SCREAMING_SNAKE_CASE_,    unk_token=SCREAMING_SNAKE_CASE_,    **SCREAMING_SNAKE_CASE_ )
       @property
       def       snake_case_ (    self )  ->	Dict:
          return True






       def       snake_case_ (    self,    SCREAMING_SNAKE_CASE_,    SCREAMING_SNAKE_CASE_ = None )  ->	Tuple[str]:
          UpperCamelCase					:						List[Any]					=			self._tokenizer.model.save(SCREAMING_SNAKE_CASE_,    name=SCREAMING_SNAKE_CASE_ )
          return tuple(SCREAMING_SNAKE_CASE_ )



