


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,
)


lowerCAmelCase__						:int         =							{
    '''configuration_gpt2''': ['''GPT2_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''GPT2Config''', '''GPT2OnnxConfig'''],
    '''tokenization_gpt2''': ['''GPT2Tokenizer'''],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowerCAmelCase__						:int         =							['''GPT2TokenizerFast''']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowerCAmelCase__						:str         =							[
		    '''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:
		lowerCAmelCase__						:List[str]         =							[
		    '''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:
		lowerCAmelCase__						:int         =							['''TFGPT2Tokenizer''']

try:
		if not is_flax_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		lowerCAmelCase__						:Optional[int]         =							['''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

		lowerCAmelCase__						:int         =							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




import warnings

from .generation import GenerationMixin

class 	__a   (       UpperCAmelCase    ):
		# warning at import time
		warnings.warn(
		    'Importing `GenerationMixin` from `src/transformers/generation_utils.py` is deprecated and will '
		    'be removed in Transformers v5. Import as `from transformers import GenerationMixin` instead.'					,   UpperCAmelCase					,   )
