code: 
  
  
  
  
  '''simple docstring'''
  
  
  
  
  
  import itertools
  from dataclasses import dataclass
  from typing import Optional
  
  import pyarrow as pa
  
  import datasets
  from datasets.table import table_cast
  
  
  lowercase__			=	datasets.utils.logging.get_logger(__name__)
  
  
  
  
  
  
  @dataclass
  class 						lowercase     (   datasets.BuilderConfig):
        __lowercase 		=  None
  
  
  
  
  
  
  class 						lowercase     (   datasets.ArrowBasedBuilder):
        __lowercase 		=  ArrowConfig
  
  
  
  
  
  
        def    A__(self					)       ->   Optional[int]:
           return datasets.DatasetInfo(features=self.config.features					)
  
  
  
  
  
  
        def    A__(self ,  a__					)       ->   List[str]:
           if not self.config.data_files:
              raise ValueError(f"""At least one data file must be specified, but got data_files={self.config.data_files}"""					)
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= dl_manager.download_and_extract(self.config.data_files					)
           if isinstance(a__ ,  (str, list, tuple)					):
              SCREAMING_SNAKE_CASE__			:				int       						= data_files
              if isinstance(a__ ,  a__					):
                 SCREAMING_SNAKE_CASE__			:				Optional[int]       						= [files]
              # Use `dl_manager.iter_files` to skip hidden files in an extracted archive
              SCREAMING_SNAKE_CASE__			:				str       						= [dl_manager.iter_files(a__					) for file in files]
              return [datasets.SplitGenerator(name=datasets.Split.TRAIN ,  gen_kwargs={'''files''': files}					)]
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= []
           for split_name, files in data_files.items():
              if isinstance(a__ ,  a__					):
                 SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= [files]
              # Use `dl_manager.iter_files` to skip hidden files in an extracted archive
              SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= [dl_manager.iter_files(a__					) for file in files]
              # Infer features is they are stoed in the arrow schema
              if self.info.features is None:
                 for file in itertools.chain.from_iterable(a__					):
                    with open(a__ ,  '''rb'''					) as f:
                       SCREAMING_SNAKE_CASE__			:				str       						= datasets.Features.from_arrow_schema(pa.ipc.open_stream(a__					).schema					)
                    break
              splits.append(datasets.SplitGenerator(name=a__ ,  gen_kwargs={'''files''': files}					)					)
           return splits
  
  
  
  
  
  
        def    A__(self ,  a__					)       ->   pa.Table:
           if self.info.features is not None:
              # more expensive cast to support nested features with keys in a different order
              # allows str <-> int/float or str to Audio for example
              SCREAMING_SNAKE_CASE__			:				List[Any]       						= table_cast(a__ ,  self.info.features.arrow_schema					)
           return pa_table
  
  
  
  
  
  
        def    A__(self ,  a__					)       ->   Tuple:
           for file_idx, file in enumerate(itertools.chain.from_iterable(a__					)					):
              with open(a__ ,  '''rb'''					) as f:
                 try:
                    for batch_idx, record_batch in enumerate(pa.ipc.open_stream(a__					)					):
                       SCREAMING_SNAKE_CASE__			:				List[str]       						= pa.Table.from_batches([record_batch]					)
                       # Uncomment for debugging (will print the Arrow table size and elements)
                       # logger.warning(f"pa_table: {pa_table} num rows: {pa_table.num_rows}")
                       # logger.warning('\n'.join(str(pa_table.slice(i, 1).to_pydict()) for i in range(pa_table.num_rows)))
                       yield f"""{file_idx}_{batch_idx}""", self._cast_table(a__					)
                 except ValueError as e:
                    logger.error(f"""Failed to read file '{file}' with error {type(a__					)}: {e}"""					)
                    raise
  
  
