




import unittest

from transformers import is_vision_available
from transformers.pipelines import 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  lowercase_       ( *lowerCamelCase__     ,		**lowerCamelCase__				)       -> Optional[Any]:



												'''simple docstring'''
												pass







@is_pipeline_test
@require_vision
class        __lowerCAmelCase					(			unittest.TestCase					):

			"""simple docstring"""







			@require_torch
			def  lowercase_       ( self				)       -> List[Any]:



							'''simple docstring'''
							__lowerCamelCase									=       pipeline(
							    model='hf-internal-testing/tiny-random-clip-zero-shot-image-classification'     ,		)
							__lowerCamelCase									=       Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'				)
							__lowerCamelCase									=       image_classifier(lowerCamelCase__     ,		candidate_labels=['a', 'b', 'c']				)

							# The floating scores are so close, we enter floating error approximation and the order is not guaranteed across
							# python and torch versions.
							self.assertIn(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        [{'score': 0.3_33, 'label': 'a'}, {'score': 0.3_33, 'label': 'b'}, {'score': 0.3_33, 'label': 'c'}],
							        [{'score': 0.3_33, 'label': 'a'}, {'score': 0.3_33, 'label': 'c'}, {'score': 0.3_33, 'label': 'b'}],
							    ]     ,		)

							__lowerCamelCase									=       image_classifier([image] * 5     ,		candidate_labels=['A', 'B', 'C']     ,		batch_size=2				)
							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							    ]     ,		)


			@require_tf
			def  lowercase_       ( self				)       -> Optional[int]:



							'''simple docstring'''
							__lowerCamelCase									=       pipeline(
							    model='hf-internal-testing/tiny-random-clip-zero-shot-image-classification'     ,		framework='tf'				)
							__lowerCamelCase									=       Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'				)
							__lowerCamelCase									=       image_classifier(lowerCamelCase__     ,		candidate_labels=['a', 'b', 'c']				)

							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[{'score': 0.3_33, 'label': 'a'}, {'score': 0.3_33, 'label': 'b'}, {'score': 0.3_33, 'label': 'c'}]     ,		)

							__lowerCamelCase									=       image_classifier([image] * 5     ,		candidate_labels=['A', 'B', 'C']     ,		batch_size=2				)
							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							        [
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							            {'score': 0.3_33, 'label': ANY(lowerCamelCase__				)},
							        ],
							    ]     ,		)


			@slow
			@require_torch
			def  lowercase_       ( self				)       -> Tuple:



							'''simple docstring'''
							__lowerCamelCase									=       pipeline(
							    task='zero-shot-image-classification'     ,		model='openai/clip-vit-base-patch32'     ,		)
							# This is an image of 2 cats with remotes and no planes
							__lowerCamelCase									=       Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'				)
							__lowerCamelCase									=       image_classifier(lowerCamelCase__     ,		candidate_labels=['cat', 'plane', 'remote']				)

							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        {'score': 0.5_11, 'label': 'remote'},
							        {'score': 0.4_85, 'label': 'cat'},
							        {'score': 0.0_04, 'label': 'plane'},
							    ]     ,		)

							__lowerCamelCase									=       image_classifier([image] * 5     ,		candidate_labels=['cat', 'plane', 'remote']     ,		batch_size=2				)
							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        [
							            {'score': 0.5_11, 'label': 'remote'},
							            {'score': 0.4_85, 'label': 'cat'},
							            {'score': 0.0_04, 'label': 'plane'},
							        ],
							    ]
							    * 5     ,		)






			@slow
			@require_tf
			def  lowercase_       ( self				)       -> Dict:



							'''simple docstring'''
							__lowerCamelCase									=       pipeline(
							    task='zero-shot-image-classification'     ,		model='openai/clip-vit-base-patch32'     ,		framework='tf'				)
							# This is an image of 2 cats with remotes and no planes
							__lowerCamelCase									=       Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'				)
							__lowerCamelCase									=       image_classifier(lowerCamelCase__     ,		candidate_labels=['cat', 'plane', 'remote']				)
							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        {'score': 0.5_11, 'label': 'remote'},
							        {'score': 0.4_85, 'label': 'cat'},
							        {'score': 0.0_04, 'label': 'plane'},
							    ]     ,		)

							__lowerCamelCase									=       image_classifier([image] * 5     ,		candidate_labels=['cat', 'plane', 'remote']     ,		batch_size=2				)
							self.assertEqual(
							    nested_simplify(lowerCamelCase__				)     ,		[
							        [
							            {'score': 0.5_11, 'label': 'remote'},
							            {'score': 0.4_85, 'label': 'cat'},
							            {'score': 0.0_04, 'label': 'plane'},
							        ],
							    ]
							    * 5     ,		)








from datetime import datetime as dt
import os

from github import Github


__A								=       [
    "good first issue",
    "good second issue",
    "good difficult issue",
    "feature request",
    "new model",
    "wip",
]







def      lowerCamelCase_						(			)	->			int:





				"""simple docstring"""


				__lowerCamelCase									=       Github(os.environ['GITHUB_TOKEN'] )
				__lowerCamelCase									=       g.get_repo('huggingface/transformers' )
				__lowerCamelCase									=       repo.get_issues(state='open' )

				for issue in open_issues:
								__lowerCamelCase									=       sorted([comment for comment in issue.get_comments()]					,	key=lambda UpperCamelCase__ : i.created_at					,	reverse=UpperCamelCase__ )
								__lowerCamelCase									=       comments[0] if len(UpperCamelCase__ ) > 0 else None
								if (
								    last_comment is not None
								    and last_comment.user.login == "github-actions[bot]"
								    and (dt.utcnow() - issue.updated_at).days > 7
								    and (dt.utcnow() - issue.created_at).days >= 30
								    and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels() )
								):
												# print(f"Would close issue {issue.number} since it has been 7 days of inactivity since bot mention.")
												issue.edit(state='closed' )
								elif (
								    (dt.utcnow() - issue.updated_at).days > 23
								    and (dt.utcnow() - issue.created_at).days >= 30
								    and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels() )
								):
												# print(f"Would add stale comment to {issue.number}")
												issue.create_comment(
												    'This issue has been automatically marked as stale because it has not had '
												    'recent activity. If you think this still needs to be addressed '
												    'please comment on this thread.\n\nPlease note that issues that do not follow the '
												    '[contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) '
												    'are likely to be ignored.' )


if __name__ == "__main__":
					main()


