import unittest

from diffusers import FlaxAutoencoderKL
from diffusers.utils import is_flax_available
from diffusers.utils.testing_utils import require_flax

from .test_modeling_common_flax import FlaxModelTesterMixin


if is_flax_available():
	import jax





@require_flax
class UpperCAmelCase						( lowerCamelCase__ ,	unittest.TestCase  ):


				'''simple docstring'''






				lowerCamelCase_    = FlaxAutoencoderKL
				@property
				def   lowerCAmelCase_       (						self ):



						"""simple docstring"""





						A_		:    Tuple         =				4
						A_		:    List[Any]         =				3
						A_		:    Dict         =				(3_2, 3_2)

						A_		:    str         =				jax.random.PRNGKey(0 )
						A_		:    Tuple         =				jax.random.uniform(lowercase		,     ((batch_size, num_channels) + sizes) )

						return {"sample": image, "prng_key": prng_key}







				def   lowerCAmelCase_       (						self ):



						"""simple docstring"""





						A_		:    Optional[int]         =				{
						    "block_out_channels": [3_2, 6_4],
						    "in_channels": 3,
						    "out_channels": 3,
						    "down_block_types": ["DownEncoderBlock2D", "DownEncoderBlock2D"],
						    "up_block_types": ["UpDecoderBlock2D", "UpDecoderBlock2D"],
						    "latent_channels": 4,
						}
						A_		:    Any         =				self.dummy_input
						return init_dict, inputs_dict







from typing import TYPE_CHECKING

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


_UpperCAmelCase            =		{
    """configuration_bridgetower""": [
        """BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """BridgeTowerConfig""",
        """BridgeTowerTextConfig""",
        """BridgeTowerVisionConfig""",
    ],
    """processing_bridgetower""": ["""BridgeTowerProcessor"""],
}

try:
	if not is_vision_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_UpperCAmelCase            =		["""BridgeTowerImageProcessor"""]

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_UpperCAmelCase            =		[
	    """BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """BridgeTowerForContrastiveLearning""",
	    """BridgeTowerForImageAndTextRetrieval""",
	    """BridgeTowerForMaskedLM""",
	    """BridgeTowerModel""",
	    """BridgeTowerPreTrainedModel""",
	]


if TYPE_CHECKING:
	from .configuration_bridgetower import (
	    BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    BridgeTowerConfig,
	    BridgeTowerTextConfig,
	    BridgeTowerVisionConfig,
	)
	from .processing_bridgetower import BridgeTowerProcessor

	try:
		if not is_vision_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .image_processing_bridgetower import BridgeTowerImageProcessor

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_bridgetower import (
		    BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST,
		    BridgeTowerForContrastiveLearning,
		    BridgeTowerForImageAndTextRetrieval,
		    BridgeTowerForMaskedLM,
		    BridgeTowerModel,
		    BridgeTowerPreTrainedModel,
		)


else:
	import sys

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






