
'''simple docstring'''


from typing import TYPE_CHECKING

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


snake_case_ :  Union[str, Any]     =					{
    'configuration_canine': ['CANINE_PRETRAINED_CONFIG_ARCHIVE_MAP', 'CanineConfig'],
    'tokenization_canine': ['CanineTokenizer'],
}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   snake_case_ :  Any     =					[
       'CANINE_PRETRAINED_MODEL_ARCHIVE_LIST',
       'CanineForMultipleChoice',
       'CanineForQuestionAnswering',
       'CanineForSequenceClassification',
       'CanineForTokenClassification',
       'CanineLayer',
       'CanineModel',
       'CaninePreTrainedModel',
       'load_tf_weights_in_canine',
   ]


if TYPE_CHECKING:
   from .configuration_canine import CANINE_PRETRAINED_CONFIG_ARCHIVE_MAP, CanineConfig
   from .tokenization_canine import CanineTokenizer

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_canine import (
          CANINE_PRETRAINED_MODEL_ARCHIVE_LIST,
          CanineForMultipleChoice,
          CanineForQuestionAnswering,
          CanineForSequenceClassification,
          CanineForTokenClassification,
          CanineLayer,
          CanineModel,
          CaninePreTrainedModel,
          load_tf_weights_in_canine,
      )


else:
   import sys

   snake_case_ :  str     =					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)







'''simple docstring'''


from __future__ import annotations



def  __snake_case     (    _UpperCAmelCase					:       list[int]):
   UpperCamelCase       =  len(_UpperCAmelCase) // 2

   # choose the middle 3 elements
   UpperCamelCase       =  lst[m - 1 : m + 2]

   # if middle element is peak
   if three[1] > three[0] and three[1] > three[2]:
      return three[1]

   # if increasing, recurse on right
   elif three[0] < three[2]:
      if len(lst[:m]) == 2:
         m -= 1
      return peak(lst[m:])

   # decreasing
   else:
      if len(lst[:m]) == 2:
         m += 1
      return peak(lst[:m])


if __name__ == "__main__":
   import doctest

   doctest.testmod()





