docs: def _register_function(name: str, func, universe: bool, in_place: bool):
      """Register a transformation function under the given name.
  
      :param name: Name to register the function under
      :param func: A function
      :param universe:
      :param in_place:
      :return: The same function, with additional properties added
      """
      if name in mapped:
          mapped_func = mapped[name]
          raise PipelineNameError('{name} is already registered with {func_mod}.{func_name}'.format(
              name=name,
              func_mod=mapped_func.__module__,
              func_name=mapped_func.__name__
          ))
  
      mapped[name] = func
  
      if universe:
          universe_map[name] = func
  
      if in_place:
          in_place_map[name] = func
  
      if _has_arguments(func, universe):
          has_arguments_map[name] = func
      else:
          no_arguments_map[name] = func
  
      return func