'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__UpperCAmelCase					={
    "configuration_jukebox": [
        "JUKEBOX_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "JukeboxConfig",
        "JukeboxPriorConfig",
        "JukeboxVQVAEConfig",
    ],
    "tokenization_jukebox": ["JukeboxTokenizer"],
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase					=[
      "JUKEBOX_PRETRAINED_MODEL_ARCHIVE_LIST",
      "JukeboxModel",
      "JukeboxPreTrainedModel",
      "JukeboxVQVAE",
      "JukeboxPrior",
  ]

if TYPE_CHECKING:
  from .configuration_jukebox import (
      JUKEBOX_PRETRAINED_CONFIG_ARCHIVE_MAP,
      JukeboxConfig,
      JukeboxPriorConfig,
      JukeboxVQVAEConfig,
  )
  from .tokenization_jukebox import JukeboxTokenizer

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_jukebox import (
        JUKEBOX_PRETRAINED_MODEL_ARCHIVE_LIST,
        JukeboxModel,
        JukeboxPreTrainedModel,
        JukeboxPrior,
        JukeboxVQVAE,
    )

else:
  import sys

  __UpperCAmelCase					=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)

'''simple docstring'''




def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							)      ->       float:
    return base * power(UpperCamelCase__							,    (exponent - 1)							) if exponent else 1


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