
"""simple docstring"""





from typing import TYPE_CHECKING

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


UpperCamelCase_       :    Dict						      =			{
    '''configuration_funnel''': ['''FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''FunnelConfig'''],
    '''convert_funnel_original_tf_checkpoint_to_pytorch''': [],
    '''tokenization_funnel''': ['''FunnelTokenizer'''],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCamelCase_       :    Union[str, Any]						      =			['''FunnelTokenizerFast''']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCamelCase_       :    Dict						      =			[
		    '''FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''FunnelBaseModel''',
		    '''FunnelForMaskedLM''',
		    '''FunnelForMultipleChoice''',
		    '''FunnelForPreTraining''',
		    '''FunnelForQuestionAnswering''',
		    '''FunnelForSequenceClassification''',
		    '''FunnelForTokenClassification''',
		    '''FunnelModel''',
		    '''FunnelPreTrainedModel''',
		    '''load_tf_weights_in_funnel''',
		]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCamelCase_       :    str						      =			[
		    '''TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''TFFunnelBaseModel''',
		    '''TFFunnelForMaskedLM''',
		    '''TFFunnelForMultipleChoice''',
		    '''TFFunnelForPreTraining''',
		    '''TFFunnelForQuestionAnswering''',
		    '''TFFunnelForSequenceClassification''',
		    '''TFFunnelForTokenClassification''',
		    '''TFFunnelModel''',
		    '''TFFunnelPreTrainedModel''',
		]


if TYPE_CHECKING:
		from .configuration_funnel import FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP, FunnelConfig
		from .tokenization_funnel import FunnelTokenizer

		try:
				if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_funnel_fast import FunnelTokenizerFast

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_funnel import (
				    FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
				    FunnelBaseModel,
				    FunnelForMaskedLM,
				    FunnelForMultipleChoice,
				    FunnelForPreTraining,
				    FunnelForQuestionAnswering,
				    FunnelForSequenceClassification,
				    FunnelForTokenClassification,
				    FunnelModel,
				    FunnelPreTrainedModel,
				    load_tf_weights_in_funnel,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_funnel import (
				    TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFFunnelBaseModel,
				    TFFunnelForMaskedLM,
				    TFFunnelForMultipleChoice,
				    TFFunnelForPreTraining,
				    TFFunnelForQuestionAnswering,
				    TFFunnelForSequenceClassification,
				    TFFunnelForTokenClassification,
				    TFFunnelModel,
				    TFFunnelPreTrainedModel,
				)

else:
		import sys

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






def   __lowerCAmelCase    (				UpperCAmelCase__					:   int							)	->     int:

							if not isinstance(UpperCAmelCase__      ,					UpperCAmelCase__							):
														raise ValueError("""multiplicative_persistence() only accepts integral values"""							)
							if num < 0:
														raise ValueError("""multiplicative_persistence() does not accept negative values"""							)

							lowerCamelCase_					=       0
							lowerCamelCase_					=       str(UpperCAmelCase__							)

							while len(UpperCAmelCase__							) != 1:
														lowerCamelCase_					=       [int(UpperCAmelCase__							) for i in num_string]

														lowerCamelCase_					=       1
														for i in range(0      ,					len(UpperCAmelCase__							)							):
																					total *= numbers[i]

														lowerCamelCase_					=       str(UpperCAmelCase__							)

														steps += 1
							return steps



def   __lowerCAmelCase    (				UpperCAmelCase__					:   int							)	->     int:

							if not isinstance(UpperCAmelCase__      ,					UpperCAmelCase__							):
														raise ValueError("""additive_persistence() only accepts integral values"""							)
							if num < 0:
														raise ValueError("""additive_persistence() does not accept negative values"""							)

							lowerCamelCase_					=       0
							lowerCamelCase_					=       str(UpperCAmelCase__							)

							while len(UpperCAmelCase__							) != 1:
														lowerCamelCase_					=       [int(UpperCAmelCase__							) for i in num_string]

														lowerCamelCase_					=       0
														for i in range(0      ,					len(UpperCAmelCase__							)							):
																					total += numbers[i]

														lowerCamelCase_					=       str(UpperCAmelCase__							)

														steps += 1
							return steps


if __name__ == "__main__":
		import doctest

		doctest.testmod()





