code: def append_function(self, function):
          
          if not hasattr(function, '__call__'):
              function = get_function(function)
              if not hasattr(function, '__call__'):
                  raise ValueError("function is expected to be callable")
          self._functions.append(function)
          log.debug("registered %s", function.__name__)
docs: Append the function to the list of functions to be called.
  
          If the function is already a callable, use it. If it's a type str
          try to interpret it as [module]:?<callable>, load the module
          if there is one and retrieve the callable.
  
          Argument:
            function (str or callable): function to call on input.