



"""simple docstring"""







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


UpperCAmelCase:  Union[str, Any]			     =				{
    """configuration_donut_swin""": ["""DONUT_SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP""", """DonutSwinConfig"""],
    """processing_donut""": ["""DonutProcessor"""],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCAmelCase:  Tuple			     =				[
		    """DONUT_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST""",
		    """DonutSwinModel""",
		    """DonutSwinPreTrainedModel""",
		]

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCAmelCase:  str			     =				["""DonutFeatureExtractor"""]
		UpperCAmelCase:  Optional[int]			     =				["""DonutImageProcessor"""]


if TYPE_CHECKING:
		from .configuration_donut_swin import DONUT_SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP, DonutSwinConfig
		from .processing_donut import DonutProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_donut_swin import (
				    DONUT_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
				    DonutSwinModel,
				    DonutSwinPreTrainedModel,
				)

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_donut import DonutFeatureExtractor
				from .image_processing_donut import DonutImageProcessor

else:
		import sys

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










def  A_(      A ):
	if not isinstance(A					,   A ):
		UpperCAmelCase_		    =  f"""Input value of [number={number}] must be an integer"""
		raise TypeError(A )
	if number < 0 or number % 2 == 1:
		return False
	UpperCAmelCase_		    =  int(number**0.5 )
	return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
				import doctest

				doctest.testmod()


