


'''simple docstring'''



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


__lowercase	:						str       =	{
    'configuration_gpt_bigcode': ['GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP', 'GPTBigCodeConfig'],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__lowercase	:						List[Any]       =	[
	    'GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'GPTBigCodeForSequenceClassification',
	    'GPTBigCodeForTokenClassification',
	    'GPTBigCodeForCausalLM',
	    'GPTBigCodeModel',
	    'GPTBigCodePreTrainedModel',
	]

if TYPE_CHECKING:
	from .configuration_gpt_bigcode import GPT_BIGCODE_PRETRAINED_CONFIG_ARCHIVE_MAP, GPTBigCodeConfig

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_gpt_bigcode import (
		    GPT_BIGCODE_PRETRAINED_MODEL_ARCHIVE_LIST,
		    GPTBigCodeForCausalLM,
		    GPTBigCodeForSequenceClassification,
		    GPTBigCodeForTokenClassification,
		    GPTBigCodeModel,
		    GPTBigCodePreTrainedModel,
		)


else:
	import sys

	__lowercase	:						Optional[int]       =	_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)




from functools import lru_cache


@lru_cache
def    a__       (						__UpperCamelCase ):
      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()


