


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_torch_available,
    is_vision_available,
)


SCREAMING_SNAKE_CASE : str          =    {
    "configuration_segformer": ["SEGFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP", "SegformerConfig", "SegformerOnnxConfig"]
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE : int          =    ["SegformerFeatureExtractor"]
 SCREAMING_SNAKE_CASE : Optional[Any]          =    ["SegformerImageProcessor"]

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE : Any          =    [
     "SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST",
     "SegformerDecodeHead",
     "SegformerForImageClassification",
     "SegformerForSemanticSegmentation",
     "SegformerLayer",
     "SegformerModel",
     "SegformerPreTrainedModel",
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE : List[str]          =    [
     "TF_SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST",
     "TFSegformerDecodeHead",
     "TFSegformerForImageClassification",
     "TFSegformerForSemanticSegmentation",
     "TFSegformerModel",
     "TFSegformerPreTrainedModel",
 ]


if TYPE_CHECKING:
 from .configuration_segformer import SEGFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, SegformerConfig, SegformerOnnxConfig

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_segformer import SegformerFeatureExtractor
  from .image_processing_segformer import SegformerImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_segformer import (
      SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
      SegformerDecodeHead,
      SegformerForImageClassification,
      SegformerForSemanticSegmentation,
      SegformerLayer,
      SegformerModel,
      SegformerPreTrainedModel,
  )
 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_segformer import (
      TF_SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFSegformerDecodeHead,
      TFSegformerForImageClassification,
      TFSegformerForSemanticSegmentation,
      TFSegformerModel,
      TFSegformerPreTrainedModel,
  )

else:
 import sys

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






from __future__ import annotations





def 						_lowerCamelCase		(							SCREAMING_SNAKE_CASE_				: list      ):






							"""simple docstring"""



							a_       :   Tuple			=	sorted(SCREAMING_SNAKE_CASE_      )
							a_       :   Tuple			=	len(SCREAMING_SNAKE_CASE_      )
							a_       :   Tuple			=	length >> 1
							return (
							    (sorted_list[mid_index] + sorted_list[mid_index - 1]) / 2
							    if length % 2 == 0
							    else sorted_list[mid_index]
							)





def 						_lowerCamelCase		(							):






							"""simple docstring"""



							import doctest

							doctest.testmod()


if __name__ == "__main__":
	main()


