





"""simple docstring"""


from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

__magic_name__       :					Union[str, Any]						=			typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
__magic_name__       :					Optional[int]						=			typing.Union[np.floataa, int, float]  # noqa: UP007

def      UpperCamelCase							(SCREAMING_SNAKE_CASE							,     SCREAMING_SNAKE_CASE     ):
						return np.sqrt(np.sum((np.asarray(SCREAMING_SNAKE_CASE     ) - np.asarray(SCREAMING_SNAKE_CASE     )) ** 2     )     )

def      UpperCamelCase							(SCREAMING_SNAKE_CASE							,     SCREAMING_SNAKE_CASE     ):
						return sum((va - va) ** 2 for va, va in zip(SCREAMING_SNAKE_CASE							,     SCREAMING_SNAKE_CASE     )     ) ** (1 / 2)


if __name__ == "__main__":

		def      UpperCamelCase							():
								from timeit import timeit

								print("""Without Numpy"""     )
								print(
								    timeit(
								        """euclidean_distance_no_np([1, 2, 3], [4, 5, 6])"""							,     number=1_0000							,     globals=globals()							,     )     )
								print("""With Numpy"""     )
								print(
								    timeit(
								        """euclidean_distance([1, 2, 3], [4, 5, 6])"""							,     number=1_0000							,     globals=globals()							,     )     )
		benchmark()






"""simple docstring"""





# 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 							SCREAMING_SNAKE_CASE   (						a_			):






					"""simple docstring"""



					lowercase__												=			"Salesforce/blip-image-captioning-base"
					lowercase__												=			(
					    "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__												=			"image_captioner"
					lowercase__												=			AutoModelForVisionaSeq

					lowercase__												=			["image"]
					lowercase__												=			["text"]







					def __init__(			self     :							int  ,*lowercase_     :							int  ,**lowercase_     :							List[str]						):
						requires_backends(self  ,['''vision''']						)
						super().__init__(*lowercase_  ,**lowercase_						)







					def 			__lowerCAmelCase					(			self     :							List[str]  ,lowercase_     :							"Image"						):
						return self.pre_processor(images=lowercase_  ,return_tensors='''pt'''						)







					def 			__lowerCAmelCase					(			self     :							List[Any]  ,lowercase_     :							Any						):
						return self.model.generate(**lowercase_						)







					def 			__lowerCAmelCase					(			self     :							Dict  ,lowercase_     :							Union[str, Any]						):
						return self.pre_processor.batch_decode(lowercase_  ,skip_special_tokens=lowercase_						)[0].strip()




