



from typing import TYPE_CHECKING

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


__snake_case						:str						=					{
    '''configuration_efficientformer''': [
        '''EFFICIENTFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''EfficientFormerConfig''',
    ]
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Tuple						=					['''EfficientFormerImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:int						=					[
     '''EFFICIENTFORMER_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''EfficientFormerForImageClassification''',
     '''EfficientFormerForImageClassificationWithTeacher''',
     '''EfficientFormerModel''',
     '''EfficientFormerPreTrainedModel''',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Any						=					[
     '''TF_EFFICIENTFORMER_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''TFEfficientFormerForImageClassification''',
     '''TFEfficientFormerForImageClassificationWithTeacher''',
     '''TFEfficientFormerModel''',
     '''TFEfficientFormerPreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_efficientformer import EFFICIENTFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, EfficientFormerConfig

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .image_processing_efficientformer import EfficientFormerImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_efficientformer import (
      EFFICIENTFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
      EfficientFormerForImageClassification,
      EfficientFormerForImageClassificationWithTeacher,
      EfficientFormerModel,
      EfficientFormerPreTrainedModel,
  )
 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_efficientformer import (
      TF_EFFICIENTFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFEfficientFormerForImageClassification,
      TFEfficientFormerForImageClassificationWithTeacher,
      TFEfficientFormerModel,
      TFEfficientFormerPreTrainedModel,
  )

else:
 import sys

 __snake_case						:List[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}')





