





import tempfile
import unittest

from diffusers import (
    DDIMScheduler,
    DDPMScheduler,
    DPMSolverMultistepScheduler,
    EulerAncestralDiscreteScheduler,
    EulerDiscreteScheduler,
    PNDMScheduler,
    logging,
)
from diffusers.configuration_utils import ConfigMixin, register_to_config
from diffusers.utils.testing_utils import CaptureLogger

class 						UpperCamelCase__					( lowerCAmelCase_  ):



     '''simple docstring'''

     __snake_case       :      Tuple						      =     "config.json"






     @register_to_config
     def __init__(				self		:       Union[str, Any]		,lowerCamelCase__		:       Union[str, Any]=2		,lowerCamelCase__		:       Any=5		,lowerCamelCase__		:       Dict=(2, 5)		,lowerCamelCase__		:       Optional[Any]="for diffusion"		,lowerCamelCase__		:       str=[1, 3]		,)	->						Optional[int]:




           '''simple docstring'''


           pass

class 						UpperCamelCase__					( lowerCAmelCase_  ):



     '''simple docstring'''

     __snake_case       :      int						      =     "config.json"






     @register_to_config
     def __init__(				self		:       Any		,lowerCamelCase__		:       Optional[int]=2		,lowerCamelCase__		:       List[str]=5		,lowerCamelCase__		:       Dict=(2, 5)		,lowerCamelCase__		:       Dict="for diffusion"		,lowerCamelCase__		:       Any=[1, 3]		,)	->						List[str]:




           '''simple docstring'''


           pass

class 						UpperCamelCase__					( lowerCAmelCase_  ):



     '''simple docstring'''

     __snake_case       :      int						      =     "config.json"






     @register_to_config
     def __init__(				self		:       Tuple		,lowerCamelCase__		:       List[str]=2		,lowerCamelCase__		:       str=5		,lowerCamelCase__		:       Union[str, Any]=(2, 5)		,lowerCamelCase__		:       List[str]="for diffusion"		,lowerCamelCase__		:       Union[str, Any]=[1, 3]		,lowerCamelCase__		:       List[Any]=[1, 3]		,)	->						Dict:




           '''simple docstring'''


           pass

class 						UpperCamelCase__					( lowerCAmelCase_  ):



     '''simple docstring'''

     __snake_case       :      Any						      =     "config.json"






     @register_to_config
     def __init__(				self		:       int		,lowerCamelCase__		:       List[Any]=2		,lowerCamelCase__		:       Union[str, Any]=5		,lowerCamelCase__		:       List[str]=(2, 5)		,lowerCamelCase__		:       Optional[Any]="for diffusion"		,lowerCamelCase__		:       Optional[Any]=[1, 5]		,lowerCamelCase__		:       Tuple=[5, 4]		,)	->						Union[str, Any]:




           '''simple docstring'''


           pass

