




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


__lowerCAmelCase	:       str     =	{
    'configuration_clip': [
        'CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'CLIPConfig',
        'CLIPOnnxConfig',
        'CLIPTextConfig',
        'CLIPVisionConfig',
    ],
    'processing_clip': ['CLIPProcessor'],
    'tokenization_clip': ['CLIPTokenizer'],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCAmelCase	:       Dict     =	['CLIPTokenizerFast']

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCAmelCase	:       Dict     =	['CLIPFeatureExtractor']
		__lowerCAmelCase	:       List[Any]     =	['CLIPImageProcessor']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCAmelCase	:       Tuple     =	[
		    'CLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'CLIPModel',
		    'CLIPPreTrainedModel',
		    'CLIPTextModel',
		    'CLIPTextModelWithProjection',
		    'CLIPVisionModel',
		    'CLIPVisionModelWithProjection',
		]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCAmelCase	:       List[str]     =	[
		    'TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'TFCLIPModel',
		    'TFCLIPPreTrainedModel',
		    'TFCLIPTextModel',
		    'TFCLIPVisionModel',
		]

try:
		if not is_flax_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCAmelCase	:       Union[str, Any]     =	[
		    'FlaxCLIPModel',
		    'FlaxCLIPPreTrainedModel',
		    'FlaxCLIPTextModel',
		    'FlaxCLIPTextPreTrainedModel',
		    'FlaxCLIPVisionModel',
		    'FlaxCLIPVisionPreTrainedModel',
		]


if TYPE_CHECKING:
		from .configuration_clip import (
		    CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    CLIPConfig,
		    CLIPOnnxConfig,
		    CLIPTextConfig,
		    CLIPVisionConfig,
		)
		from .processing_clip import CLIPProcessor
		from .tokenization_clip import CLIPTokenizer

		try:
				if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_clip_fast import CLIPTokenizerFast

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_clip import CLIPFeatureExtractor
				from .image_processing_clip import CLIPImageProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_clip import (
				    CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
				    CLIPModel,
				    CLIPPreTrainedModel,
				    CLIPTextModel,
				    CLIPTextModelWithProjection,
				    CLIPVisionModel,
				    CLIPVisionModelWithProjection,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_clip import (
				    TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFCLIPModel,
				    TFCLIPPreTrainedModel,
				    TFCLIPTextModel,
				    TFCLIPVisionModel,
				)

		try:
				if not is_flax_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_flax_clip import (
				    FlaxCLIPModel,
				    FlaxCLIPPreTrainedModel,
				    FlaxCLIPTextModel,
				    FlaxCLIPTextPreTrainedModel,
				    FlaxCLIPVisionModel,
				    FlaxCLIPVisionPreTrainedModel,
				)


else:
		import sys

		__lowerCAmelCase	:       Any     =	_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)












def     __magic_name__       (				A	:      list     ):






			'''simple docstring'''







			for i in range(len(A     ) - 1,						0,						-1     ):
						a					=    False

						for j in range(A,						0,						-1     ):
									if unsorted[j] < unsorted[j - 1]:
												a					,	a					=    unsorted[j - 1], unsorted[j]
												a					=    True

						for j in range(A     ):
									if unsorted[j] > unsorted[j + 1]:
												a					,	a					=    unsorted[j + 1], unsorted[j]
												a					=    True

						if not swapped:
									break
			return unsorted


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		__lowerCAmelCase	:       Tuple     =	input('Enter numbers separated by a comma:\n').strip()
		__lowerCAmelCase	:       List[Any]     =	[int(item) for item in user_input.split(',')]
		print(F'''{cocktail_shaker_sort(unsorted) = }''')






