



"""simple docstring"""






from typing import TYPE_CHECKING

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


_lowercase				:				Tuple   		=		{
    "configuration_altclip": [
        "ALTCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "AltCLIPConfig",
        "AltCLIPTextConfig",
        "AltCLIPVisionConfig",
    ],
    "processing_altclip": ["AltCLIPProcessor"],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase				:				int   		=		[
		    "ALTCLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "AltCLIPPreTrainedModel",
		    "AltCLIPModel",
		    "AltCLIPTextModel",
		    "AltCLIPVisionModel",
		]


if TYPE_CHECKING:
		from .configuration_altclip import (
		    ALTCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    AltCLIPConfig,
		    AltCLIPTextConfig,
		    AltCLIPVisionConfig,
		)
		from .processing_altclip import AltCLIPProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_altclip import (
				    ALTCLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
				    AltCLIPModel,
				    AltCLIPPreTrainedModel,
				    AltCLIPTextModel,
				    AltCLIPVisionModel,
				)


else:
		import sys

		_lowercase				:				Tuple   		=		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)









"""simple docstring"""






def   snake_case__     (	__lowerCamelCase       :					list[int]			):
			"""simple docstring"""
			if not numbers:
						return 0

			if not isinstance(__lowerCamelCase							,	(list, tuple)			) or not all(
			    isinstance(__lowerCamelCase							,	__lowerCamelCase			) for number in numbers			):
						raise ValueError('''numbers must be an iterable of integers'''			)

			lowerCamelCase__	:	Any				=numbers[0]

			for i in range(1							,	len(__lowerCamelCase			)			):
						# update the maximum and minimum subarray products
						lowerCamelCase__	:	Dict				=numbers[i]
						if number < 0:
									lowerCamelCase__			,     lowerCamelCase__	:	List[Any]				=min_till_now, max_till_now
						lowerCamelCase__	:	Optional[int]				=max(__lowerCamelCase							,	max_till_now * number			)
						lowerCamelCase__	:	Dict				=min(__lowerCamelCase							,	min_till_now * number			)

						# update the maximum product found till now
						lowerCamelCase__	:	Tuple				=max(__lowerCamelCase							,	__lowerCamelCase			)

			return max_prod




