docs: def proxy_register(register_funtion):
      """
      Proxy a function to a register function.
  
      :param register_funtion: a function need to proxy.
      :return: a proxy wrapper
      """
      def wrapper(function):
          @functools.wraps(function)
          def register(excepted, filter_function=None):
              if inspect.isfunction(excepted):
                  register_funtion(excepted.__name__, excepted)
              elif isinstance(excepted, str) and filter_function:
                  if not inspect.isfunction(filter_function):
                      raise RegisterError('Registered must be a function.')
                  filter_function.__name__ = excepted
                  register_funtion(excepted, filter_function)
              elif isinstance(excepted, str):
                  def register_wrapper(func):
                      if not inspect.isfunction(func):
                          raise RegisterError('Registered must be a function.')
                      func.__name__ = excepted
                      register_funtion(excepted, func)
                  return register_wrapper
          return register
      return wrapper