

from typing import TYPE_CHECKING

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


_lowerCamelCase       :     Dict           =							{
    'configuration_openai': ['OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'OpenAIGPTConfig'],
    'tokenization_openai': ['OpenAIGPTTokenizer'],
}

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _lowerCamelCase       :     Union[str, Any]           =							['OpenAIGPTTokenizerFast']

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _lowerCamelCase       :     Dict           =							[
         'OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST',
         'OpenAIGPTDoubleHeadsModel',
         'OpenAIGPTForSequenceClassification',
         'OpenAIGPTLMHeadModel',
         'OpenAIGPTModel',
         'OpenAIGPTPreTrainedModel',
         'load_tf_weights_in_openai_gpt',
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _lowerCamelCase       :     Union[str, Any]           =							[
         'TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST',
         'TFOpenAIGPTDoubleHeadsModel',
         'TFOpenAIGPTForSequenceClassification',
         'TFOpenAIGPTLMHeadModel',
         'TFOpenAIGPTMainLayer',
         'TFOpenAIGPTModel',
         'TFOpenAIGPTPreTrainedModel',
     ]


if TYPE_CHECKING:
     from .configuration_openai import OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP, OpenAIGPTConfig
     from .tokenization_openai import OpenAIGPTTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_openai_fast import OpenAIGPTTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_openai import (
              OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
              OpenAIGPTDoubleHeadsModel,
              OpenAIGPTForSequenceClassification,
              OpenAIGPTLMHeadModel,
              OpenAIGPTModel,
              OpenAIGPTPreTrainedModel,
              load_tf_weights_in_openai_gpt,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_openai import (
              TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFOpenAIGPTDoubleHeadsModel,
              TFOpenAIGPTForSequenceClassification,
              TFOpenAIGPTLMHeadModel,
              TFOpenAIGPTMainLayer,
              TFOpenAIGPTModel,
              TFOpenAIGPTPreTrainedModel,
          )

else:
     import sys

     _lowerCamelCase       :     int           =							_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)






def     a__  (	UpperCAmelCase							:    str    )						->		str:
  return " ".join([word[::-1] for word in input_str.split()]    )


if __name__ == "__main__":
     import doctest

     doctest.testmod()





