






from packaging import version

from .import_utils import is_accelerate_available


if is_accelerate_available():
							import accelerate
def    a_       (					_A     )	->	Optional[int]:







				"""simple docstring"""





				if not is_accelerate_available():
								return method
				snake_case__													=   version.parse(accelerate.__version__     ).base_version
				if version.parse(_UpperCAmelCase     ) < version.parse('0.17.0'     ):
								return method

				def wrapper(self					,      *_A					,      **_A     ):
								if hasattr(self					,      '_hf_hook'     ) and hasattr(self._hf_hook					,      'pre_forward'     ):
												self._hf_hook.pre_forward(self     )
								return method(self					,      *_UpperCAmelCase					,      **_UpperCAmelCase     )

				return wrapper











"""simple docstring"""




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_sentencepiece_available


lowerCamelCase_     :						int						=					{}


try:
   if not is_sentencepiece_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowerCamelCase_     :						Tuple						=					['MLukeTokenizer']

if TYPE_CHECKING:
   try:
      if not is_sentencepiece_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .tokenization_mluke import MLukeTokenizer


else:
   import sys

   lowerCamelCase_     :						List[str]						=					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)