style_context: 
  
  
  
  
  '''simple docstring'''
  
  
  
  
  
  import unittest
  
  import requests
  
  from transformers import MODEL_FOR_VISION_2_SEQ_MAPPING, TF_MODEL_FOR_VISION_2_SEQ_MAPPING, is_vision_available
  from transformers.pipelines import pipeline
  from transformers.testing_utils import (
      is_pipeline_test,
      is_torch_available,
      require_tf,
      require_torch,
      require_vision,
      slow,
  )
  
  from .test_pipelines_common import ANY
  
  
  if is_torch_available():
         from transformers.pytorch_utils import is_torch_greater_or_equal_than_1_11
  else:
         lowercase__			=	False
  
  
  if is_vision_available():
         from PIL import Image
  else:
  
  
  
  
  
  
         class 						lowercase     :
  
  
  
  
  
  
               @staticmethod
               def    A__(*a__ ,  **a__					)       ->   Optional[Any]:
                  pass
  
  
  
  
  
  
  @is_pipeline_test
  @require_vision
  class 						lowercase     (   unittest.TestCase):
        __lowercase 		=  MODEL_FOR_VISION_2_SEQ_MAPPING
        __lowercase 		=  TF_MODEL_FOR_VISION_2_SEQ_MAPPING
  
  
  
  
  
  
        def    A__(self ,  a__ ,  a__ ,  a__					)       ->   Optional[Any]:
           SCREAMING_SNAKE_CASE__			:				Tuple       						= pipeline('''image-to-text''' ,  model=a__ ,  tokenizer=a__ ,  image_processor=a__					)
           SCREAMING_SNAKE_CASE__			:				List[Any]       						= [
               Image.open('''./tests/fixtures/tests_samples/COCO/000000039769.png'''					),
               '''./tests/fixtures/tests_samples/COCO/000000039769.png''',
           ]
           return pipe, examples
  
  
  
  
  
  
        def    A__(self ,  a__ ,  a__					)       ->   Any:
           SCREAMING_SNAKE_CASE__			:				Tuple       						= pipe(a__					)
           self.assertEqual(
               a__ ,  [
                   [{'''generated_text''': ANY(a__					)}],
                   [{'''generated_text''': ANY(a__					)}],
               ] ,  )
  
  
  
  
  
  
        @require_tf
        def    A__(self					)       ->   List[str]:
           SCREAMING_SNAKE_CASE__			:				List[str]       						= pipeline('''image-to-text''' ,  model='''hf-internal-testing/tiny-random-vit-gpt2''' ,  framework='''tf'''					)
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= '''./tests/fixtures/tests_samples/COCO/000000039769.png'''
  
           SCREAMING_SNAKE_CASE__			:				str       						= pipe(a__					)
           self.assertEqual(
               a__ ,  [
                   {
                       '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                   },
               ] ,  )
  
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= pipe([image, image]					)
           self.assertEqual(
               a__ ,  [
                   [
                       {
                           '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                       }
                   ],
                   [
                       {
                           '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                       }
                   ],
               ] ,  )
  
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipe(a__ ,  max_new_tokens=1					)
           self.assertEqual(
               a__ ,  [{'''generated_text''': '''growth'''}] ,  )
  
  
  
  
  
  
        @require_torch
        def    A__(self					)       ->   Optional[Any]:
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= pipeline('''image-to-text''' ,  model='''hf-internal-testing/tiny-random-vit-gpt2'''					)
           SCREAMING_SNAKE_CASE__			:				Any       						= '''./tests/fixtures/tests_samples/COCO/000000039769.png'''
  
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= pipe(a__					)
           self.assertEqual(
               a__ ,  [
                   {
                       '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                   },
               ] ,  )
  
           SCREAMING_SNAKE_CASE__			:				Any       						= pipe([image, image]					)
           self.assertEqual(
               a__ ,  [
                   [
                       {
                           '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                       }
                   ],
                   [
                       {
                           '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                       }
                   ],
               ] ,  )
  
  
  
  
  
  
        @require_torch
        def    A__(self					)       ->   Any:
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipeline('''image-to-text''' ,  model='''hf-internal-testing/tiny-random-BlipForConditionalGeneration'''					)
           SCREAMING_SNAKE_CASE__			:				int       						= '''./tests/fixtures/tests_samples/COCO/000000039769.png'''
           SCREAMING_SNAKE_CASE__			:				Tuple       						= '''a photo of'''
  
           SCREAMING_SNAKE_CASE__			:				List[Any]       						= pipe(a__ ,  prompt=a__					)
           self.assertTrue(outputs[0]['''generated_text'''].startswith(a__					)					)
  
  
  
  
  
  
        @slow
        @require_torch
        def    A__(self					)       ->   List[Any]:
           SCREAMING_SNAKE_CASE__			:				Tuple       						= pipeline('''image-to-text''' ,  model='''ydshieh/vit-gpt2-coco-en'''					)
           SCREAMING_SNAKE_CASE__			:				List[str]       						= '''./tests/fixtures/tests_samples/COCO/000000039769.png'''
  
           SCREAMING_SNAKE_CASE__			:				List[Any]       						= pipe(a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}]					)
  
           SCREAMING_SNAKE_CASE__			:				Tuple       						= pipe([image, image]					)
           self.assertEqual(
               a__ ,  [
                   [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
                   [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
               ] ,  )
  
  
  
  
  
  
        @slow
        @require_torch
        def    A__(self					)       ->   Tuple:
           SCREAMING_SNAKE_CASE__			:				Dict       						= pipeline('''image-to-text''' ,  model='''Salesforce/blip-image-captioning-base'''					)
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= '''https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'''
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= Image.open(requests.get(a__ ,  stream=a__					).raw					)
  
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= pipe(a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a pink pokemon pokemon with a blue shirt and a blue shirt'''}]					)
  
  
  
  
  
  
        @slow
        @require_torch
        def    A__(self					)       ->   int:
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= pipeline('''image-to-text''' ,  model='''microsoft/git-base-coco'''					)
           SCREAMING_SNAKE_CASE__			:				str       						= '''https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'''
           SCREAMING_SNAKE_CASE__			:				List[str]       						= Image.open(requests.get(a__ ,  stream=a__					).raw					)
  
           SCREAMING_SNAKE_CASE__			:				str       						= pipe(a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a cartoon of a purple character.'''}]					)
  
  
  
  
  
  
        @slow
        @require_torch
        def    A__(self					)       ->   Dict:
           SCREAMING_SNAKE_CASE__			:				str       						= pipeline('''image-to-text''' ,  model='''Salesforce/blip-image-captioning-base'''					)
           SCREAMING_SNAKE_CASE__			:				List[Any]       						= '''https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'''
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= Image.open(requests.get(a__ ,  stream=a__					).raw					)
  
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= '''a photography of'''
  
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipe(a__ ,  prompt=a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a photography of a volcano'''}]					)
  
           with self.assertRaises(a__					):
              SCREAMING_SNAKE_CASE__			:				Any       						= pipe([image, image] ,  prompt=[prompt, prompt]					)
  
  
  
  
  
  
        @slow
        @require_torch
        def    A__(self					)       ->   Dict:
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipeline('''image-to-text''' ,  model='''microsoft/git-base-coco'''					)
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= '''https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'''
           SCREAMING_SNAKE_CASE__			:				Dict       						= Image.open(requests.get(a__ ,  stream=a__					).raw					)
  
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= '''a photo of a'''
  
           SCREAMING_SNAKE_CASE__			:				str       						= pipe(a__ ,  prompt=a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a photo of a tent with a tent and a tent in the background.'''}]					)
  
           with self.assertRaises(a__					):
              SCREAMING_SNAKE_CASE__			:				Dict       						= pipe([image, image] ,  prompt=[prompt, prompt]					)
  
  
  
  
  
  
        @unittest.skipIf(
            not is_torch_greater_or_equal_than_1_11 ,  reason='''`Pix2StructImageProcessor` requires `torch>=1.11.0`.'''					)
        @slow
        @require_torch
        def    A__(self					)       ->   Union[str, Any]:
           SCREAMING_SNAKE_CASE__			:				List[str]       						= pipeline('''image-to-text''' ,  model='''google/pix2struct-ai2d-base'''					)
           SCREAMING_SNAKE_CASE__			:				int       						= '''https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'''
           SCREAMING_SNAKE_CASE__			:				Any       						= Image.open(requests.get(a__ ,  stream=a__					).raw					)
  
           SCREAMING_SNAKE_CASE__			:				int       						= '''What does the label 15 represent? (1) lava (2) core (3) tunnel (4) ash cloud'''
  
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipe(a__ ,  prompt=a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''ash cloud'''}]					)
  
           with self.assertRaises(a__					):
              SCREAMING_SNAKE_CASE__			:				Any       						= pipe([image, image] ,  prompt=[prompt, prompt]					)
  
  
  
  
  
  
        @slow
        @require_tf
        def    A__(self					)       ->   str:
           SCREAMING_SNAKE_CASE__			:				Optional[int]       						= pipeline('''image-to-text''' ,  model='''ydshieh/vit-gpt2-coco-en''' ,  framework='''tf'''					)
           SCREAMING_SNAKE_CASE__			:				Optional[Any]       						= '''./tests/fixtures/tests_samples/COCO/000000039769.png'''
  
           SCREAMING_SNAKE_CASE__			:				Dict       						= pipe(a__					)
           self.assertEqual(a__ ,  [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}]					)
  
           SCREAMING_SNAKE_CASE__			:				Union[str, Any]       						= pipe([image, image]					)
           self.assertEqual(
               a__ ,  [
                   [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
                   [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
               ] ,  )
  
  