
from typing import TYPE_CHECKING

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


UpperCAmelCase	      = {
    '''configuration_transfo_xl''': ['''TRANSFO_XL_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''TransfoXLConfig'''],
    '''tokenization_transfo_xl''': ['''TransfoXLCorpus''', '''TransfoXLTokenizer'''],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase	      = [
	    '''TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''AdaptiveEmbedding''',
	    '''TransfoXLForSequenceClassification''',
	    '''TransfoXLLMHeadModel''',
	    '''TransfoXLModel''',
	    '''TransfoXLPreTrainedModel''',
	    '''load_tf_weights_in_transfo_xl''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	UpperCAmelCase	      = [
	    '''TF_TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''TFAdaptiveEmbedding''',
	    '''TFTransfoXLForSequenceClassification''',
	    '''TFTransfoXLLMHeadModel''',
	    '''TFTransfoXLMainLayer''',
	    '''TFTransfoXLModel''',
	    '''TFTransfoXLPreTrainedModel''',
	]


if TYPE_CHECKING:
	from .configuration_transfo_xl import TRANSFO_XL_PRETRAINED_CONFIG_ARCHIVE_MAP, TransfoXLConfig
	from .tokenization_transfo_xl import TransfoXLCorpus, TransfoXLTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_transfo_xl import (
		    TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST,
		    AdaptiveEmbedding,
		    TransfoXLForSequenceClassification,
		    TransfoXLLMHeadModel,
		    TransfoXLModel,
		    TransfoXLPreTrainedModel,
		    load_tf_weights_in_transfo_xl,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_transfo_xl import (
		    TF_TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFAdaptiveEmbedding,
		    TFTransfoXLForSequenceClassification,
		    TFTransfoXLLMHeadModel,
		    TFTransfoXLMainLayer,
		    TFTransfoXLModel,
		    TFTransfoXLPreTrainedModel,
		)

else:
	import sys

	UpperCAmelCase	      = _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)



def 							UpperCAmelCase_		(							__SCREAMING_SNAKE_CASE							):
	if not isinstance(__SCREAMING_SNAKE_CASE ,							__SCREAMING_SNAKE_CASE							):
		raise TypeError('Input value must be an \'int\' type'							)

	lowercase       =    0
	while number:
		position += 1
		number >>= 1

	return position


if __name__ == "__main__":
	import doctest

	doctest.testmod()

