"""simple docstring"""






import unittest

from transformers import MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING, is_vision_available, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
				from PIL import Image
else:

				class lowerCamelCase		:






									'''simple docstring'''


									@staticmethod
									def 			lowerCAmelCase_					(						*_snake_case			:				int   , **_snake_case			:				str		)							->       Dict:
													pass

@is_pipeline_test
@require_vision
@require_torch
class lowerCamelCase		(unittest.TestCase      ):






					'''simple docstring'''


					a   	=		MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING



					def 			lowerCAmelCase_					(						self			:				List[str]   , _snake_case			:				Union[str, Any]   , _snake_case			:				Any   , _snake_case			:				Optional[Any]		)							->       List[Any]:
									SCREAMING_SNAKE_CASE__		  =				pipeline(
									    "zero-shot-object-detection"   , model="hf-internal-testing/tiny-random-owlvit-object-detection"		)

									SCREAMING_SNAKE_CASE__		  =				[
									    {
									        '''image''': '''./tests/fixtures/tests_samples/COCO/000000039769.png''',
									        '''candidate_labels''': ['''cat''', '''remote''', '''couch'''],
									    }
									]
									return object_detector, examples



					def 			lowerCAmelCase_					(						self			:				List[Any]   , _snake_case			:				str   , _snake_case			:				str		)							->       Union[str, Any]:
									SCREAMING_SNAKE_CASE__		  =				object_detector(examples[0]   , threshold=0.0		)

									SCREAMING_SNAKE_CASE__		  =				len(lowerCamelCase__		)
									self.assertGreater(lowerCamelCase__   , 0		)
									self.assertEqual(
									    lowerCamelCase__   , [
									        {
									            "score": ANY(lowerCamelCase__		),
									            "label": ANY(lowerCamelCase__		),
									            "box": {"xmin": ANY(lowerCamelCase__		), "ymin": ANY(lowerCamelCase__		), "xmax": ANY(lowerCamelCase__		), "ymax": ANY(lowerCamelCase__		)},
									        }
									        for i in range(lowerCamelCase__		)
									    ]   , )



					@require_tf
					@unittest.skip("Zero Shot Object Detection not implemented in TF"		)
					def 			lowerCAmelCase_					(						self			:				Union[str, Any]		)							->       str:
									pass



					@require_torch
					def 			lowerCAmelCase_					(						self			:				str		)							->       Any:
									SCREAMING_SNAKE_CASE__		  =				pipeline(
									    "zero-shot-object-detection"   , model="hf-internal-testing/tiny-random-owlvit-object-detection"		)

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    "./tests/fixtures/tests_samples/COCO/000000039769.png"   , candidate_labels=["cat", "remote", "couch"]   , threshold=0.64   , )

									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        {"score": 0.7235, "label": "cat", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									        {"score": 0.7218, "label": "remote", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									        {"score": 0.7184, "label": "couch", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									        {"score": 0.6748, "label": "remote", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									        {"score": 0.6656, "label": "cat", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									        {"score": 0.6614, "label": "couch", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									        {"score": 0.6456, "label": "remote", "box": {"xmin": 494, "ymin": 105, "xmax": 521, "ymax": 127}},
									        {"score": 0.642, "label": "remote", "box": {"xmin": 67, "ymin": 274, "xmax": 93, "ymax": 297}},
									        {"score": 0.6419, "label": "cat", "box": {"xmin": 494, "ymin": 105, "xmax": 521, "ymax": 127}},
									    ]   , )

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    [
									        {
									            "image": "./tests/fixtures/tests_samples/COCO/000000039769.png",
									            "candidate_labels": ["cat", "remote", "couch"],
									        }
									    ]   , threshold=0.64   , )

									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        [
									            {"score": 0.7235, "label": "cat", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									            {"score": 0.7218, "label": "remote", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									            {"score": 0.7184, "label": "couch", "box": {"xmin": 204, "ymin": 167, "xmax": 232, "ymax": 190}},
									            {"score": 0.6748, "label": "remote", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									            {"score": 0.6656, "label": "cat", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									            {"score": 0.6614, "label": "couch", "box": {"xmin": 571, "ymin": 83, "xmax": 598, "ymax": 103}},
									            {"score": 0.6456, "label": "remote", "box": {"xmin": 494, "ymin": 105, "xmax": 521, "ymax": 127}},
									            {"score": 0.642, "label": "remote", "box": {"xmin": 67, "ymin": 274, "xmax": 93, "ymax": 297}},
									            {"score": 0.6419, "label": "cat", "box": {"xmin": 494, "ymin": 105, "xmax": 521, "ymax": 127}},
									        ]
									    ]   , )



					@require_torch
					@slow
					def 			lowerCAmelCase_					(						self			:				Union[str, Any]		)							->       List[str]:
									SCREAMING_SNAKE_CASE__		  =				pipeline("zero-shot-object-detection"		)

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    "http://images.cocodataset.org/val2017/000000039769.jpg"   , candidate_labels=["cat", "remote", "couch"]   , )
									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        {"score": 0.2868, "label": "cat", "box": {"xmin": 324, "ymin": 20, "xmax": 640, "ymax": 373}},
									        {"score": 0.277, "label": "remote", "box": {"xmin": 40, "ymin": 72, "xmax": 177, "ymax": 115}},
									        {"score": 0.2537, "label": "cat", "box": {"xmin": 1, "ymin": 55, "xmax": 315, "ymax": 472}},
									        {"score": 0.1474, "label": "remote", "box": {"xmin": 335, "ymin": 74, "xmax": 371, "ymax": 187}},
									        {"score": 0.1208, "label": "couch", "box": {"xmin": 4, "ymin": 0, "xmax": 642, "ymax": 476}},
									    ]   , )

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    [
									        {
									            "image": "http://images.cocodataset.org/val2017/000000039769.jpg",
									            "candidate_labels": ["cat", "remote", "couch"],
									        },
									        {
									            "image": "http://images.cocodataset.org/val2017/000000039769.jpg",
									            "candidate_labels": ["cat", "remote", "couch"],
									        },
									    ]   , )
									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        [
									            {"score": 0.2868, "label": "cat", "box": {"xmin": 324, "ymin": 20, "xmax": 640, "ymax": 373}},
									            {"score": 0.277, "label": "remote", "box": {"xmin": 40, "ymin": 72, "xmax": 177, "ymax": 115}},
									            {"score": 0.2537, "label": "cat", "box": {"xmin": 1, "ymin": 55, "xmax": 315, "ymax": 472}},
									            {"score": 0.1474, "label": "remote", "box": {"xmin": 335, "ymin": 74, "xmax": 371, "ymax": 187}},
									            {"score": 0.1208, "label": "couch", "box": {"xmin": 4, "ymin": 0, "xmax": 642, "ymax": 476}},
									        ],
									        [
									            {"score": 0.2868, "label": "cat", "box": {"xmin": 324, "ymin": 20, "xmax": 640, "ymax": 373}},
									            {"score": 0.277, "label": "remote", "box": {"xmin": 40, "ymin": 72, "xmax": 177, "ymax": 115}},
									            {"score": 0.2537, "label": "cat", "box": {"xmin": 1, "ymin": 55, "xmax": 315, "ymax": 472}},
									            {"score": 0.1474, "label": "remote", "box": {"xmin": 335, "ymin": 74, "xmax": 371, "ymax": 187}},
									            {"score": 0.1208, "label": "couch", "box": {"xmin": 4, "ymin": 0, "xmax": 642, "ymax": 476}},
									        ],
									    ]   , )



					@require_tf
					@unittest.skip("Zero Shot Object Detection not implemented in TF"		)
					def 			lowerCAmelCase_					(						self			:				Tuple		)							->       Optional[int]:
									pass



					@require_torch
					@slow
					def 			lowerCAmelCase_					(						self			:				Optional[int]		)							->       str:
									SCREAMING_SNAKE_CASE__		  =				0.2
									SCREAMING_SNAKE_CASE__		  =				pipeline("zero-shot-object-detection"		)

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    "http://images.cocodataset.org/val2017/000000039769.jpg"   , candidate_labels=["cat", "remote", "couch"]   , threshold=lowerCamelCase__   , )
									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        {"score": 0.2868, "label": "cat", "box": {"xmin": 324, "ymin": 20, "xmax": 640, "ymax": 373}},
									        {"score": 0.277, "label": "remote", "box": {"xmin": 40, "ymin": 72, "xmax": 177, "ymax": 115}},
									        {"score": 0.2537, "label": "cat", "box": {"xmin": 1, "ymin": 55, "xmax": 315, "ymax": 472}},
									    ]   , )



					@require_torch
					@slow
					def 			lowerCAmelCase_					(						self			:				Any		)							->       int:
									SCREAMING_SNAKE_CASE__		  =				2
									SCREAMING_SNAKE_CASE__		  =				pipeline("zero-shot-object-detection"		)

									SCREAMING_SNAKE_CASE__		  =				object_detector(
									    "http://images.cocodataset.org/val2017/000000039769.jpg"   , candidate_labels=["cat", "remote", "couch"]   , top_k=lowerCamelCase__   , )
									self.assertEqual(
									    nested_simplify(lowerCamelCase__   , decimals=4		)   , [
									        {"score": 0.2868, "label": "cat", "box": {"xmin": 324, "ymin": 20, "xmax": 640, "ymax": 373}},
									        {"score": 0.277, "label": "remote", "box": {"xmin": 40, "ymin": 72, "xmax": 177, "ymax": 115}},
									    ]   , )





"""simple docstring"""






import argparse
import os

import torch

from transformers.utils import WEIGHTS_NAME


_A   					=    ['small', 'medium', 'large']

_A   					=    'lm_head.decoder.weight'
_A   					=    'lm_head.weight'




def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase  ,					__UpperCAmelCase       )							->   List[str]:
				SCREAMING_SNAKE_CASE__		  =				torch.load(__UpperCAmelCase       )
				SCREAMING_SNAKE_CASE__		  =				d.pop(__UpperCAmelCase       )
				os.makedirs(__UpperCAmelCase  ,					exist_ok=__UpperCAmelCase       )
				torch.save(__UpperCAmelCase  ,					os.path.join(__UpperCAmelCase  ,					__UpperCAmelCase       )       )


if __name__ == "__main__":
						_A   					=    argparse.ArgumentParser()
						parser.add_argument('--dialogpt_path', default='.', type=str)
						_A   					=    parser.parse_args()
						for MODEL in DIALOGPT_MODELS:
												_A   					=    os.path.join(args.dialogpt_path, F'{MODEL}_ft.pkl')
												_A   					=    F'./DialoGPT-{MODEL}'
												convert_dialogpt_checkpoint(
												    checkpoint_path,
												    pytorch_dump_folder_path,
												)




