



'''simple docstring'''




import unittest

from transformers import is_vision_available
from transformers.pipelines import pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
						from PIL import Image
else:






						class 		_UpperCamelCase						:


									'''simple docstring'''

									@staticmethod
									def UpperCamelCase__      (							*lowerCAmelCase__  :				List[Any]							,  **lowerCAmelCase__  :				Tuple		):





											"""simple docstring"""






											pass






@is_pipeline_test
@require_vision
class 		_UpperCamelCase						(							unittest.TestCase					):


			'''simple docstring'''

			@require_torch
			def UpperCamelCase__      (							self  :				Optional[Any]		):





					"""simple docstring"""






					__SCREAMING_SNAKE_CASE :	Any					 =	pipeline(
					    model="""hf-internal-testing/tiny-random-clip-zero-shot-image-classification"""							,  )
					__SCREAMING_SNAKE_CASE :	str					 =	Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""		)
					__SCREAMING_SNAKE_CASE :	Any					 =	image_classifier(lowerCAmelCase__							,  candidate_labels=["""a""", """b""", """c"""]		)

					# The floating scores are so close, we enter floating error approximation and the order is not guaranteed across
					# python and torch versions.
					self.assertIn(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        [{"""score""": 0.3_33, """label""": """a"""}, {"""score""": 0.3_33, """label""": """b"""}, {"""score""": 0.3_33, """label""": """c"""}],
					        [{"""score""": 0.3_33, """label""": """a"""}, {"""score""": 0.3_33, """label""": """c"""}, {"""score""": 0.3_33, """label""": """b"""}],
					    ]							,  )

					__SCREAMING_SNAKE_CASE :	str					 =	image_classifier([image] * 5							,  candidate_labels=["""A""", """B""", """C"""]							,  batch_size=2		)
					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					    ]							,  )

			@require_tf
			def UpperCamelCase__      (							self  :				List[Any]		):





					"""simple docstring"""






					__SCREAMING_SNAKE_CASE :	int					 =	pipeline(
					    model="""hf-internal-testing/tiny-random-clip-zero-shot-image-classification"""							,  framework="""tf"""		)
					__SCREAMING_SNAKE_CASE :	str					 =	Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""		)
					__SCREAMING_SNAKE_CASE :	Dict					 =	image_classifier(lowerCAmelCase__							,  candidate_labels=["""a""", """b""", """c"""]		)

					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [{"""score""": 0.3_33, """label""": """a"""}, {"""score""": 0.3_33, """label""": """b"""}, {"""score""": 0.3_33, """label""": """c"""}]							,  )

					__SCREAMING_SNAKE_CASE :	Dict					 =	image_classifier([image] * 5							,  candidate_labels=["""A""", """B""", """C"""]							,  batch_size=2		)
					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					        [
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					            {"""score""": 0.3_33, """label""": ANY(lowerCAmelCase__		)},
					        ],
					    ]							,  )

			@slow
			@require_torch
			def UpperCamelCase__      (							self  :				List[Any]		):





					"""simple docstring"""






					__SCREAMING_SNAKE_CASE :	Any					 =	pipeline(
					    task="""zero-shot-image-classification"""							,  model="""openai/clip-vit-base-patch32"""							,  )
					# This is an image of 2 cats with remotes and no planes
					__SCREAMING_SNAKE_CASE :	Optional[Any]					 =	Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""		)
					__SCREAMING_SNAKE_CASE :	List[Any]					 =	image_classifier(lowerCAmelCase__							,  candidate_labels=["""cat""", """plane""", """remote"""]		)

					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        {"""score""": 0.5_11, """label""": """remote"""},
					        {"""score""": 0.4_85, """label""": """cat"""},
					        {"""score""": 0.0_04, """label""": """plane"""},
					    ]							,  )

					__SCREAMING_SNAKE_CASE :	str					 =	image_classifier([image] * 5							,  candidate_labels=["""cat""", """plane""", """remote"""]							,  batch_size=2		)
					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        [
					            {"""score""": 0.5_11, """label""": """remote"""},
					            {"""score""": 0.4_85, """label""": """cat"""},
					            {"""score""": 0.0_04, """label""": """plane"""},
					        ],
					    ]
					    * 5							,  )



			@slow
			@require_tf
			def UpperCamelCase__      (							self  :				Dict		):





					"""simple docstring"""






					__SCREAMING_SNAKE_CASE :	List[str]					 =	pipeline(
					    task="""zero-shot-image-classification"""							,  model="""openai/clip-vit-base-patch32"""							,  framework="""tf"""		)
					# This is an image of 2 cats with remotes and no planes
					__SCREAMING_SNAKE_CASE :	Tuple					 =	Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""		)
					__SCREAMING_SNAKE_CASE :	Tuple					 =	image_classifier(lowerCAmelCase__							,  candidate_labels=["""cat""", """plane""", """remote"""]		)
					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        {"""score""": 0.5_11, """label""": """remote"""},
					        {"""score""": 0.4_85, """label""": """cat"""},
					        {"""score""": 0.0_04, """label""": """plane"""},
					    ]							,  )

					__SCREAMING_SNAKE_CASE :	Optional[int]					 =	image_classifier([image] * 5							,  candidate_labels=["""cat""", """plane""", """remote"""]							,  batch_size=2		)
					self.assertEqual(
					    nested_simplify(lowerCAmelCase__		)							,  [
					        [
					            {"""score""": 0.5_11, """label""": """remote"""},
					            {"""score""": 0.4_85, """label""": """cat"""},
					            {"""score""": 0.0_04, """label""": """plane"""},
					        ],
					    ]
					    * 5							,  )










'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


UpperCamelCase__ :			Optional[int]												=				{'''configuration_wavlm''': ['''WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''WavLMConfig''']}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCamelCase__ :			Tuple												=				[
						    '''WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''WavLMForAudioFrameClassification''',
						    '''WavLMForCTC''',
						    '''WavLMForSequenceClassification''',
						    '''WavLMForXVector''',
						    '''WavLMModel''',
						    '''WavLMPreTrainedModel''',
						]

if TYPE_CHECKING:
						from .configuration_wavlm import WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP, WavLMConfig

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_wavlm import (
												    WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    WavLMForAudioFrameClassification,
												    WavLMForCTC,
												    WavLMForSequenceClassification,
												    WavLMForXVector,
												    WavLMModel,
												    WavLMPreTrainedModel,
												)

else:
						import sys

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