




from typing import TYPE_CHECKING

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


__A    :				int    						=	{
    'configuration_esm': ['ESM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'EsmConfig'],
    'tokenization_esm': ['EsmTokenizer'],
}

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

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__A    :				Optional[Any]    						=	[
		    '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

		__A    :				Optional[int]    						=	_LazyModule(__name__, globals()["""__file__"""], _import_structure)













def   _SCREAMING_SNAKE_CASE      (	snake_case_		:						int						):
     if not isinstance(snake_case_ ,     snake_case_						):
          __magic_name__				=       f'Input value of [number={number}] must be an integer'
          raise TypeError(snake_case_						)
     if number < 0 or number % 2 == 1:
          return False
     __magic_name__				=       int(number**0.5						)
     return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
    import doctest

    doctest.testmod()