
"""simple docstring"""





from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding


class A_      (lowercase__ ):




  '''simple docstring'''
  SCREAMING_SNAKE_CASE__     :		int    	=						["""image_processor""", """tokenizer"""]
  SCREAMING_SNAKE_CASE__     :		Any    	=						"""EfficientNetImageProcessor"""
  SCREAMING_SNAKE_CASE__     :		Any    	=						("""BertTokenizer""", """BertTokenizerFast""")







  def __init__(						self							,  lowercase_							,  lowercase_    ):

     """simple docstring"""
     super().__init__(lowercase_							,  lowercase_    )







  def __call__(						self							,  lowercase_=None							,  lowercase_=None							,  lowercase_="max_length"							,  lowercase_=64							,  lowercase_=None							,  **lowercase_    ):

     """simple docstring"""
     if text is None and images is None:
        raise ValueError("You have to specify either text or images. Both cannot be none."    )

     if text is not None:
        UpperCAmelCase_   :   List[str]     	=       self.tokenizer(
            lowercase_							,  padding=lowercase_							,  max_length=lowercase_							,  return_tensors=lowercase_							,  **lowercase_    )

     if images is not None:
        UpperCAmelCase_   :   Optional[Any]     	=       self.image_processor(lowercase_							,  return_tensors=lowercase_							,  **lowercase_    )

     if text is not None and images is not None:
        UpperCAmelCase_   :   Tuple     	=       image_features.pixel_values
        return encoding
     elif text is not None:
        return encoding
     else:
        return BatchEncoding(data=dict(**lowercase_    )							,  tensor_type=lowercase_    )







  def 			UpperCamelCase__   (						self							,  *lowercase_							,  **lowercase_    ):

     """simple docstring"""
     return self.tokenizer.batch_decode(*lowercase_							,  **lowercase_    )







  def 			UpperCamelCase__   (						self							,  *lowercase_							,  **lowercase_    ):

     """simple docstring"""
     return self.tokenizer.decode(*lowercase_							,  **lowercase_    )







  @property
  def 			UpperCamelCase__   (						self    ):

     """simple docstring"""
     UpperCAmelCase_   :   Optional[Any]     	=       self.tokenizer.model_input_names
     UpperCAmelCase_   :   int     	=       self.image_processor.model_input_names
     return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names    )    )



from typing import List

import datasets
from datasets.tasks import ImageClassification

from ..folder_based_builder import folder_based_builder


UpperCAmelCase				 =   datasets.utils.logging.get_logger(__name__)






class 				_SCREAMING_SNAKE_CASE( folder_based_builder.FolderBasedBuilderConfig						):
   UpperCamelCase_					:    bool			      = None
   UpperCamelCase_					:    bool			      = None






class 				_SCREAMING_SNAKE_CASE( folder_based_builder.FolderBasedBuilder						):
   UpperCamelCase_					:    List[str]			      = datasets.Image()
   UpperCamelCase_					:    Any			      = 'image'
   UpperCamelCase_					:    str			      = ImageFolderConfig
   UpperCamelCase_					:    List[str]  # definition at the bottom of the script
   UpperCamelCase_					:    Union[str, Any]			      = ImageClassification(image_column='image'							,   label_column='label'						)

UpperCAmelCase				 =   [
    """.blp""",
    """.bmp""",
    """.dib""",
    """.bufr""",
    """.cur""",
    """.pcx""",
    """.dcx""",
    """.dds""",
    """.ps""",
    """.eps""",
    """.fit""",
    """.fits""",
    """.fli""",
    """.flc""",
    """.ftc""",
    """.ftu""",
    """.gbr""",
    """.gif""",
    """.grib""",
    """.h5""",
    """.hdf""",
    """.png""",
    """.apng""",
    """.jp2""",
    """.j2k""",
    """.jpc""",
    """.jpf""",
    """.jpx""",
    """.j2c""",
    """.icns""",
    """.ico""",
    """.im""",
    """.iim""",
    """.tif""",
    """.tiff""",
    """.jfif""",
    """.jpe""",
    """.jpg""",
    """.jpeg""",
    """.mpg""",
    """.mpeg""",
    """.msp""",
    """.pcd""",
    """.pxr""",
    """.pbm""",
    """.pgm""",
    """.ppm""",
    """.pnm""",
    """.psd""",
    """.bw""",
    """.rgb""",
    """.rgba""",
    """.sgi""",
    """.ras""",
    """.tga""",
    """.icb""",
    """.vda""",
    """.vst""",
    """.webp""",
    """.wmf""",
    """.emf""",
    """.xbm""",
    """.xpm""",
]
UpperCAmelCase				 =   IMAGE_EXTENSIONS