



from typing import TYPE_CHECKING

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


__snake_case						:str						=					{
    '''configuration_blenderbot''': [
        '''BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlenderbotConfig''',
        '''BlenderbotOnnxConfig''',
    ],
    '''tokenization_blenderbot''': ['''BlenderbotTokenizer'''],
}

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Any						=					['''BlenderbotTokenizerFast''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:str						=					[
     '''BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''BlenderbotForCausalLM''',
     '''BlenderbotForConditionalGeneration''',
     '''BlenderbotModel''',
     '''BlenderbotPreTrainedModel''',
 ]


try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Any						=					[
     '''TFBlenderbotForConditionalGeneration''',
     '''TFBlenderbotModel''',
     '''TFBlenderbotPreTrainedModel''',
 ]


try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case						:Optional[Any]						=					[
     '''FlaxBlenderbotForConditionalGeneration''',
     '''FlaxBlenderbotModel''',
     '''FlaxBlenderbotPreTrainedModel''',
 ]


if TYPE_CHECKING:
 from .configuration_blenderbot import (
     BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP,
     BlenderbotConfig,
     BlenderbotOnnxConfig,
 )
 from .tokenization_blenderbot import BlenderbotTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_blenderbot_fast import BlenderbotTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_blenderbot import (
      BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST,
      BlenderbotForCausalLM,
      BlenderbotForConditionalGeneration,
      BlenderbotModel,
      BlenderbotPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_blenderbot import (
      TFBlenderbotForConditionalGeneration,
      TFBlenderbotModel,
      TFBlenderbotPreTrainedModel,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_blenderbot import (
      FlaxBlenderbotForConditionalGeneration,
      FlaxBlenderbotModel,
      FlaxBlenderbotPreTrainedModel,
  )

else:
 import sys

 __snake_case						:Dict						=					_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}')





