Return exactly one function to convert from source to target

def _get_func(cls, source_ver, target_ver):
		"""
		Return exactly one function to convert from source to target
		"""
		matches = (
			func for func in cls._upgrade_funcs
			if func.source == source_ver and func.target == target_ver
		)
		try:
			match, = matches
		except ValueError:
			raise ValueError(
				f"No migration from {source_ver} to {target_ver}")
		return match