




'''simple docstring'''




from typing import TYPE_CHECKING

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


a_      :		Optional[int]							      =       {"""configuration_deit""": ["""DEIT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """DeiTConfig""", """DeiTOnnxConfig"""]}

try:
     if not is_vision_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     a_      :		Any							      =       ["""DeiTFeatureExtractor"""]
     a_      :		Any							      =       ["""DeiTImageProcessor"""]

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     a_      :		Union[str, Any]							      =       [
         """DEIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """DeiTForImageClassification""",
         """DeiTForImageClassificationWithTeacher""",
         """DeiTForMaskedImageModeling""",
         """DeiTModel""",
         """DeiTPreTrainedModel""",
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     a_      :		Any							      =       [
         """TF_DEIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
         """TFDeiTForImageClassification""",
         """TFDeiTForImageClassificationWithTeacher""",
         """TFDeiTForMaskedImageModeling""",
         """TFDeiTModel""",
         """TFDeiTPreTrainedModel""",
     ]


if TYPE_CHECKING:
     from .configuration_deit import DEIT_PRETRAINED_CONFIG_ARCHIVE_MAP, DeiTConfig, DeiTOnnxConfig

     try:
          if not is_vision_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .feature_extraction_deit import DeiTFeatureExtractor
          from .image_processing_deit import DeiTImageProcessor

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_deit import (
              DEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
              DeiTForImageClassification,
              DeiTForImageClassificationWithTeacher,
              DeiTForMaskedImageModeling,
              DeiTModel,
              DeiTPreTrainedModel,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_deit import (
              TF_DEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFDeiTForImageClassification,
              TFDeiTForImageClassificationWithTeacher,
              TFDeiTForMaskedImageModeling,
              TFDeiTModel,
              TFDeiTPreTrainedModel,
          )


else:
     import sys

     a_      :		int							      =       _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)










def 				lowerCAmelCase_	(     snake_case_     ):
      if number < 0:
            raise ValueError("""number must not be negative"""     )
      return number & (number - 1) == 0


if __name__ == "__main__":
  import doctest

  doctest.testmod()

