



'''simple docstring'''


import unittest

from huggingface_hub import hf_hub_download

from transformers import MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING, VideoMAEFeatureExtractor
from transformers.pipelines import VideoClassificationPipeline, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_decord,
    require_tf,
    require_torch,
    require_torch_or_tf,
    require_vision,
)

from .test_pipelines_common import ANY

@is_pipeline_test
@require_torch_or_tf
@require_vision
@require_decord
class  SCREAMING_SNAKE_CASE (  unittest.TestCase		):






    """simple docstring"""





    _SCREAMING_SNAKE_CASE	  =  MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING






    def  A       (  self      :					int  ,						UpperCamelCase__      :					int  ,						UpperCamelCase__      :					int  ,						UpperCamelCase__      :					Optional[int] ):


       """simple docstring"""







       UpperCamelCase					=  hf_hub_download(
           repo_id='nateraw/video-demo'  ,						filename='archery.mp4'  ,						repo_type='dataset' )
       UpperCamelCase					=  VideoClassificationPipeline(model=UpperCamelCase__  ,						image_processor=UpperCamelCase__  ,						top_k=2 )
       UpperCamelCase					=  [
           example_video_filepath,
           'https://huggingface.co/datasets/nateraw/video-demo/resolve/main/archery.mp4',
       ]
       return video_classifier, examples






    def  A       (  self      :					str  ,						UpperCamelCase__      :					Union[str, Any]  ,						UpperCamelCase__      :					Any ):


       """simple docstring"""







       for example in examples:
          UpperCamelCase					=  video_classifier(UpperCamelCase__ )

          self.assertEqual(
              UpperCamelCase__  ,						[
                  {'score': ANY(UpperCamelCase__ ), 'label': ANY(UpperCamelCase__ )},
                  {'score': ANY(UpperCamelCase__ ), 'label': ANY(UpperCamelCase__ )},
              ]  ,						)






    @require_torch
    def  A       (  self      :					Any ):


       """simple docstring"""







       UpperCamelCase					=  'hf-internal-testing/tiny-random-VideoMAEForVideoClassification'
       UpperCamelCase					=  VideoMAEFeatureExtractor(
           size={'shortest_edge': 1_0}  ,						crop_size={'height': 1_0, 'width': 1_0} )
       UpperCamelCase					=  pipeline(
           'video-classification'  ,						model=UpperCamelCase__  ,						feature_extractor=UpperCamelCase__  ,						frame_sampling_rate=4 )

       UpperCamelCase					=  hf_hub_download(repo_id='nateraw/video-demo'  ,						filename='archery.mp4'  ,						repo_type='dataset' )
       UpperCamelCase					=  video_classifier(UpperCamelCase__  ,						top_k=2 )
       self.assertEqual(
           nested_simplify(UpperCamelCase__  ,						decimals=4 )  ,						[{'score': 0.5_1_9_9, 'label': 'LABEL_0'}, {'score': 0.4_8_0_1, 'label': 'LABEL_1'}]  ,						)

       UpperCamelCase					=  video_classifier(
           [
               video_file_path,
               video_file_path,
           ]  ,						top_k=2  ,						)
       self.assertEqual(
           nested_simplify(UpperCamelCase__  ,						decimals=4 )  ,						[
               [{'score': 0.5_1_9_9, 'label': 'LABEL_0'}, {'score': 0.4_8_0_1, 'label': 'LABEL_1'}],
               [{'score': 0.5_1_9_9, 'label': 'LABEL_0'}, {'score': 0.4_8_0_1, 'label': 'LABEL_1'}],
           ]  ,						)






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


       """simple docstring"""







       pass






'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_lowerCamelCase	:       Tuple      	=	{"configuration_ibert": ["IBERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "IBertConfig", "IBertOnnxConfig"]}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   _lowerCamelCase	:       Dict      	=	[
       "IBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
       "IBertForMaskedLM",
       "IBertForMultipleChoice",
       "IBertForQuestionAnswering",
       "IBertForSequenceClassification",
       "IBertForTokenClassification",
       "IBertModel",
       "IBertPreTrainedModel",
   ]

if TYPE_CHECKING:
   from .configuration_ibert import IBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, IBertConfig, IBertOnnxConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_ibert import (
          IBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          IBertForMaskedLM,
          IBertForMultipleChoice,
          IBertForQuestionAnswering,
          IBertForSequenceClassification,
          IBertForTokenClassification,
          IBertModel,
          IBertPreTrainedModel,
      )

else:
   import sys

   _lowerCamelCase	:       Union[str, Any]      	=	_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)

