"""simple docstring"""
from functools import lru_cache





@lru_cache
def    lowerCAmelCase__    (			_UpperCamelCase       :				int					)					->				int:





      """simple docstring"""






      if num < 0:
            raise ValueError('Number should not be negative.'					)

      return 1 if num in (0, 1) else num * factorial(num - 1					)


if __name__ == "__main__":
     import doctest

     doctest.testmod()



"""simple docstring"""
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


SCREAMING_SNAKE_CASE__      						=  {"configuration_sew": ["SEW_PRETRAINED_CONFIG_ARCHIVE_MAP", "SEWConfig"]}

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					SCREAMING_SNAKE_CASE__      						=  [
					    "SEW_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "SEWForCTC",
					    "SEWForSequenceClassification",
					    "SEWModel",
					    "SEWPreTrainedModel",
					]

if TYPE_CHECKING:
					from .configuration_sew import SEW_PRETRAINED_CONFIG_ARCHIVE_MAP, SEWConfig

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_sew import (
										    SEW_PRETRAINED_MODEL_ARCHIVE_LIST,
										    SEWForCTC,
										    SEWForSequenceClassification,
										    SEWModel,
										    SEWPreTrainedModel,
										)


else:
					import sys

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


