code: 
  
  
  # Copyright 2022 The HuggingFace Team. All rights reserved.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  import os
  from typing import List
  
  
  
  
  
  
  def 		_A		(		_lowercase				,     _lowercase   )				->   str:
  
  
       """simple docstring"""
  
  
       if name != "training_function" and name != "main":
            raise ValueError(f'''Incorrect function name passed: {name}, choose either \'main\' or \'training_function\''''   )
       __UpperCamelCase,						__UpperCamelCase   = [], False
       for line in lines:
            if not found_start and f'''def {name}''' in line:
                 __UpperCamelCase   = True
                 good_lines.append(_lowercase   )
                 continue
            if found_start:
                 if name == "training_function" and "def main" in line:
                      return good_lines
                 if name == "main" and "if __name__" in line:
                      return good_lines
                 good_lines.append(_lowercase   )
  
  
  
  
  
  
  def 		_A		(		_lowercase   )				->   Union[str, Any]:
  
  
       """simple docstring"""
  
  
       return [line for line in lines if not line.lstrip().startswith('#'   ) and line != "\n"]
  
  
  
  
  
  
  def 		_A		(		_lowercase				,     _lowercase				,     _lowercase				,     _lowercase = None   )				->   Optional[Any]:
  
  
       """simple docstring"""
  
  
       with open(_lowercase				,     'r'   ) as f:
            __UpperCamelCase   = f.readlines()
       with open(os.path.abspath(os.path.join('examples'				,     'nlp_example.py'   )   )				,     'r'   ) as f:
            __UpperCamelCase   = f.readlines()
       with open(_lowercase				,     'r'   ) as f:
            __UpperCamelCase   = f.readlines()
       if secondary_filename is not None:
            with open(_lowercase				,     'r'   ) as f:
                 __UpperCamelCase   = f.readlines()
  
      # This is our base, we remove all the code from here in our `full_filename` and `feature_filename` to find the new content
       if parser_only:
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'main'   )   )
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'main'   )   )
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'main'   )   )
            if secondary_filename is not None:
                 __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'main'   )   )
       else:
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'training_function'   )   )
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'training_function'   )   )
            __UpperCamelCase   = clean_lines(get_function_contents_by_name(_lowercase				,     'training_function'   )   )
            if secondary_filename is not None:
                 __UpperCamelCase   = clean_lines(
                     get_function_contents_by_name(_lowercase				,     'training_function'   )   )
  
       __UpperCamelCase   = 'train_dataloader, eval_dataloader = get_dataloaders(accelerator, batch_size)\n'
  
       # Specific code in our script that differs from the full version, aka what is new
       __UpperCamelCase   = []
       __UpperCamelCase   = []  # We keep track of the idxs just in case it's a repeated statement
       __UpperCamelCase   = iter(_lowercase   )
       for i in range(len(_lowercase   ) - 1   ):
            if i not in passed_idxs:
                 __UpperCamelCase   = next(_lowercase   )
                 if (line not in full_file_func) and (line.lstrip() != _dl_line):
                      if "TESTING_MOCKED_DATALOADERS" not in line:
                           new_feature_code.append(_lowercase   )
                           passed_idxs.append(_lowercase   )
                      else:
                           # Skip over the `config['num_epochs'] = 2` statement
                           __UpperCamelCase   = next(_lowercase   )
  
      # Extract out just the new parts from the full_file_training_func
       __UpperCamelCase   = []
       __UpperCamelCase   = []  # We keep track of the idxs just in case it's a repeated statement
       for i, line in enumerate(_lowercase   ):
            if i not in passed_idxs:
                 if (line not in full_file_func) and (line.lstrip() != _dl_line):
                      if "TESTING_MOCKED_DATALOADERS" not in line:
                           new_full_example_parts.append(_lowercase   )
                           passed_idxs.append(_lowercase   )
  
      # Finally, get the overall diff
       __UpperCamelCase   = [line for line in new_feature_code if line not in new_full_example_parts]
       if secondary_filename is not None:
            __UpperCamelCase   = [line for line in full_file_contents if line not in secondary_file_func]
            __UpperCamelCase   = [line for line in diff_from_example if line not in diff_from_two]
  
       return diff_from_example
  
  
  
