




'''simple docstring'''







from typing import TYPE_CHECKING

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


_lowerCamelCase							:						str								=  {
    'configuration_layoutlm': ['LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'LayoutLMConfig', 'LayoutLMOnnxConfig'],
    'tokenization_layoutlm': ['LayoutLMTokenizer'],
}

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

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_lowerCamelCase							:						List[str]								=  [
						    'LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'LayoutLMForMaskedLM',
						    'LayoutLMForSequenceClassification',
						    'LayoutLMForTokenClassification',
						    'LayoutLMForQuestionAnswering',
						    'LayoutLMModel',
						    'LayoutLMPreTrainedModel',
						]

try:
						if not is_tf_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_lowerCamelCase							:						List[Any]								=  [
						    'TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'TFLayoutLMForMaskedLM',
						    'TFLayoutLMForSequenceClassification',
						    'TFLayoutLMForTokenClassification',
						    'TFLayoutLMForQuestionAnswering',
						    'TFLayoutLMMainLayer',
						    'TFLayoutLMModel',
						    'TFLayoutLMPreTrainedModel',
						]


if TYPE_CHECKING:
						from .configuration_layoutlm import LAYOUTLM_PRETRAINED_CONFIG_ARCHIVE_MAP, LayoutLMConfig, LayoutLMOnnxConfig
						from .tokenization_layoutlm import LayoutLMTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_layoutlm_fast import LayoutLMTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_layoutlm import (
												    LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    LayoutLMForMaskedLM,
												    LayoutLMForQuestionAnswering,
												    LayoutLMForSequenceClassification,
												    LayoutLMForTokenClassification,
												    LayoutLMModel,
												    LayoutLMPreTrainedModel,
												)
						try:
												if not is_tf_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_tf_layoutlm import (
												    TF_LAYOUTLM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TFLayoutLMForMaskedLM,
												    TFLayoutLMForQuestionAnswering,
												    TFLayoutLMForSequenceClassification,
												    TFLayoutLMForTokenClassification,
												    TFLayoutLMMainLayer,
												    TFLayoutLMModel,
												    TFLayoutLMPreTrainedModel,
												)

else:
						import sys

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













"""simple docstring"""







import importlib.metadata
import subprocess
import sys





def 						lowercase__(A = False						)				->List[str]:




						"""simple docstring"""



						lowercase__				:      Any=       False
						if "IPython" in sys.modules:
												lowercase__				:      Tuple=       "google.colab" in str(sys.modules["IPython"].get_ipython()						)

						if in_colab:
												if upgrade:
																		lowercase__				:      Optional[int]=       ["pip", "install", "-U", "torch"]
																		subprocess.run(A					,		check=A						)
												# get the current version of torch
												lowercase__				:      Tuple=       importlib.metadata.version("torch"						)
												lowercase__				:      Dict=       torch_version[: torch_version.rindex("."						)]
												lowercase__				:      Dict=       f'''https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-{torch_version_trunc}-cp37-cp37m-linux_x86_64.whl'''
												lowercase__				:      Union[str, Any]=       ["pip", "install", xla_wheel]
												subprocess.run(A					,		check=A						)
						else:
												raise RuntimeError("`install_xla` utility works only on google colab."						)






