




from typing import TYPE_CHECKING

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


UpperCamelCase__     =	{
    "configuration_electra": ["ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP", "ElectraConfig", "ElectraOnnxConfig"],
    "tokenization_electra": ["ElectraTokenizer"],
}

try:
					if not is_tokenizers_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCamelCase__     =	["ElectraTokenizerFast"]

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCamelCase__     =	[
					    "ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "ElectraForCausalLM",
					    "ElectraForMaskedLM",
					    "ElectraForMultipleChoice",
					    "ElectraForPreTraining",
					    "ElectraForQuestionAnswering",
					    "ElectraForSequenceClassification",
					    "ElectraForTokenClassification",
					    "ElectraModel",
					    "ElectraPreTrainedModel",
					    "load_tf_weights_in_electra",
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCamelCase__     =	[
					    "TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "TFElectraForMaskedLM",
					    "TFElectraForMultipleChoice",
					    "TFElectraForPreTraining",
					    "TFElectraForQuestionAnswering",
					    "TFElectraForSequenceClassification",
					    "TFElectraForTokenClassification",
					    "TFElectraModel",
					    "TFElectraPreTrainedModel",
					]

try:
					if not is_flax_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCamelCase__     =	[
					    "FlaxElectraForCausalLM",
					    "FlaxElectraForMaskedLM",
					    "FlaxElectraForMultipleChoice",
					    "FlaxElectraForPreTraining",
					    "FlaxElectraForQuestionAnswering",
					    "FlaxElectraForSequenceClassification",
					    "FlaxElectraForTokenClassification",
					    "FlaxElectraModel",
					    "FlaxElectraPreTrainedModel",
					]


if TYPE_CHECKING:
					from .configuration_electra import ELECTRA_PRETRAINED_CONFIG_ARCHIVE_MAP, ElectraConfig, ElectraOnnxConfig
					from .tokenization_electra import ElectraTokenizer

					try:
										if not is_tokenizers_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .tokenization_electra_fast import ElectraTokenizerFast

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_electra import (
										    ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    ElectraForCausalLM,
										    ElectraForMaskedLM,
										    ElectraForMultipleChoice,
										    ElectraForPreTraining,
										    ElectraForQuestionAnswering,
										    ElectraForSequenceClassification,
										    ElectraForTokenClassification,
										    ElectraModel,
										    ElectraPreTrainedModel,
										    load_tf_weights_in_electra,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_electra import (
										    TF_ELECTRA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFElectraForMaskedLM,
										    TFElectraForMultipleChoice,
										    TFElectraForPreTraining,
										    TFElectraForQuestionAnswering,
										    TFElectraForSequenceClassification,
										    TFElectraForTokenClassification,
										    TFElectraModel,
										    TFElectraPreTrainedModel,
										)

					try:
										if not is_flax_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_flax_electra import (
										    FlaxElectraForCausalLM,
										    FlaxElectraForMaskedLM,
										    FlaxElectraForMultipleChoice,
										    FlaxElectraForPreTraining,
										    FlaxElectraForQuestionAnswering,
										    FlaxElectraForSequenceClassification,
										    FlaxElectraForTokenClassification,
										    FlaxElectraModel,
										    FlaxElectraPreTrainedModel,
										)

else:
					import sys

					UpperCamelCase__     =	_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)











UpperCamelCase__     =	{
    "meter": "m",
    "kilometer": "km",
    "megametre": "Mm",
    "gigametre": "Gm",
    "terametre": "Tm",
    "petametre": "Pm",
    "exametre": "Em",
    "zettametre": "Zm",
    "yottametre": "Ym",
}
# Exponent of the factor(meter)
UpperCamelCase__     =	{
    "m": 0,
    "km": 3,
    "Mm": 6,
    "Gm": 9,
    "Tm": 12,
    "Pm": 15,
    "Em": 18,
    "Zm": 21,
    "Ym": 24,
}





def       _UpperCamelCase       (a__				:float				,     a__				:str				,     a__				:str    ):






							"""simple docstring"""





							UpperCamelCase__			       =     from_type.lower().strip("""s"""    )
							UpperCamelCase__			       =     to_type.lower().strip("""s"""    )

							UpperCamelCase__			       =     UNIT_SYMBOL.get(a__				,     a__    )
							UpperCamelCase__			       =     UNIT_SYMBOL.get(a__				,     a__    )

							if from_sanitized not in METRIC_CONVERSION:
														UpperCamelCase__			       =     (
														    f"""Invalid 'from_type' value: {from_type!r}.\n"""
														    f"""Conversion abbreviations are: {", ".join(a__    )}"""
														)
														raise ValueError(a__    )
							if to_sanitized not in METRIC_CONVERSION:
														UpperCamelCase__			       =     (
														    f"""Invalid 'to_type' value: {to_type!r}.\n"""
														    f"""Conversion abbreviations are: {", ".join(a__    )}"""
														)
														raise ValueError(a__    )
							UpperCamelCase__			       =     METRIC_CONVERSION[from_sanitized]
							UpperCamelCase__			       =     METRIC_CONVERSION[to_sanitized]
							UpperCamelCase__			       =     1

							if from_exponent > to_exponent:
														UpperCamelCase__			       =     from_exponent - to_exponent
							else:
														UpperCamelCase__			       =     -(to_exponent - from_exponent)

							return value * pow(10				,     a__    )


if __name__ == "__main__":
					from doctest import testmod

					testmod()




