






'''simple docstring'''



from packaging import version

from .import_utils import is_accelerate_available


if is_accelerate_available():
      import accelerate


def 							lowercase_				(    __A :       Dict			)       ->      Tuple:



 """simple docstring"""




 if not is_accelerate_available():
  return method
 lowercase					:   Union[str, Any]				  =version.parse(accelerate.__version__			).base_version
 if version.parse(__A			) < version.parse('''0.17.0'''			):
  return method

 def wrapper(self :       str					,      *__A :       Union[str, Any]					,      **__A :       Tuple			):
  if hasattr(self					,      '''_hf_hook'''			) and hasattr(self._hf_hook					,      '''pre_forward'''			):
   self._hf_hook.pre_forward(self			)
  return method(self					,      *__A					,      **__A			)

 return wrapper











'''simple docstring'''



from typing import TYPE_CHECKING

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


SCREAMING_SNAKE_CASE						=	{
    'configuration_mega': ['MEGA_PRETRAINED_CONFIG_ARCHIVE_MAP', 'MegaConfig', 'MegaOnnxConfig'],
}

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE						=	[
          'MEGA_PRETRAINED_MODEL_ARCHIVE_LIST',
          'MegaForCausalLM',
          'MegaForMaskedLM',
          'MegaForMultipleChoice',
          'MegaForQuestionAnswering',
          'MegaForSequenceClassification',
          'MegaForTokenClassification',
          'MegaModel',
          'MegaPreTrainedModel',
      ]

if TYPE_CHECKING:
      from .configuration_mega import MEGA_PRETRAINED_CONFIG_ARCHIVE_MAP, MegaConfig, MegaOnnxConfig

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_mega import (
                MEGA_PRETRAINED_MODEL_ARCHIVE_LIST,
                MegaForCausalLM,
                MegaForMaskedLM,
                MegaForMultipleChoice,
                MegaForQuestionAnswering,
                MegaForSequenceClassification,
                MegaForTokenClassification,
                MegaModel,
                MegaPreTrainedModel,
            )

else:
      import sys

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



