






from __future__ import annotations

from enum import Enum, unique
from typing import TypeVar

# Create a generic variable that can be 'Enum', or any subclass.
UpperCAmelCase__			 =	TypeVar('''T''', bound='''Enum''')




@unique
class        snake_case_					(						__UpperCamelCase			):

						"""simple docstring"""



						snake_case__   					=			80
						snake_case__   					=			70
						snake_case__   					=			60
						snake_case__   					=			50
						snake_case__   					=			40
						snake_case__   					=			30
						snake_case__   					=			20
						snake_case__   					=			10




@unique
class        snake_case_					(						__UpperCamelCase			):

						"""simple docstring"""



						snake_case__   					=			24
						snake_case__   					=			21
						snake_case__   					=			18
						snake_case__   					=			15
						snake_case__   					=			12
						snake_case__   					=			9
						snake_case__   					=			6
						snake_case__   					=			3
						snake_case__   					=			2
						snake_case__   					=			1
						snake_case__   					=			-1
						snake_case__   					=			-2
						snake_case__   					=			-3
						snake_case__   					=			-6
						snake_case__   					=			-9
						snake_case__   					=			-12
						snake_case__   					=			-15
						snake_case__   					=			-18
						snake_case__   					=			-21
						snake_case__   					=			-24



						@classmethod
						def 					UpperCAmelCase__				(cls:				type[T]      )						->    dict:




											'''simple docstring'''



											return {unit.name: unit.value for unit in cls if unit.value > 0}



						@classmethod
						def 					UpperCAmelCase__				(cls:				type[T]      )						->    dict:




											'''simple docstring'''



											return {unit.name: unit.value for unit in cls if unit.value < 0}







def 						a_      (__A			)							->	str:



					"""simple docstring"""
					__a				:	Optional[Any]			=				SIUnit.get_positive() if value > 0 else SIUnit.get_negative()
					for name_prefix, value_prefix in prefixes.items():
										__a				:	Union[str, Any]			=				value / (10**value_prefix)
										if numerical_part > 1:
															return f'{numerical_part!s} {name_prefix}'
					return str(__A			)







def 						a_      (__A			)							->	str:



					"""simple docstring"""
					for prefix in BinaryUnit:
										__a				:	List[Any]			=				value / (2**prefix.value)
										if numerical_part > 1:
															return f'{numerical_part!s} {prefix.name}'
					return str(__A			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()













def 						a_      (__A			)							->	list:



					"""simple docstring"""
					if len(__A			) <= 1:
										return data
					else:
										return [
										    *quick_sort([e for e in data[1:] if e <= data[0]]			),
										    data[0],
										    *quick_sort([e for e in data[1:] if e > data[0]]			),
										]


if __name__ == "__main__":
			import doctest

			doctest.testmod()





