Return function name in pretty style

		:param fn: source function
		:return: str

def function_name(fn):
		""" Return function name in pretty style

		:param fn: source function
		:return: str
		"""
		fn_name = fn.__name__
		if hasattr(fn, '__qualname__'):
			return fn.__qualname__
		elif hasattr(fn, '__self__'):
			owner = fn.__self__
			if isclass(owner) is False:
				owner = owner.__class__
			return '%s.%s' % (owner.__name__, fn_name)
		return fn_name