



import webbrowser
from sys import argv
from urllib.parse import parse_qs, quote

import requests
from bsa import BeautifulSoup
from fake_useragent import UserAgent

if __name__ == "__main__":
	UpperCAmelCase							 =					"""%20""".join(argv[1:]) if len(argv) > 1 else quote(str(input("""Search: """)))

	print("""Googling.....""")

	UpperCAmelCase							 =					f"""https://www.google.com/search?q={query}&num=100"""

	UpperCAmelCase							 =					requests.get(
	    url,
	    headers={"""User-Agent""": str(UserAgent().random)},
	)

	try:
		UpperCAmelCase							 =					(
		    BeautifulSoup(res.text, """html.parser""")
		    .find("""div""", attrs={"""class""": """yuRUbf"""})
		    .find("""a""")
		    .get("""href""")
		)

	except AttributeError:
		UpperCAmelCase							 =					parse_qs(
		    BeautifulSoup(res.text, """html.parser""")
		    .find("""div""", attrs={"""class""": """kCrYT"""})
		    .find("""a""")
		    .get("""href""")
		)["""url"""][0]

	webbrowser.open(link)






import unittest

from transformers import (
    MODEL_FOR_OBJECT_DETECTION_MAPPING,
    AutoFeatureExtractor,
    AutoModelForObjectDetection,
    ObjectDetectionPipeline,
    is_vision_available,
    pipeline,
)
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_pytesseract,
    require_tf,
    require_timm,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
	from PIL import Image
else:

	class  __snake_case      :







								'''simple docstring'''






								@staticmethod
								def _a      (							*a_  ,  **a_		):
												pass

