


"""simple docstring"""







from collections import namedtuple

a__				:							Tuple						=     namedtuple('''from_to''', '''from_ to''')

a__				:							str						=     {
    '''cubicmeter''': from_to(1, 1),
    '''litre''': from_to(0.0_01, 1_0_0_0),
    '''kilolitre''': from_to(1, 1),
    '''gallon''': from_to(0.0_04_54, 2_64.1_72),
    '''cubicyard''': from_to(0.7_64_55, 1.3_07_95),
    '''cubicfoot''': from_to(0.0_28, 35.31_47),
    '''cup''': from_to(0.0_00_23_65_88, 42_26.75),
}




def    UpperCAmelCase__       (lowerCAmelCase_  ,						lowerCAmelCase_  ,						lowerCAmelCase_   ):




					'''simple docstring'''


					if from_type not in METRIC_CONVERSION:
										raise ValueError(
										    f"""Invalid 'from_type' value: {from_type!r}  Supported values are:\n"""
										    + ", ".join(lowerCAmelCase_   )   )
					if to_type not in METRIC_CONVERSION:
										raise ValueError(
										    f"""Invalid 'to_type' value: {to_type!r}.  Supported values are:\n"""
										    + ", ".join(lowerCAmelCase_   )   )
					return value * METRIC_CONVERSION[from_type].from_ * METRIC_CONVERSION[to_type].to


if __name__ == "__main__":
		import doctest

		doctest.testmod()




"""simple docstring"""







def    UpperCAmelCase__       (lowerCAmelCase_   ):




					'''simple docstring'''


					if number > 0:
										raise ValueError("input must be a negative integer"   )
					__SCREAMING_SNAKE_CASE						   =				len(bin(lowerCAmelCase_   )[3:]   )
					__SCREAMING_SNAKE_CASE						   =				bin(abs(lowerCAmelCase_   ) - (1 << binary_number_length)   )[3:]
					__SCREAMING_SNAKE_CASE						   =				(
					    (
					        "1"
					        + "0" * (binary_number_length - len(lowerCAmelCase_   ))
					        + twos_complement_number
					    )
					    if number < 0
					    else "0"
					)
					return "0b" + twos_complement_number


if __name__ == "__main__":
		import doctest

		doctest.testmod()
