



from typing import TYPE_CHECKING

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


__snake_case						:Optional[int]						=					{'''configuration_beit''': ['''BEIT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''BeitConfig''', '''BeitOnnxConfig''']}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Optional[Any]						=					['''BeitFeatureExtractor''']
 __snake_case						:Optional[int]						=					['''BeitImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:List[str]						=					[
     '''BEIT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''BeitForImageClassification''',
     '''BeitForMaskedImageModeling''',
     '''BeitForSemanticSegmentation''',
     '''BeitModel''',
     '''BeitPreTrainedModel''',
 ]


try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Union[str, Any]						=					[
     '''FlaxBeitForImageClassification''',
     '''FlaxBeitForMaskedImageModeling''',
     '''FlaxBeitModel''',
     '''FlaxBeitPreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_beit import BEIT_PRETRAINED_CONFIG_ARCHIVE_MAP, BeitConfig, BeitOnnxConfig

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_beit import BeitFeatureExtractor
  from .image_processing_beit import BeitImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_beit import (
      BEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
      BeitForImageClassification,
      BeitForMaskedImageModeling,
      BeitForSemanticSegmentation,
      BeitModel,
      BeitPreTrainedModel,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_beit import (
      FlaxBeitForImageClassification,
      FlaxBeitForMaskedImageModeling,
      FlaxBeitModel,
      FlaxBeitPreTrainedModel,
  )


else:
 import sys

 __snake_case						:Union[str, Any]						=					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)










def 					__snake_case     (      _UpperCAmelCase       ,			_UpperCAmelCase    ):
    return base * power(_UpperCAmelCase       ,			(exponent - 1)    ) if exponent else 1


if __name__ == "__main__":
 print('''Raise base to the power of exponent using recursion...''')
 __snake_case						:List[Any]						=					int(input('''Enter the base: ''').strip())
 __snake_case						:Dict						=					int(input('''Enter the exponent: ''').strip())
 __snake_case						:int						=					power(base, abs(exponent))
 if exponent < 0:  # power() does not properly deal w/ negative exponents
  __snake_case						:Optional[Any]						=					1 / result
 print(f'{base} to the power of {exponent} is {result}')





