




"""simple docstring"""






import os
import sys
import unittest


UpperCamelCase__						=			os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
sys.path.append(os.path.join(git_repo_path, '''utils'''))

import check_dummies  # noqa: E402
from check_dummies import create_dummy_files, create_dummy_object, find_backend, read_init  # noqa: E402


# Align TRANSFORMERS_PATH in check_dummies with the current path
UpperCamelCase__						=			os.path.join(git_repo_path, '''src''', '''diffusers''')




class   a__			(       unittest.TestCase  ):





						def       __UpperCamelCase     (							self      :	Tuple)						->       Optional[Any]:




											"""simple docstring"""







											_lowerCAmelCase:Any									=  find_backend('''    if not is_torch_available():''')
											self.assertEqual(a__     ,'''torch''')

											# backend_with_underscore = find_backend("    if not is_tensorflow_text_available():")
											# self.assertEqual(backend_with_underscore, "tensorflow_text")

											_lowerCAmelCase:Optional[Any]									=  find_backend('''    if not (is_torch_available() and is_transformers_available()):''')
											self.assertEqual(a__     ,'''torch_and_transformers''')

											# double_backend_with_underscore = find_backend(
											#    "    if not (is_sentencepiece_available() and is_tensorflow_text_available()):"
											# )
											# self.assertEqual(double_backend_with_underscore, "sentencepiece_and_tensorflow_text")

											_lowerCAmelCase:int									=  find_backend(
											    '''    if not (is_torch_available() and is_transformers_available() and is_onnx_available()):''')
											self.assertEqual(a__     ,'''torch_and_transformers_and_onnx''')





						def       __UpperCamelCase     (							self      :	Optional[Any])						->       List[str]:




											"""simple docstring"""







											_lowerCAmelCase:List[Any]									=  read_init()
											# We don't assert on the exact list of keys to allow for smooth grow of backend-specific objects
											self.assertIn('''torch'''     ,a__)
											self.assertIn('''torch_and_transformers'''     ,a__)
											self.assertIn('''flax_and_transformers'''     ,a__)
											self.assertIn('''torch_and_transformers_and_onnx'''     ,a__)

											# Likewise, we can't assert on the exact content of a key
											self.assertIn('''UNet2DModel'''     ,objects['''torch'''])
											self.assertIn('''FlaxUNet2DConditionModel'''     ,objects['''flax'''])
											self.assertIn('''StableDiffusionPipeline'''     ,objects['''torch_and_transformers'''])
											self.assertIn('''FlaxStableDiffusionPipeline'''     ,objects['''flax_and_transformers'''])
											self.assertIn('''LMSDiscreteScheduler'''     ,objects['''torch_and_scipy'''])
											self.assertIn('''OnnxStableDiffusionPipeline'''     ,objects['''torch_and_transformers_and_onnx'''])





						def       __UpperCamelCase     (							self      :	Any)						->       Optional[Any]:




											"""simple docstring"""







											_lowerCAmelCase:Union[str, Any]									=  create_dummy_object('''CONSTANT'''     ,'''\'torch\'''')
											self.assertEqual(a__     ,'''\nCONSTANT = None\n''')

											_lowerCAmelCase:int									=  create_dummy_object('''function'''     ,'''\'torch\'''')
											self.assertEqual(
											    a__     ,'''\ndef function(*args, **kwargs):\n    requires_backends(function, \'torch\')\n''')

											_lowerCAmelCase:Tuple									=  '''
class FakeClass(metaclass=DummyObject):
    _backends = \'torch\'

    def __init__(self, *args, **kwargs):
        requires_backends(self, \'torch\')

    @classmethod
    def from_config(cls, *args, **kwargs):
        requires_backends(cls, \'torch\')

    @classmethod
    def from_pretrained(cls, *args, **kwargs):
        requires_backends(cls, \'torch\')
'''
											_lowerCAmelCase:Tuple									=  create_dummy_object('''FakeClass'''     ,'''\'torch\'''')
											self.assertEqual(a__     ,a__)







						def       __UpperCamelCase     (							self      :	Optional[Any])						->       List[Any]:




											"""simple docstring"""







											_lowerCAmelCase:Dict									=  '''# This file is autogenerated by the command `make fix-copies`, do not edit.
from ..utils import DummyObject, requires_backends


CONSTANT = None


def function(*args, **kwargs):
    requires_backends(function, ["torch"])


class FakeClass(metaclass=DummyObject):
    _backends = ["torch"]

    def __init__(self, *args, **kwargs):
        requires_backends(self, ["torch"])

    @classmethod
    def from_config(cls, *args, **kwargs):
        requires_backends(cls, ["torch"])

    @classmethod
    def from_pretrained(cls, *args, **kwargs):
        requires_backends(cls, ["torch"])
'''
											_lowerCAmelCase:Union[str, Any]									=  create_dummy_files({'''torch''': ['''CONSTANT''', '''function''', '''FakeClass''']})
											self.assertEqual(dummy_files['''torch''']     ,a__)












"""simple docstring"""






import warnings

from ...utils import logging
from .image_processing_poolformer import PoolFormerImageProcessor


UpperCamelCase__						=			logging.get_logger(__name__)




class   a__			(       UpperCamelCase_  ):





						def __init__(							self      :	Dict     ,*a__      :	List[str]     ,**a__      :	str)						->       None:




											"""simple docstring"""







											warnings.warn(
											    '''The class PoolFormerFeatureExtractor is deprecated and will be removed in version 5 of Transformers.'''
											    ''' Please use PoolFormerImageProcessor instead.'''     ,a__     ,)
											super().__init__(*a__     ,**a__)






