<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_resource_list_from_capability_list(self, uri):
 """Read capability list to find resource list. Raises a ClientError in cases where the client might look for a capability list in another location, but a ClientFatalError if a capability list is found but there is some problem using it. """

        self.logger.info("Reading capability list %s" % (uri))
        try:
            cl = CapabilityList()
            cl.read(uri=uri)
        except Exception as e:
            raise ClientError(
                "Can't read capability list from %s (%s)" %
                (uri, str(e)))
        if (not cl.has_capability('resourcelist')):
            raise ClientFatalError(
                "Capability list %s does not describe a resource list" % (uri))
        rluri = cl.capability_info('resourcelist').uri
        return(urljoin(uri, rluri))