


'''simple docstring'''



# Algorithm for the pigeonhole sorting















def 			_UpperCamelCase					(						UpperCamelCase__    ):
			UpperCAmelCase__     :    Tuple         =   min(__lowerCAmelCase    )  # min() finds the minimum value
			UpperCAmelCase__     :    int         =   max(__lowerCAmelCase    )  # max() finds the maximum value

			UpperCAmelCase__     :    Optional[int]         =   max_val - min_val + 1  # size is difference of max and min values plus one

			# list of pigeonholes of size equal to the variable size
			UpperCAmelCase__     :    List[str]         =   [0] * size

			# Populate the pigeonholes.
			for x in a:
						assert isinstance(__lowerCAmelCase       ,					__lowerCAmelCase    ), "integers only please"
						holes[x - min_val] += 1

			# Putting the elements back into the array in an order.
			UpperCAmelCase__     :    int         =   0
			for count in range(__lowerCAmelCase    ):
						while holes[count] > 0:
									holes[count] -= 1
									UpperCAmelCase__     :    int         =   count + min_val
									i += 1







def 			_UpperCamelCase					(						):
			UpperCAmelCase__     :    Optional[Any]         =   [8, 3, 2, 7, 4, 6, 8]
			pigeonhole_sort(__lowerCAmelCase    )
			print("""Sorted order is:"""       ,					""" """.join(__lowerCAmelCase    )    )


if __name__ == "__main__":
		main()



import sys

from .dependency_versions_table import deps
from .utils.versions import require_version, require_version_core


# define which module versions we always want to check at run time
# (usually the ones defined in `install_requires` in setup.py)
#
# order specific notes:
# - tqdm must be checked before tokenizers

snake_case							:       List[str]     			=      '''python tqdm regex requests packaging filelock numpy tokenizers'''.split()
if sys.version_info < (3, 7):
						pkgs_to_check_at_runtime.append('''dataclasses''')
if sys.version_info < (3, 8):
						pkgs_to_check_at_runtime.append('''importlib_metadata''')

for pkg in pkgs_to_check_at_runtime:
						if pkg in deps:
												if pkg == "tokenizers":
																		# must be loaded here, or else tqdm check may fail
																		from .utils import is_tokenizers_available

																		if not is_tokenizers_available():
																								continue  # not required, check version only if installed

												require_version_core(deps[pkg])
						else:
												raise ValueError(f"""can't find {pkg} in {deps.keys()}, check dependency_versions_table.py""")






def 							__lowercase   ( __lowerCAmelCase							:				Optional[Any]					,    __lowerCAmelCase							:				Tuple=None   ):
							require_version(deps[pkg]					,    __lowerCAmelCase   )




