docs: def getServiceEndpoints(input_url, flt=None):
      """Perform the Yadis protocol on the input URL and return an
      iterable of resulting endpoint objects.
  
      @param flt: A filter object or something that is convertable to
          a filter object (using mkFilter) that will be used to generate
          endpoint objects. This defaults to generating BasicEndpoint
          objects.
  
      @param input_url: The URL on which to perform the Yadis protocol
  
      @return: The normalized identity URL and an iterable of endpoint
          objects generated by the filter function.
  
      @rtype: (str, [endpoint])
  
      @raises DiscoveryFailure: when Yadis fails to obtain an XRDS document.
      """
      result = discover(input_url)
      try:
          endpoints = applyFilter(result.normalized_uri,
                                  result.response_text, flt)
      except XRDSError, err:
          raise DiscoveryFailure(str(err), None)
      return (result.normalized_uri, endpoints)