


import glob
import os

from get_test_info import get_tester_classes


if __name__ == "__main__":
	SCREAMING_SNAKE_CASE : List[Any]          =    []

	SCREAMING_SNAKE_CASE : int          =    os.path.join("tests", "models", "**", "test_modeling_*.py")
	SCREAMING_SNAKE_CASE : Optional[int]          =    glob.glob(pattern)
	# TODO: deal with TF/Flax too
	SCREAMING_SNAKE_CASE : Tuple          =    [
	    x for x in test_files if not (x.startswith("test_modeling_tf_") or x.startswith("test_modeling_flax_"))
	]

	for test_file in test_files:
		SCREAMING_SNAKE_CASE : List[Any]          =    get_tester_classes(test_file)
		for tester_class in tester_classes:
			# A few tester classes don't have `parent` parameter in `__init__`.
			# TODO: deal this better
			try:
				SCREAMING_SNAKE_CASE : str          =    tester_class(parent=None)
			except Exception:
				continue
			if hasattr(tester, "get_config"):
				SCREAMING_SNAKE_CASE : str          =    tester.get_config()
				for k, v in config.to_dict().items():
					if isinstance(v, int):
						SCREAMING_SNAKE_CASE : List[Any]          =    None
						if k in ["vocab_size"]:
							SCREAMING_SNAKE_CASE : str          =    1_00
						elif k in ["max_position_embeddings"]:
							SCREAMING_SNAKE_CASE : Optional[Any]          =    1_28
						elif k in ["hidden_size", "d_model"]:
							SCREAMING_SNAKE_CASE : Tuple          =    40
						elif k == ["num_layers", "num_hidden_layers", "num_encoder_layers", "num_decoder_layers"]:
							SCREAMING_SNAKE_CASE : Tuple          =    5
						if target is not None and v > target:
							failures.append(
							    F"""{tester_class.__name__} will produce a `config` of type `{config.__class__.__name__}`"""
							    F""" with config[\"{k}\"] = {v} which is too large for testing! Set its value to be smaller"""
							    F""" than {target}."""
							)

	if len(failures) > 0:
		raise Exception(F"""There were {len(failures)} failures:\n""" + "\n".join(failures))






from ...utils import is_transformers_available
from .pipeline_latent_diffusion_superresolution import LDMSuperResolutionPipeline


if is_transformers_available():
	from .pipeline_latent_diffusion import LDMBertModel, LDMTextToImagePipeline


