






'''simple docstring'''







from typing import TYPE_CHECKING

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


__lowerCAmelCase					   =       {
    "configuration_imagegpt": ["IMAGEGPT_PRETRAINED_CONFIG_ARCHIVE_MAP", "ImageGPTConfig", "ImageGPTOnnxConfig"]
}

try:
  if not is_vision_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase					   =       ["ImageGPTFeatureExtractor"]
  __lowerCAmelCase					   =       ["ImageGPTImageProcessor"]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase					   =       [
      "IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST",
      "ImageGPTForCausalImageModeling",
      "ImageGPTForImageClassification",
      "ImageGPTModel",
      "ImageGPTPreTrainedModel",
      "load_tf_weights_in_imagegpt",
  ]


if TYPE_CHECKING:
  from .configuration_imagegpt import IMAGEGPT_PRETRAINED_CONFIG_ARCHIVE_MAP, ImageGPTConfig, ImageGPTOnnxConfig

  try:
    if not is_vision_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .feature_extraction_imagegpt import ImageGPTFeatureExtractor
    from .image_processing_imagegpt import ImageGPTImageProcessor

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_imagegpt import (
        IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
        ImageGPTForCausalImageModeling,
        ImageGPTForImageClassification,
        ImageGPTModel,
        ImageGPTPreTrainedModel,
        load_tf_weights_in_imagegpt,
    )

else:
  import sys

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












'''simple docstring'''







def 			__UpperCamelCase				(			lowercase_					:     int      ):
       """simple docstring"""




       if not isinstance(lowercase_      ,					lowercase_      ):
              raise ValueError('double_factorial() only accepts integral values'      )
       if num < 0:
              raise ValueError('double_factorial() not defined for negative values'      )
       a_	    = 1
       for i in range(lowercase_      ,					0      ,					-2      ):
              value *= i
       return value


if __name__ == "__main__":
  import doctest

  doctest.testmod()




