
from typing import TYPE_CHECKING

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


SCREAMING_SNAKE_CASE_			      =					{
    '''configuration_segformer''': ['''SEGFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''SegformerConfig''', '''SegformerOnnxConfig''']
}

try:
			if not is_vision_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			SCREAMING_SNAKE_CASE_			      =					['''SegformerFeatureExtractor''']
			SCREAMING_SNAKE_CASE_			      =					['''SegformerImageProcessor''']

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			SCREAMING_SNAKE_CASE_			      =					[
			    '''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_			      =					[
			    '''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_			      =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)


"""simple docstring"""
import unittest

from transformers import is_torch_available, load_tool

from .test_tools_common import ToolTesterMixin


if is_torch_available():
			import torch
class      lowerCAmelCase_						(							unittest.TestCase							,							A__				):



							'''simple docstring'''





							def  A__		(				self							)   ->       Any:
													__lowerCAmelCase        =       load_tool("""speech-to-text"""							)
													self.tool.setup()




							def  A__		(				self							)   ->       int:
													__lowerCAmelCase        =       self.tool(torch.ones(3_000							)							)
													self.assertEqual(snake_case_  ,							""" you"""							)




							def  A__		(				self							)   ->       Optional[int]:
													__lowerCAmelCase        =       self.tool(audio=torch.ones(3_000							)							)
													self.assertEqual(snake_case_  ,							""" you"""							)