@is_pipeline_test
@require_vision
@require_timm
@require_torch
class  __snake_case      (   unittest.TestCase):







							'''simple docstring'''






							UpperCamelCase__				:      Dict         =					MODEL_FOR_OBJECT_DETECTION_MAPPING


							def _a      (							self  ,  a_  ,  a_  ,  a_		):
											a__				      =		ObjectDetectionPipeline(model=a_  ,  image_processor=a_		)
											return object_detector, ["./tests/fixtures/tests_samples/COCO/000000039769.png"]


							def _a      (							self  ,  a_  ,  a_		):
											a__				      =		object_detector("""./tests/fixtures/tests_samples/COCO/000000039769.png"""  ,  threshold=0.0		)

											self.assertGreater(len(a_		)  ,  0		)
											for detected_object in outputs:
															self.assertEqual(
															    a_  ,  {
															        """score""": ANY(a_		),
															        """label""": ANY(a_		),
															        """box""": {"""xmin""": ANY(a_		), """ymin""": ANY(a_		), """xmax""": ANY(a_		), """ymax""": ANY(a_		)},
															    }  ,  )

											import datasets

											a__				      =		datasets.load_dataset("""hf-internal-testing/fixtures_image_utils"""  ,  """image"""  ,  split="""test"""		)

											a__				      =		[
											    Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""		),
											    """http://images.cocodataset.org/val2017/000000039769.jpg""",
											    # RGBA
											    dataset[0]["""file"""],
											    # LA
											    dataset[1]["""file"""],
											    # L
											    dataset[2]["""file"""],
											]
											a__				      =		object_detector(a_  ,  threshold=0.0		)

											self.assertEqual(len(a_		)  ,  len(a_		)		)
											for outputs in batch_outputs:
															self.assertGreater(len(a_		)  ,  0		)
															for detected_object in outputs:
																			self.assertEqual(
																			    a_  ,  {
																			        """score""": ANY(a_		),
																			        """label""": ANY(a_		),
																			        """box""": {"""xmin""": ANY(a_		), """ymin""": ANY(a_		), """xmax""": ANY(a_		), """ymax""": ANY(a_		)},
																			    }  ,  )


							@require_tf
							@unittest.skip("""Object detection not implemented in TF"""		)
							def _a      (							self		):
											pass


							@require_torch
							def _a      (							self		):
											a__				      =		"""hf-internal-testing/tiny-detr-mobilenetsv3"""

											a__				      =		AutoModelForObjectDetection.from_pretrained(a_		)
											a__				      =		AutoFeatureExtractor.from_pretrained(a_		)
											a__				      =		ObjectDetectionPipeline(model=a_  ,  feature_extractor=a_		)

											a__				      =		object_detector("""http://images.cocodataset.org/val2017/000000039769.jpg"""  ,  threshold=0.0		)

											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											        {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											    ]  ,  )

											a__				      =		object_detector(
											    [
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											    ]  ,  threshold=0.0  ,  )

											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        [
											            {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											            {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											        ],
											        [
											            {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											            {"""score""": 0.3_376, """label""": """LABEL_0""", """box""": {"""xmin""": 159, """ymin""": 120, """xmax""": 480, """ymax""": 359}},
											        ],
											    ]  ,  )


							@require_torch
							@slow
							def _a      (							self		):
											a__				      =		"""facebook/detr-resnet-50"""

											a__				      =		AutoModelForObjectDetection.from_pretrained(a_		)
											a__				      =		AutoFeatureExtractor.from_pretrained(a_		)
											a__				      =		ObjectDetectionPipeline(model=a_  ,  feature_extractor=a_		)

											a__				      =		object_detector("""http://images.cocodataset.org/val2017/000000039769.jpg"""		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											        {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											        {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											        {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											        {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											    ]  ,  )

											a__				      =		object_detector(
											    [
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											    ]		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        [
											            {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											            {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											            {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											            {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											            {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											        ],
											        [
											            {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											            {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											            {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											            {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											            {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											        ],
											    ]  ,  )


							@require_torch
							@slow
							def _a      (							self		):
											a__				      =		"""facebook/detr-resnet-50"""

											a__				      =		pipeline("""object-detection"""  ,  model=a_		)

											a__				      =		object_detector("""http://images.cocodataset.org/val2017/000000039769.jpg"""		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											        {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											        {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											        {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											        {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											    ]  ,  )

											a__				      =		object_detector(
											    [
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											        """http://images.cocodataset.org/val2017/000000039769.jpg""",
											    ]		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        [
											            {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											            {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											            {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											            {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											            {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											        ],
											        [
											            {"""score""": 0.9_982, """label""": """remote""", """box""": {"""xmin""": 40, """ymin""": 70, """xmax""": 175, """ymax""": 117}},
											            {"""score""": 0.9_960, """label""": """remote""", """box""": {"""xmin""": 333, """ymin""": 72, """xmax""": 368, """ymax""": 187}},
											            {"""score""": 0.9_955, """label""": """couch""", """box""": {"""xmin""": 0, """ymin""": 1, """xmax""": 639, """ymax""": 473}},
											            {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											            {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											        ],
											    ]  ,  )


							@require_torch
							@slow
							def _a      (							self		):
											a__				      =		0.9_985
											a__				      =		"""facebook/detr-resnet-50"""

											a__				      =		pipeline("""object-detection"""  ,  model=a_		)

											a__				      =		object_detector("""http://images.cocodataset.org/val2017/000000039769.jpg"""  ,  threshold=a_		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        {"""score""": 0.9_988, """label""": """cat""", """box""": {"""xmin""": 13, """ymin""": 52, """xmax""": 314, """ymax""": 470}},
											        {"""score""": 0.9_987, """label""": """cat""", """box""": {"""xmin""": 345, """ymin""": 23, """xmax""": 640, """ymax""": 368}},
											    ]  ,  )







							@require_torch
							@require_pytesseract
							@slow
							def _a      (							self		):
											a__				      =		"""Narsil/layoutlmv3-finetuned-funsd"""
											a__				      =		0.9_993

											a__				      =		pipeline("""object-detection"""  ,  model=a_  ,  threshold=a_		)

											a__				      =		object_detector(
											    """https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png"""		)
											self.assertEqual(
											    nested_simplify(a_  ,  decimals=4		)  ,  [
											        {"""score""": 0.9_993, """label""": """I-ANSWER""", """box""": {"""xmin""": 294, """ymin""": 254, """xmax""": 343, """ymax""": 264}},
											        {"""score""": 0.9_993, """label""": """I-ANSWER""", """box""": {"""xmin""": 294, """ymin""": 254, """xmax""": 343, """ymax""": 264}},
											    ]  ,  )

