

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


A_ :				Any						 =    {
    'configuration_poolformer': [
        'POOLFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'PoolFormerConfig',
        'PoolFormerOnnxConfig',
    ]
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 A_ :				List[str]						 =    ['PoolFormerFeatureExtractor']
 A_ :				Optional[int]						 =    ['PoolFormerImageProcessor']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 A_ :				Optional[int]						 =    [
     'POOLFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
     'PoolFormerForImageClassification',
     'PoolFormerModel',
     'PoolFormerPreTrainedModel',
 ]


if TYPE_CHECKING:
 from .configuration_poolformer import (
     POOLFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
     PoolFormerConfig,
     PoolFormerOnnxConfig,
 )

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_poolformer import PoolFormerFeatureExtractor
  from .image_processing_poolformer import PoolFormerImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_poolformer import (
      POOLFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
      PoolFormerForImageClassification,
      PoolFormerModel,
      PoolFormerPreTrainedModel,
  )


else:
 import sys

 A_ :				List[str]						 =    _LazyModule(__name__, globals()['__file__'], _import_structure)






from functools import lru_cache

@lru_cache
def 		UpperCamelCase      (lowercase_:				int      )  ->   int:
	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()



