



'''simple docstring'''
snake_case_			:     dict[str, float]  	=  {
    "km/h": 1.0,
    "m/s": 3.6,
    "mph": 1.60_93_44,
    "knot": 1.8_52,
}

snake_case_			:     dict[str, float]  	=  {
    "km/h": 1.0,
    "m/s": 0.2_77_77_77_78,
    "mph": 0.6_21_37_11_92,
    "knot": 0.5_39_95_68_03,
}






def A__   (					UpperCAmelCase_  ,  UpperCAmelCase_  ,  UpperCAmelCase_							):
						if unit_to not in speed_chart or unit_from not in speed_chart_inverse:
												_UpperCamelCase :		Optional[Any]			    =       (
												    f'Incorrect \'from_type\' or \'to_type\' value: {unit_from!r}, {unit_to!r}\n'
												    f'Valid values are: {", ".join(UpperCAmelCase_							)}'
												)
												raise ValueError(UpperCAmelCase_							)
						return round(speed * speed_chart[unit_from] * speed_chart_inverse[unit_to]  ,  3							)


if __name__ == "__main__":
					import doctest

					doctest.testmod()







'''simple docstring'''
from abc import ABC, abstractmethod
from argparse import ArgumentParser






class 							lowercase__     (							lowercase       ):





	@staticmethod
	@abstractmethod
	def      UpperCamelCase_  (			lowerCamelCase__ :    ArgumentParser			):







							'''simple docstring'''
							raise NotImplementedError()





	@abstractmethod
	def      UpperCamelCase_  (			self :    Any			):







							'''simple docstring'''
							raise NotImplementedError()


