from typing import TYPE_CHECKING

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


_UpperCAmelCase          =						{
    """configuration_mctct""": ["""MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MCTCTConfig"""],
    """feature_extraction_mctct""": ["""MCTCTFeatureExtractor"""],
    """processing_mctct""": ["""MCTCTProcessor"""],
}


try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_UpperCAmelCase          =						[
	    """MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """MCTCTForCTC""",
	    """MCTCTModel""",
	    """MCTCTPreTrainedModel""",
	]


if TYPE_CHECKING:
	from .configuration_mctct import MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP, MCTCTConfig
	from .feature_extraction_mctct import MCTCTFeatureExtractor
	from .processing_mctct import MCTCTProcessor

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_mctct import MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST, MCTCTForCTC, MCTCTModel, MCTCTPreTrainedModel

else:
	import sys

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







from __future__ import annotations




def 							UpperCamelCase		(			__lowercase		:					list[int]      ):
		'''simple docstring'''




		A_						:							int      = len(__lowercase      ) // 2

		# choose the middle 3 elements
		A_						:							List[Any]      = 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()






