


from typing import Dict, List, Optional, Union

import numpy as np

from ...image_processing_utils import BaseImageProcessor, BatchFeature, get_size_dict
from ...image_transforms import (
    center_crop,
    convert_to_rgb,
    get_resize_output_image_size,
    normalize,
    rescale,
    resize,
    to_channel_dimension_format,
)
from ...image_utils import (
    OPENAI_CLIP_MEAN,
    OPENAI_CLIP_STD,
    ChannelDimension,
    ImageInput,
    PILImageResampling,
    make_list_of_images,
    to_numpy_array,
    valid_images,
)
from ...utils import TensorType, is_vision_available, logging


lowerCAmelCase           =		logging.get_logger(__name__)


if is_vision_available():
	import PIL





class       A    (   A_ ):
							UpperCamelCase_   :							Any       =['''pixel_values''']


							def __init__(self      ,				lowerCAmelCase = True      ,				lowerCAmelCase = None      ,				lowerCAmelCase = PILImageResampling.BICUBIC      ,				lowerCAmelCase = True      ,				lowerCAmelCase = None      ,				lowerCAmelCase = True      ,				lowerCAmelCase = 1 / 2_5_5      ,				lowerCAmelCase = True      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = True      ,				**lowerCAmelCase      ,				):
									super().__init__(**lowerCAmelCase					)
									__lowercase=			size if size is not None else {'shortest_edge': 2_2_4}
									__lowercase=			get_size_dict(lowerCAmelCase      ,				default_to_square=lowerCAmelCase					)
									__lowercase=			crop_size if crop_size is not None else {'height': 2_2_4, 'width': 2_2_4}
									__lowercase=			get_size_dict(lowerCAmelCase      ,				default_to_square=lowerCAmelCase      ,				param_name='crop_size'					)

									__lowercase=			do_resize
									__lowercase=			size
									__lowercase=			resample
									__lowercase=			do_center_crop
									__lowercase=			crop_size
									__lowercase=			do_rescale
									__lowercase=			rescale_factor
									__lowercase=			do_normalize
									__lowercase=			image_mean if image_mean is not None else OPENAI_CLIP_MEAN
									__lowercase=			image_std if image_std is not None else OPENAI_CLIP_STD
									__lowercase=			do_convert_rgb


							def 			_A       (self      ,				lowerCAmelCase      ,				lowerCAmelCase      ,				lowerCAmelCase = PILImageResampling.BICUBIC      ,				lowerCAmelCase = None      ,				**lowerCAmelCase      ,				):
									__lowercase=			get_size_dict(lowerCAmelCase      ,				default_to_square=lowerCAmelCase					)
									if "shortest_edge" not in size:
											raise ValueError(f'The `size` parameter must contain the key `shortest_edge`. Got {size.keys()}'					)
									__lowercase=			get_resize_output_image_size(lowerCAmelCase      ,				size=size['shortest_edge']      ,				default_to_square=lowerCAmelCase					)
									return resize(lowerCAmelCase      ,				size=lowerCAmelCase      ,				resample=lowerCAmelCase      ,				data_format=lowerCAmelCase      ,				**lowerCAmelCase					)


							def 			_A       (self      ,				lowerCAmelCase      ,				lowerCAmelCase      ,				lowerCAmelCase = None      ,				**lowerCAmelCase      ,				):
									__lowercase=			get_size_dict(lowerCAmelCase					)
									if "height" not in size or "width" not in size:
											raise ValueError(f'The `size` parameter must contain the keys (height, width). Got {size.keys()}'					)
									return center_crop(lowerCAmelCase      ,				size=(size['height'], size['width'])      ,				data_format=lowerCAmelCase      ,				**lowerCAmelCase					)


							def 			_A       (self      ,				lowerCAmelCase      ,				lowerCAmelCase      ,				lowerCAmelCase = None      ,				**lowerCAmelCase      ,				):
									return rescale(lowerCAmelCase      ,				scale=lowerCAmelCase      ,				data_format=lowerCAmelCase      ,				**lowerCAmelCase					)


							def 			_A       (self      ,				lowerCAmelCase      ,				lowerCAmelCase      ,				lowerCAmelCase      ,				lowerCAmelCase = None      ,				**lowerCAmelCase      ,				):
									return normalize(lowerCAmelCase      ,				mean=lowerCAmelCase      ,				std=lowerCAmelCase      ,				data_format=lowerCAmelCase      ,				**lowerCAmelCase					)







							def 			_A       (self      ,				lowerCAmelCase      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = None      ,				lowerCAmelCase = ChannelDimension.FIRST      ,				**lowerCAmelCase      ,				):
									__lowercase=			do_resize if do_resize is not None else self.do_resize
									__lowercase=			size if size is not None else self.size
									__lowercase=			get_size_dict(lowerCAmelCase      ,				param_name='size'      ,				default_to_square=lowerCAmelCase					)
									__lowercase=			resample if resample is not None else self.resample
									__lowercase=			do_center_crop if do_center_crop is not None else self.do_center_crop
									__lowercase=			crop_size if crop_size is not None else self.crop_size
									__lowercase=			get_size_dict(lowerCAmelCase      ,				param_name='crop_size'      ,				default_to_square=lowerCAmelCase					)
									__lowercase=			do_rescale if do_rescale is not None else self.do_rescale
									__lowercase=			rescale_factor if rescale_factor is not None else self.rescale_factor
									__lowercase=			do_normalize if do_normalize is not None else self.do_normalize
									__lowercase=			image_mean if image_mean is not None else self.image_mean
									__lowercase=			image_std if image_std is not None else self.image_std
									__lowercase=			do_convert_rgb if do_convert_rgb is not None else self.do_convert_rgb

									__lowercase=			make_list_of_images(lowerCAmelCase					)

									if not valid_images(lowerCAmelCase					):
											raise ValueError(
											    'Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, '
											    'torch.Tensor, tf.Tensor or jax.ndarray.'					)

									if do_resize and size is None:
											raise ValueError('Size must be specified if do_resize is True.'					)

									if do_center_crop and crop_size is None:
											raise ValueError('Crop size must be specified if do_center_crop is True.'					)

									if do_rescale and rescale_factor is None:
											raise ValueError('Rescale factor must be specified if do_rescale is True.'					)

									if do_normalize and (image_mean is None or image_std is None):
											raise ValueError('Image mean and std must be specified if do_normalize is True.'					)

									# PIL RGBA images are converted to RGB
									if do_convert_rgb:
											__lowercase=			[convert_to_rgb(lowerCAmelCase					) for image in images]

									# All transformations expect numpy arrays.
									__lowercase=			[to_numpy_array(lowerCAmelCase					) for image in images]

									if do_resize:
											__lowercase=			[self.resize(image=lowerCAmelCase      ,				size=lowerCAmelCase      ,				resample=lowerCAmelCase					) for image in images]

									if do_center_crop:
											__lowercase=			[self.center_crop(image=lowerCAmelCase      ,				size=lowerCAmelCase					) for image in images]

									if do_rescale:
											__lowercase=			[self.rescale(image=lowerCAmelCase      ,				scale=lowerCAmelCase					) for image in images]

									if do_normalize:
											__lowercase=			[self.normalize(image=lowerCAmelCase      ,				mean=lowerCAmelCase      ,				std=lowerCAmelCase					) for image in images]

									__lowercase=			[to_channel_dimension_format(lowerCAmelCase      ,				lowerCAmelCase					) for image in images]

									__lowercase=			{'pixel_values': images}
									return BatchFeature(data=lowerCAmelCase      ,				tensor_type=lowerCAmelCase					)










from __future__ import annotations







def        _lowerCamelCase(	lowercase__   , lowercase__	)						->	Any:

		'''simple docstring'''







		if len(lowercase__	) <= 1 or n <= 1:
				return

		insert_next(lowercase__   , n - 1	)
		rec_insertion_sort(lowercase__   , n - 1	)







def        _lowerCamelCase(	lowercase__   , lowercase__	)						->	Any:

		'''simple docstring'''







		if index >= len(lowercase__	) or collection[index - 1] <= collection[index]:
				return

		# Swaps adjacent elements since they are not in ascending order
		__lowercase,							__lowercase=			(
		    collection[index],
		    collection[index - 1],
		)

		insert_next(lowercase__   , index + 1	)


if __name__ == "__main__":
	lowerCAmelCase           =		input('''Enter integers separated by spaces: ''')
	lowerCAmelCase           =		[int(num) for num in numbers.split()]
	rec_insertion_sort(number_list, len(number_list))
	print(number_list)






