



from typing import TYPE_CHECKING

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


snake_case__					:     Optional[Any]      =   {
    """configuration_layoutlmv3""": [
        """LAYOUTLMV3_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """LayoutLMv3Config""",
        """LayoutLMv3OnnxConfig""",
    ],
    """processing_layoutlmv3""": ["""LayoutLMv3Processor"""],
    """tokenization_layoutlmv3""": ["""LayoutLMv3Tokenizer"""],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	snake_case__					:     Any      =   ["""LayoutLMv3TokenizerFast"""]

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	snake_case__					:     List[str]      =   [
	    """LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """LayoutLMv3ForQuestionAnswering""",
	    """LayoutLMv3ForSequenceClassification""",
	    """LayoutLMv3ForTokenClassification""",
	    """LayoutLMv3Model""",
	    """LayoutLMv3PreTrainedModel""",
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	snake_case__					:     List[str]      =   [
	    """TF_LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """TFLayoutLMv3ForQuestionAnswering""",
	    """TFLayoutLMv3ForSequenceClassification""",
	    """TFLayoutLMv3ForTokenClassification""",
	    """TFLayoutLMv3Model""",
	    """TFLayoutLMv3PreTrainedModel""",
	]

try:
	if not is_vision_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	snake_case__					:     List[Any]      =   ["""LayoutLMv3FeatureExtractor"""]
	snake_case__					:     List[str]      =   ["""LayoutLMv3ImageProcessor"""]


if TYPE_CHECKING:
	from .configuration_layoutlmva import (
	    LAYOUTLMV3_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    LayoutLMvaConfig,
	    LayoutLMvaOnnxConfig,
	)
	from .processing_layoutlmva import LayoutLMvaProcessor
	from .tokenization_layoutlmva import LayoutLMvaTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_layoutlmva_fast import LayoutLMvaTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_layoutlmva import (
		    LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST,
		    LayoutLMvaForQuestionAnswering,
		    LayoutLMvaForSequenceClassification,
		    LayoutLMvaForTokenClassification,
		    LayoutLMvaModel,
		    LayoutLMvaPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_layoutlmva import (
		    TF_LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFLayoutLMvaForQuestionAnswering,
		    TFLayoutLMvaForSequenceClassification,
		    TFLayoutLMvaForTokenClassification,
		    TFLayoutLMvaModel,
		    TFLayoutLMvaPreTrainedModel,
		)

	try:
		if not is_vision_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .feature_extraction_layoutlmva import LayoutLMvaFeatureExtractor
		from .image_processing_layoutlmva import LayoutLMvaImageProcessor

else:
	import sys

	snake_case__					:     Any      =   _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)








import os
import sys
from contextlib import contextmanager


# Windows only
if os.name == "nt":
	import ctypes
	import msvcrt  # noqa

	class   _A   ( ctypes.Structure	):


							'''simple docstring'''





							_snake_case			:     Optional[Any]      							=      [("""size""", ctypes.c_int), ("""visible""", ctypes.c_byte)]



def    snake_case_				(    ):
	if os.name == "nt":
		__lowercase		       =			CursorInfo()
		__lowercase		       =			ctypes.windll.kernelaa.GetStdHandle(-1_1   )
		ctypes.windll.kernelaa.GetConsoleCursorInfo(_SCREAMING_SNAKE_CASE  ,	ctypes.byref(_SCREAMING_SNAKE_CASE   )   )
		__lowercase		       =			False
		ctypes.windll.kernelaa.SetConsoleCursorInfo(_SCREAMING_SNAKE_CASE  ,	ctypes.byref(_SCREAMING_SNAKE_CASE   )   )
	elif os.name == "posix":
		sys.stdout.write("\033[?25l"   )
		sys.stdout.flush()



def    snake_case_				(    ):
	if os.name == "nt":
		__lowercase		       =			CursorInfo()
		__lowercase		       =			ctypes.windll.kernelaa.GetStdHandle(-1_1   )
		ctypes.windll.kernelaa.GetConsoleCursorInfo(_SCREAMING_SNAKE_CASE  ,	ctypes.byref(_SCREAMING_SNAKE_CASE   )   )
		__lowercase		       =			True
		ctypes.windll.kernelaa.SetConsoleCursorInfo(_SCREAMING_SNAKE_CASE  ,	ctypes.byref(_SCREAMING_SNAKE_CASE   )   )
	elif os.name == "posix":
		sys.stdout.write("\033[?25h"   )
		sys.stdout.flush()



@contextmanager
def    snake_case_				(    ):
	try:
		hide_cursor()
		yield
	finally:
		show_cursor()



