
'''simple docstring'''
from typing import TYPE_CHECKING

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


lowercase__						=			{
    "configuration_esm": ["ESM_PRETRAINED_CONFIG_ARCHIVE_MAP", "EsmConfig"],
    "tokenization_esm": ["EsmTokenizer"],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowercase__						=			[
						    "ESM_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "EsmForMaskedLM",
						    "EsmForSequenceClassification",
						    "EsmForTokenClassification",
						    "EsmModel",
						    "EsmPreTrainedModel",
						]
						lowercase__						=			["EsmForProteinFolding", "EsmFoldPreTrainedModel"]

try:
						if not is_tf_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowercase__						=			[
						    "TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "TFEsmForMaskedLM",
						    "TFEsmForSequenceClassification",
						    "TFEsmForTokenClassification",
						    "TFEsmModel",
						    "TFEsmPreTrainedModel",
						]

if TYPE_CHECKING:
						from .configuration_esm import ESM_PRETRAINED_CONFIG_ARCHIVE_MAP, EsmConfig
						from .tokenization_esm import EsmTokenizer

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_esm import (
												    ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    EsmForMaskedLM,
												    EsmForSequenceClassification,
												    EsmForTokenClassification,
												    EsmModel,
												    EsmPreTrainedModel,
												)
												from .modeling_esmfold import EsmFoldPreTrainedModel, EsmForProteinFolding

						try:
												if not is_tf_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_tf_esm import (
												    TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TFEsmForMaskedLM,
												    TFEsmForSequenceClassification,
												    TFEsmForTokenClassification,
												    TFEsmModel,
												    TFEsmPreTrainedModel,
												)


else:
						import sys

						lowercase__						=			_LazyModule(__name__, globals()["__file__"], _import_structure)




'''simple docstring'''
def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


		snake_case     :					Optional[Any]     =	0
		for ele in arr:
				total_sum += product_sum(SCREAMING_SNAKE_CASE__   ,					depth + 1 ) if isinstance(SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ ) else ele
		return total_sum * depth




def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


		return product_sum(SCREAMING_SNAKE_CASE__   ,					1 )


if __name__ == "__main__":
						import doctest

						doctest.testmod()


