





# Copyright 2023 The HuggingFace Inc. 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.
from typing import TYPE_CHECKING

from ..models.auto import AutoModelForVisionaSeq
from ..utils import requires_backends
from .base import PipelineTool


if TYPE_CHECKING:
     from PIL import Image







class     __lowerCAmelCase	(   UpperCamelCase__):
      _lowercase    : List[str]            =      """Salesforce/blip-image-captioning-base"""
      _lowercase    : int            =      (
          """This is a tool that generates a description of an image. It takes an input named `image` which should be the """
          """image to caption, and returns a text that contains the description in English."""
      )
      _lowercase    : Any            =      """image_captioner"""
      _lowercase    : Union[str, Any]            =      AutoModelForVisionaSeq

      _lowercase    : Dict            =      ["""image"""]
      _lowercase    : Any            =      ["""text"""]







      def __init__(   self		,				*lowerCAmelCase__		,				**lowerCAmelCase__							)       ->						str:



        '''simple docstring'''




        requires_backends(self		,				["vision"]							)
        super().__init__(*lowerCAmelCase__		,				**lowerCAmelCase__							)







      def        _lowercase  (   self		,				lowerCAmelCase__							)       ->						Union[str, Any]:



        '''simple docstring'''




        return self.pre_processor(images=lowerCAmelCase__		,				return_tensors="pt"							)







      def        _lowercase  (   self		,				lowerCAmelCase__							)       ->						Union[str, Any]:



        '''simple docstring'''




        return self.model.generate(**lowerCAmelCase__							)







      def        _lowercase  (   self		,				lowerCAmelCase__							)       ->						Union[str, Any]:



        '''simple docstring'''




        return self.pre_processor.batch_decode(lowerCAmelCase__		,				skip_special_tokens=lowerCAmelCase__							)[0].strip()













from maths.prime_check import is_prime
def 					_A	(		SCREAMING_SNAKE_CASE					:       int						):





  """simple docstring"""



  if not isinstance(SCREAMING_SNAKE_CASE	,	SCREAMING_SNAKE_CASE						):
    a__     : Dict  =f'''Input value of [number={number}] must be an integer'''
    raise TypeError(SCREAMING_SNAKE_CASE						)
  if is_prime(SCREAMING_SNAKE_CASE						) and is_prime(number + 2						):
    return number + 2
  else:
    return -1


if __name__ == "__main__":
     import doctest

     doctest.testmod()






