
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase__     :		Dict        = {
    "configuration_lilt": ["LILT_PRETRAINED_CONFIG_ARCHIVE_MAP", "LiltConfig"],
}

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     lowerCamelCase__     :		str        = [
         "LILT_PRETRAINED_MODEL_ARCHIVE_LIST",
         "LiltForQuestionAnswering",
         "LiltForSequenceClassification",
         "LiltForTokenClassification",
         "LiltModel",
         "LiltPreTrainedModel",
     ]

if TYPE_CHECKING:
     from .configuration_lilt import LILT_PRETRAINED_CONFIG_ARCHIVE_MAP, LiltConfig

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_lilt import (
              LILT_PRETRAINED_MODEL_ARCHIVE_LIST,
              LiltForQuestionAnswering,
              LiltForSequenceClassification,
              LiltForTokenClassification,
              LiltModel,
              LiltPreTrainedModel,
          )

else:
     import sys

     lowerCamelCase__     :		Optional[int]        = _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)







from __future__ import annotations

SCREAMING_SNAKE_CASE		:     Tuple         =	1.6_021E-19  # units = C






def     lowerCAmelCase_			(   _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float		, _SCREAMING_SNAKE_CASE     :				float		, ):
						if (conductivity, electron_conc, mobility).count(0			) != 1:
												raise ValueError("""You cannot supply more or less than 2 values"""			)
						elif conductivity < 0:
												raise ValueError("""Conductivity cannot be negative"""			)
						elif electron_conc < 0:
												raise ValueError("""Electron concentration cannot be negative"""			)
						elif mobility < 0:
												raise ValueError("""mobility cannot be negative"""			)
						elif conductivity == 0:
												return (
												    "conductivity",
												    mobility * electron_conc * ELECTRON_CHARGE,
												)
						elif electron_conc == 0:
												return (
												    "electron_conc",
												    conductivity / (mobility * ELECTRON_CHARGE),
												)
						else:
												return (
												    "mobility",
												    conductivity / (electron_conc * ELECTRON_CHARGE),
												)


if __name__ == "__main__":
	import doctest

	doctest.testmod()