style_context: 
  
  
  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:
      __snake_case             =	False
  
  
  if is_vision_available():
      from PIL import Image
  else:
  
  
  
      class   __lowerCamelCase :
  
  
  
  
  
  
  
             @staticmethod
             def 		snake_case_  ( *A_:   List[str],**A_:   Any				):
  
  
  
  
  
  
                  '''simple docstring'''
  
  
  
  
                  pass
  
  
  
  @is_pipeline_test
  @require_vision
  class   __lowerCamelCase (unittest.TestCase	):
         _lowercase       							=    MODEL_FOR_VISION_2_SEQ_MAPPING
         _lowercase       							=    TF_MODEL_FOR_VISION_2_SEQ_MAPPING
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Dict,A_:   int,A_:   List[str],A_:   List[str]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model=A_,tokenizer=A_,image_processor=A_				)
              __UpperCamelCase   = [
                  Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'				),
                  './tests/fixtures/tests_samples/COCO/000000039769.png',
              ]
              return pipe, examples
  
  
  
  
  
  
  
         def 		snake_case_  ( self:   Union[str, Any],A_:   Optional[Any],A_:   Optional[int]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(
                  A_,[
                      [{'generated_text': ANY(A_				)}],
                      [{'generated_text': ANY(A_				)}],
                  ],)
  
  
  
  
  
  
  
         @require_tf
         def 		snake_case_  ( self:   str				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='hf-internal-testing/tiny-random-vit-gpt2',framework='tf'				)
              __UpperCamelCase   = './tests/fixtures/tests_samples/COCO/000000039769.png'
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(
                  A_,[
                      {
                          'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                      },
                  ],)
  
              __UpperCamelCase   = pipe([image, image]				)
              self.assertEqual(
                  A_,[
                      [
                          {
                              'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                          }
                      ],
                      [
                          {
                              'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                          }
                      ],
                  ],)
  
              __UpperCamelCase   = pipe(A_,max_new_tokens=1				)
              self.assertEqual(
                  A_,[{'generated_text': 'growth'}],)
  
  
  
  
  
  
  
         @require_torch
         def 		snake_case_  ( self:   Any				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='hf-internal-testing/tiny-random-vit-gpt2'				)
              __UpperCamelCase   = './tests/fixtures/tests_samples/COCO/000000039769.png'
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(
                  A_,[
                      {
                          'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                      },
                  ],)
  
              __UpperCamelCase   = pipe([image, image]				)
              self.assertEqual(
                  A_,[
                      [
                          {
                              'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                          }
                      ],
                      [
                          {
                              'generated_text': 'growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'
                          }
                      ],
                  ],)
  
  
  
  
  
  
  
         @require_torch
         def 		snake_case_  ( self:   str				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='hf-internal-testing/tiny-random-BlipForConditionalGeneration'				)
              __UpperCamelCase   = './tests/fixtures/tests_samples/COCO/000000039769.png'
              __UpperCamelCase   = 'a photo of'
  
              __UpperCamelCase   = pipe(A_,prompt=A_				)
              self.assertTrue(outputs[0]['generated_text'].startswith(A_				)				)
  
  
  
  
  
  
  
         @slow
         @require_torch
         def 		snake_case_  ( self:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='ydshieh/vit-gpt2-coco-en'				)
              __UpperCamelCase   = './tests/fixtures/tests_samples/COCO/000000039769.png'
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(A_,[{'generated_text': 'a cat laying on a blanket next to a cat laying on a bed '}]				)
  
              __UpperCamelCase   = 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 		snake_case_  ( self:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='Salesforce/blip-image-captioning-base'				)
              __UpperCamelCase   = 'https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'
              __UpperCamelCase   = Image.open(requests.get(A_,stream=A_				).raw				)
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(A_,[{'generated_text': 'a pink pokemon pokemon with a blue shirt and a blue shirt'}]				)
  
  
  
  
  
  
  
         @slow
         @require_torch
         def 		snake_case_  ( self:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='microsoft/git-base-coco'				)
              __UpperCamelCase   = 'https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'
              __UpperCamelCase   = Image.open(requests.get(A_,stream=A_				).raw				)
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(A_,[{'generated_text': 'a cartoon of a purple character.'}]				)
  
  
  
  
  
  
  
         @slow
         @require_torch
         def 		snake_case_  ( self:   Dict				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='Salesforce/blip-image-captioning-base'				)
              __UpperCamelCase   = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
              __UpperCamelCase   = Image.open(requests.get(A_,stream=A_				).raw				)
  
              __UpperCamelCase   = 'a photography of'
  
              __UpperCamelCase   = pipe(A_,prompt=A_				)
              self.assertEqual(A_,[{'generated_text': 'a photography of a volcano'}]				)
  
              with self.assertRaises(A_				):
                   __UpperCamelCase   = pipe([image, image],prompt=[prompt, prompt]				)
  
  
  
  
  
  
  
         @slow
         @require_torch
         def 		snake_case_  ( self:   List[Any]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='microsoft/git-base-coco'				)
              __UpperCamelCase   = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
              __UpperCamelCase   = Image.open(requests.get(A_,stream=A_				).raw				)
  
              __UpperCamelCase   = 'a photo of a'
  
              __UpperCamelCase   = 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_				):
                   __UpperCamelCase   = 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 		snake_case_  ( self:   List[Any]				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='google/pix2struct-ai2d-base'				)
              __UpperCamelCase   = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
              __UpperCamelCase   = Image.open(requests.get(A_,stream=A_				).raw				)
  
              __UpperCamelCase   = 'What does the label 15 represent? (1) lava (2) core (3) tunnel (4) ash cloud'
  
              __UpperCamelCase   = pipe(A_,prompt=A_				)
              self.assertEqual(A_,[{'generated_text': 'ash cloud'}]				)
  
              with self.assertRaises(A_				):
                   __UpperCamelCase   = pipe([image, image],prompt=[prompt, prompt]				)
  
  
  
  
  
  
  
         @slow
         @require_tf
         def 		snake_case_  ( self:   Any				):
  
  
  
  
  
  
              '''simple docstring'''
  
  
  
  
              __UpperCamelCase   = pipeline('image-to-text',model='ydshieh/vit-gpt2-coco-en',framework='tf'				)
              __UpperCamelCase   = './tests/fixtures/tests_samples/COCO/000000039769.png'
  
              __UpperCamelCase   = pipe(A_				)
              self.assertEqual(A_,[{'generated_text': 'a cat laying on a blanket next to a cat laying on a bed '}]				)
  
              __UpperCamelCase   = 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 '}],
                  ],)
  
  
  