class 						UpperCamelCase__					( unittest.TestCase  ):



     '''simple docstring'''

     def 							SCREAMING_SNAKE_CASE__    (				self		:       List[str]			)	->						List[str]:




           '''simple docstring'''


           with self.assertRaises(lowerCamelCase__			):
                 ConfigMixin.load_config("""dummy_path"""			)






     def 							SCREAMING_SNAKE_CASE__    (				self		:       Dict			)	->						List[str]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		SampleObject()
           SCREAMING_SNAKE_CASE						=		obj.config
           assert config["a"] == 2
           assert config["b"] == 5
           assert config["c"] == (2, 5)
           assert config["d"] == "for diffusion"
           assert config["e"] == [1, 3]

           # init ignore private arguments
           SCREAMING_SNAKE_CASE						=		SampleObject(_name_or_path="""lalala"""			)
           SCREAMING_SNAKE_CASE						=		obj.config
           assert config["a"] == 2
           assert config["b"] == 5
           assert config["c"] == (2, 5)
           assert config["d"] == "for diffusion"
           assert config["e"] == [1, 3]

           # can override default
           SCREAMING_SNAKE_CASE						=		SampleObject(c=6			)
           SCREAMING_SNAKE_CASE						=		obj.config
           assert config["a"] == 2
           assert config["b"] == 5
           assert config["c"] == 6
           assert config["d"] == "for diffusion"
           assert config["e"] == [1, 3]

           # can use positional arguments.
           SCREAMING_SNAKE_CASE						=		SampleObject(1		,c=6			)
           SCREAMING_SNAKE_CASE						=		obj.config
           assert config["a"] == 1
           assert config["b"] == 5
           assert config["c"] == 6
           assert config["d"] == "for diffusion"
           assert config["e"] == [1, 3]






     def 							SCREAMING_SNAKE_CASE__    (				self		:       int			)	->						List[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		SampleObject()
           SCREAMING_SNAKE_CASE						=		obj.config

           assert config["a"] == 2
           assert config["b"] == 5
           assert config["c"] == (2, 5)
           assert config["d"] == "for diffusion"
           assert config["e"] == [1, 3]

           with tempfile.TemporaryDirectory() as tmpdirname:
                 obj.save_config(lowerCamelCase__			)
                 SCREAMING_SNAKE_CASE						=		SampleObject.from_config(SampleObject.load_config(lowerCamelCase__			)			)
                 SCREAMING_SNAKE_CASE						=		new_obj.config

           # unfreeze configs
           SCREAMING_SNAKE_CASE						=		dict(lowerCamelCase__			)
           SCREAMING_SNAKE_CASE						=		dict(lowerCamelCase__			)

           assert config.pop("""c"""			) == (2, 5)  # instantiated as tuple
           assert new_config.pop("""c"""			) == [2, 5]  # saved & loaded as list because of json
           config.pop("""_use_default_values"""			)
           assert config == new_config






     def 							SCREAMING_SNAKE_CASE__    (				self		:       List[Any]			)	->						List[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		DDIMScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""			)

           assert ddim.__class__ == DDIMScheduler
           # no warning should be thrown
           assert cap_logger.out == ""






     def 							SCREAMING_SNAKE_CASE__    (				self		:       List[Any]			)	->						int:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		EulerDiscreteScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""			)

           assert euler.__class__ == EulerDiscreteScheduler
           # no warning should be thrown
           assert cap_logger.out == ""






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




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		EulerAncestralDiscreteScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""			)

           assert euler.__class__ == EulerAncestralDiscreteScheduler
           # no warning should be thrown
           assert cap_logger.out == ""






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




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		PNDMScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""			)

           assert pndm.__class__ == PNDMScheduler
           # no warning should be thrown
           assert cap_logger.out == ""






     def 							SCREAMING_SNAKE_CASE__    (				self		:       Dict			)	->						Any:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		DDPMScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""		,prediction_type="""sample"""		,beta_end=8		,)

           with CaptureLogger(lowerCamelCase__			) as cap_logger_a:
                 SCREAMING_SNAKE_CASE						=		DDPMScheduler.from_pretrained("""google/ddpm-celebahq-256"""		,beta_start=88			)

           assert ddpm.__class__ == DDPMScheduler
           assert ddpm.config.prediction_type == "sample"
           assert ddpm.config.beta_end == 8
           assert ddpm_a.config.beta_start == 88

           # no warning should be thrown
           assert cap_logger.out == ""
           assert cap_logger_a.out == ""






     def 							SCREAMING_SNAKE_CASE__    (				self		:       Union[str, Any]			)	->						Optional[int]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		logging.get_logger("""diffusers.configuration_utils"""			)
           # 30 for warning
           logger.setLevel(30			)

           with CaptureLogger(lowerCamelCase__			) as cap_logger:
                 SCREAMING_SNAKE_CASE						=		DPMSolverMultistepScheduler.from_pretrained(
                     """hf-internal-testing/tiny-stable-diffusion-torch"""		,subfolder="""scheduler"""			)

           assert dpm.__class__ == DPMSolverMultistepScheduler
           # no warning should be thrown
           assert cap_logger.out == ""






     def 							SCREAMING_SNAKE_CASE__    (				self		:       Any			)	->						Any:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE						=		SampleObject()

           SCREAMING_SNAKE_CASE						=		{k: v for k, v in config.config.items() if not k.startswith("""_"""			)}

           # make sure that default config has all keys in `_use_default_values`
           assert set(config_dict.keys()			) == set(config.config._use_default_values			)

           with tempfile.TemporaryDirectory() as tmpdirname:
                 config.save_config(lowerCamelCase__			)

                 # now loading it with SampleObject2 should put f into `_use_default_values`
                 SCREAMING_SNAKE_CASE						=		SampleObjecta.from_config(lowerCamelCase__			)

                 assert "f" in config._use_default_values
                 assert config.f == [1, 3]

           # now loading the config, should **NOT** use [1, 3] for `f`, but the default [1, 4] value
           # **BECAUSE** it is part of `config._use_default_values`
           SCREAMING_SNAKE_CASE						=		SampleObjecta.from_config(config.config			)
           assert new_config.f == [5, 4]

           config.config._use_default_values.pop()
           SCREAMING_SNAKE_CASE						=		SampleObjecta.from_config(config.config			)
           assert new_config_a.f == [1, 3]

           # Nevertheless "e" should still be correctly loaded to [1, 3] from SampleObject2 instead of defaulting to [1, 5]
           assert new_config_a.e == [1, 3]









from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


SCREAMING_SNAKE_CASE_		  =			{
    """configuration_markuplm""": ["""MARKUPLM_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MarkupLMConfig"""],
    """feature_extraction_markuplm""": ["""MarkupLMFeatureExtractor"""],
    """processing_markuplm""": ["""MarkupLMProcessor"""],
    """tokenization_markuplm""": ["""MarkupLMTokenizer"""],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE_		  =			["""MarkupLMTokenizerFast"""]

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE_		  =			[
          """MARKUPLM_PRETRAINED_MODEL_ARCHIVE_LIST""",
          """MarkupLMForQuestionAnswering""",
          """MarkupLMForSequenceClassification""",
          """MarkupLMForTokenClassification""",
          """MarkupLMModel""",
          """MarkupLMPreTrainedModel""",
      ]


if TYPE_CHECKING:
      from .configuration_markuplm import MARKUPLM_PRETRAINED_CONFIG_ARCHIVE_MAP, MarkupLMConfig
      from .feature_extraction_markuplm import MarkupLMFeatureExtractor
      from .processing_markuplm import MarkupLMProcessor
      from .tokenization_markuplm import MarkupLMTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_markuplm_fast import MarkupLMTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_markuplm import (
                MARKUPLM_PRETRAINED_MODEL_ARCHIVE_LIST,
                MarkupLMForQuestionAnswering,
                MarkupLMForSequenceClassification,
                MarkupLMForTokenClassification,
                MarkupLMModel,
                MarkupLMPreTrainedModel,
            )


else:
      import sys

      SCREAMING_SNAKE_CASE_		  =			_LazyModule(__name__, globals()["""__file__"""], _import_structure)


