


from ...processing_utils import ProcessorMixin


class   a__	(						lowerCAmelCase_    ):
       lowerCamelCase__:     Dict							    =     ["""image_processor""", """feature_extractor"""]
       lowerCamelCase__:     Tuple							    =     """TvltImageProcessor"""
       lowerCamelCase__:     int							    =     """TvltFeatureExtractor"""

       def __init__(   self      :     List[Any]      ,							lowerCamelCase_      :     Optional[int]      ,							lowerCamelCase_      :     Tuple    ):
            super().__init__(image_processor=lowerCamelCase_      ,							feature_extractor=lowerCamelCase_    )

            a_    :     Dict										=    image_processor
            a_    :     Optional[Any]										=    feature_extractor

       def __call__(   self      :     Optional[int]      ,							lowerCamelCase_      :     Any=None      ,							lowerCamelCase_      :     Optional[Any]=None      ,							lowerCamelCase_      :     Any=None      ,							lowerCamelCase_      :     Optional[Any]=None      ,							lowerCamelCase_      :     Union[str, Any]=False      ,							lowerCamelCase_      :     Any=False      ,							*lowerCamelCase_      :     Tuple      ,							**lowerCamelCase_      :     Tuple      ,							):

            if images is None and audio is None:
                 raise ValueError("""You need to specify either an `images` or `audio` input to process."""    )

            a_    :     List[Any]										=    None
            if images is not None:
                 a_    :     Dict										=    self.image_processor(lowerCamelCase_      ,							mask_pixel=lowerCamelCase_      ,							*lowerCamelCase_      ,							**lowerCamelCase_    )
            if images_mixed is not None:
                 a_    :     Dict										=    self.image_processor(lowerCamelCase_      ,							is_mixed=lowerCamelCase_      ,							*lowerCamelCase_      ,							**lowerCamelCase_    )
            if audio is not None:
                 a_    :     str										=    self.feature_extractor(
                     lowerCamelCase_      ,							*lowerCamelCase_      ,							sampling_rate=lowerCamelCase_      ,							mask_audio=lowerCamelCase_      ,							**lowerCamelCase_    )

            a_    :     Tuple										=    {}
            if audio is not None:
                 output_dict.update(lowerCamelCase_    )
            if images is not None:
                 output_dict.update(lowerCamelCase_    )
            if images_mixed_dict is not None:
                 output_dict.update(lowerCamelCase_    )
            return output_dict

       @property
       def 						UpperCAmelCase(   self      :     Optional[Any]    ):
            a_    :     Any										=    self.image_processor.model_input_names
            a_    :     Union[str, Any]										=    self.feature_extractor.model_input_names
            return list(dict.fromkeys(image_processor_input_names + feature_extractor_input_names    )    )







from typing import TYPE_CHECKING

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


__lowerCamelCase        =     {'''configuration_vit''': ['''VIT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ViTConfig''', '''ViTOnnxConfig''']}

try:
       if not is_vision_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __lowerCamelCase        =     ['''ViTFeatureExtractor''']
       __lowerCamelCase        =     ['''ViTImageProcessor''']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __lowerCamelCase        =     [
           '''VIT_PRETRAINED_MODEL_ARCHIVE_LIST''',
           '''ViTForImageClassification''',
           '''ViTForMaskedImageModeling''',
           '''ViTModel''',
           '''ViTPreTrainedModel''',
       ]

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __lowerCamelCase        =     [
           '''TFViTForImageClassification''',
           '''TFViTModel''',
           '''TFViTPreTrainedModel''',
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __lowerCamelCase        =     [
           '''FlaxViTForImageClassification''',
           '''FlaxViTModel''',
           '''FlaxViTPreTrainedModel''',
       ]

if TYPE_CHECKING:
       from .configuration_vit import VIT_PRETRAINED_CONFIG_ARCHIVE_MAP, ViTConfig, ViTOnnxConfig

       try:
              if not is_vision_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .feature_extraction_vit import ViTFeatureExtractor
              from .image_processing_vit import ViTImageProcessor

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_vit import (
                  VIT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  ViTForImageClassification,
                  ViTForMaskedImageModeling,
                  ViTModel,
                  ViTPreTrainedModel,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_vit import TFViTForImageClassification, TFViTModel, TFViTPreTrainedModel

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_vit import FlaxViTForImageClassification, FlaxViTModel, FlaxViTPreTrainedModel


else:
       import sys

       __lowerCamelCase        =     _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)



