





from typing import TYPE_CHECKING

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


UpperCamelCase__ :			List[str]       	=			{
    """configuration_gpt2""": ["""GPT2_PRETRAINED_CONFIG_ARCHIVE_MAP""", """GPT2Config""", """GPT2OnnxConfig"""],
    """tokenization_gpt2""": ["""GPT2Tokenizer"""],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCamelCase__ :			List[Any]       	=			["""GPT2TokenizerFast"""]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCamelCase__ :			Dict       	=			[
				    """GPT2_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """GPT2DoubleHeadsModel""",
				    """GPT2ForQuestionAnswering""",
				    """GPT2ForSequenceClassification""",
				    """GPT2ForTokenClassification""",
				    """GPT2LMHeadModel""",
				    """GPT2Model""",
				    """GPT2PreTrainedModel""",
				    """load_tf_weights_in_gpt2""",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCamelCase__ :			Optional[Any]       	=			[
				    """TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """TFGPT2DoubleHeadsModel""",
				    """TFGPT2ForSequenceClassification""",
				    """TFGPT2LMHeadModel""",
				    """TFGPT2MainLayer""",
				    """TFGPT2Model""",
				    """TFGPT2PreTrainedModel""",
				]

try:
				if not is_keras_nlp_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCamelCase__ :			int       	=			["""TFGPT2Tokenizer"""]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				UpperCamelCase__ :			str       	=			["""FlaxGPT2LMHeadModel""", """FlaxGPT2Model""", """FlaxGPT2PreTrainedModel"""]

if TYPE_CHECKING:
				from .configuration_gpta import GPT2_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTaConfig, GPTaOnnxConfig
				from .tokenization_gpta import GPTaTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_gpta_fast import GPTaTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_gpta import (
								    GPT2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    GPTaDoubleHeadsModel,
								    GPTaForQuestionAnswering,
								    GPTaForSequenceClassification,
								    GPTaForTokenClassification,
								    GPTaLMHeadModel,
								    GPTaModel,
								    GPTaPreTrainedModel,
								    load_tf_weights_in_gpta,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_gpta import (
								    TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFGPTaDoubleHeadsModel,
								    TFGPTaForSequenceClassification,
								    TFGPTaLMHeadModel,
								    TFGPTaMainLayer,
								    TFGPTaModel,
								    TFGPTaPreTrainedModel,
								)

				try:
								if not is_keras_nlp_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_gpta_tf import TFGPTaTokenizer

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_gpta import FlaxGPTaLMHeadModel, FlaxGPTaModel, FlaxGPTaPreTrainedModel

else:
				import sys

				UpperCamelCase__ :			Tuple       	=			_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)









def  A_(      A ):
	if not isinstance(A					,   A ):
		UpperCAmelCase_		    =  f"""Input value of [number={number}] must be an integer"""
		raise TypeError(A )
	if number < 0 or number % 2 == 1:
		return False
	UpperCAmelCase_		    =  int(number**0.5 )
	return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
				import doctest

				doctest.testmod()


