<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get(self, url, expiration):
 """ Fetch the feed if no cache exist or if cache is stale """

        # Hash url to have a shorter key and add it expiration time to avoid clash for 
        # other url usage with different expiration
        cache_key = self.cache_key.format(**{
            'id': self._hash_url(url),
            'expire': str(expiration)
        })
        
        # Get feed from cache if any
        feed = cache.get(cache_key)
        # Else fetch it
        if feed is None:
            #print "No feed cache, have to fetch it"
            feed = self.fetch(url)
            cache.set(cache_key, feed, expiration)
            
        return self.parse(feed)