

from __future__ import annotations


def 				snake_case__							(							UpperCAmelCase							:  list       ):
    if len(UpperCAmelCase       ) == 0:
        return []
    lowerCAmelCase__   :Any      							=				min(UpperCAmelCase       ), max(UpperCAmelCase       )
    lowerCAmelCase__   :Union[str, Any]      							=				int(max_value - min_value       ) + 1
    lowerCAmelCase__   :list[list]      							=				[[] for _ in range(UpperCAmelCase       )]

    for i in my_list:
        buckets[int(i - min_value       )].append(UpperCAmelCase       )

    return [v for bucket in buckets for v in sorted(UpperCAmelCase       )]


if __name__ == "__main__":
 from doctest import testmod

 testmod()
 assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
 assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]











def 				snake_case__							(							UpperCAmelCase							:  str       ):
    return "".join(chr(ord(UpperCAmelCase       ) - 3_2       ) if "a" <= char <= "z" else char for char in word       )


if __name__ == "__main__":
 from doctest import testmod

 testmod()



