






from typing import TYPE_CHECKING

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


UpperCamelCase											=      {
    '''configuration_big_bird''': ['''BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''BigBirdConfig''', '''BigBirdOnnxConfig'''],
}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase											=      ['''BigBirdTokenizer''']

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase											=      ['''BigBirdTokenizerFast''']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase											=      [
           '''BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST''',
           '''BigBirdForCausalLM''',
           '''BigBirdForMaskedLM''',
           '''BigBirdForMultipleChoice''',
           '''BigBirdForPreTraining''',
           '''BigBirdForQuestionAnswering''',
           '''BigBirdForSequenceClassification''',
           '''BigBirdForTokenClassification''',
           '''BigBirdLayer''',
           '''BigBirdModel''',
           '''BigBirdPreTrainedModel''',
           '''load_tf_weights_in_big_bird''',
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase											=      [
           '''FlaxBigBirdForCausalLM''',
           '''FlaxBigBirdForMaskedLM''',
           '''FlaxBigBirdForMultipleChoice''',
           '''FlaxBigBirdForPreTraining''',
           '''FlaxBigBirdForQuestionAnswering''',
           '''FlaxBigBirdForSequenceClassification''',
           '''FlaxBigBirdForTokenClassification''',
           '''FlaxBigBirdModel''',
           '''FlaxBigBirdPreTrainedModel''',
       ]

if TYPE_CHECKING:
       from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_big_bird import BigBirdTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_big_bird_fast import BigBirdTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_big_bird import (
                  BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
                  BigBirdForCausalLM,
                  BigBirdForMaskedLM,
                  BigBirdForMultipleChoice,
                  BigBirdForPreTraining,
                  BigBirdForQuestionAnswering,
                  BigBirdForSequenceClassification,
                  BigBirdForTokenClassification,
                  BigBirdLayer,
                  BigBirdModel,
                  BigBirdPreTrainedModel,
                  load_tf_weights_in_big_bird,
              )

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_big_bird import (
                  FlaxBigBirdForCausalLM,
                  FlaxBigBirdForMaskedLM,
                  FlaxBigBirdForMultipleChoice,
                  FlaxBigBirdForPreTraining,
                  FlaxBigBirdForQuestionAnswering,
                  FlaxBigBirdForSequenceClassification,
                  FlaxBigBirdForTokenClassification,
                  FlaxBigBirdModel,
                  FlaxBigBirdPreTrainedModel,
              )

else:
       import sys

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








from collections import namedtuple

UpperCamelCase											=      namedtuple('''from_to''', '''from_ to''')

UpperCamelCase											=      {
    '''millimeter''': '''mm''',
    '''centimeter''': '''cm''',
    '''meter''': '''m''',
    '''kilometer''': '''km''',
    '''inch''': '''in''',
    '''inche''': '''in''',  # Trailing 's' has been stripped off
    '''feet''': '''ft''',
    '''foot''': '''ft''',
    '''yard''': '''yd''',
    '''mile''': '''mi''',
}

UpperCamelCase											=      {
    '''mm''': from_to(0.001, 1_0_0_0),
    '''cm''': from_to(0.01, 1_0_0),
    '''m''': from_to(1, 1),
    '''km''': from_to(1_0_0_0, 0.001),
    '''in''': from_to(0.0254, 39.3701),
    '''ft''': from_to(0.3048, 3.2_8084),
    '''yd''': from_to(0.9144, 1.0_9361),
    '''mi''': from_to(1609.34, 0.0_0062_1371),
}




def       _a   (							lowerCamelCase__ ,			lowerCamelCase__ ,			lowerCamelCase__				)  ->      float:
 lowerCamelCase_							:    List[Any]							=     from_type.lower().rstrip('s'				)
 lowerCamelCase_							:    Optional[Any]							=     TYPE_CONVERSION.get(lowerCamelCase__ ,			lowerCamelCase__				)
 lowerCamelCase_							:    List[Any]							=     to_type.lower().rstrip('s'				)
 lowerCamelCase_							:    Optional[int]							=     TYPE_CONVERSION.get(lowerCamelCase__ ,			lowerCamelCase__				)
 if new_from not in METRIC_CONVERSION:
  lowerCamelCase_							:    List[Any]							=     (
      F'Invalid \'from_type\' value: {from_type!r}.\n'
      F'Conversion abbreviations are: {", ".join(lowerCamelCase__				)}'
  )
  raise ValueError(lowerCamelCase__				)
 if new_to not in METRIC_CONVERSION:
  lowerCamelCase_							:    List[str]							=     (
      F'Invalid \'to_type\' value: {to_type!r}.\n'
      F'Conversion abbreviations are: {", ".join(lowerCamelCase__				)}'
  )
  raise ValueError(lowerCamelCase__				)
 return value * METRIC_CONVERSION[new_from].from_ * METRIC_CONVERSION[new_to].to


if __name__ == "__main__":
       import doctest

       doctest.testmod()
