Example #1
0
    def get_feed(self, url, force=False, selections_ok=False):
        """Get a feed from the cache.
		@param url: the URL of the feed
		@type url: str
		@param force: load the file from disk again
		@type force: bool
		@param selections_ok: if url is a local selections file, return that instead
		@type selections_ok: bool
		@return: the feed, or None if it isn't cached
		@rtype: L{model.ZeroInstallFeed}"""
        if not force:
            feed = self._feeds.get(url, False)
            if feed != False:
                return feed

        if url.startswith('distribution:'):
            master_feed = self.get_feed(url.split(':', 1)[1])
            if not master_feed:
                return None  # e.g. when checking a selections document
            feed = self.distro.get_feed(master_feed)
        else:
            feed = reader.load_feed_from_cache(url,
                                               selections_ok=selections_ok)
            if selections_ok and feed and not isinstance(
                    feed, model.ZeroInstallFeed):
                assert feed.selections is not None
                return feed  # (it's actually a selections document)
        if feed:
            reader.update_user_feed_overrides(feed)
        self._feeds[url] = feed
        return feed
Example #2
0
	def get_feed(self, url, force = False, selections_ok = False):
		"""Get a feed from the cache.
		@param url: the URL of the feed
		@type url: str
		@param force: load the file from disk again
		@type force: bool
		@param selections_ok: if url is a local selections file, return that instead
		@type selections_ok: bool
		@return: the feed, or None if it isn't cached
		@rtype: L{model.ZeroInstallFeed}"""
		if not force:
			feed = self._feeds.get(url, False)
			if feed != False:
				return feed

		if url.startswith('distribution:'):
			master_feed = self.get_feed(url.split(':', 1)[1])
			if not master_feed:
				return None	# Can't happen?
			feed = self.distro.get_feed(master_feed)
		else:
			feed = reader.load_feed_from_cache(url, selections_ok = selections_ok)
			if selections_ok and feed and not isinstance(feed, model.ZeroInstallFeed):
				assert feed.selections is not None
				return feed	# (it's actually a selections document)
		if feed:
			reader.update_user_feed_overrides(feed)
		self._feeds[url] = feed
		return feed
Example #3
0
	def get_feed(self, url, force = False):
		"""Get a feed from the cache.
		@param url: the URL of the feed
		@type url: str
		@param force: load the file from disk again
		@type force: bool
		@return: the feed, or None if it isn't cached
		@rtype: L{model.ZeroInstallFeed}"""
		if not force:
			feed = self._feeds.get(url, False)
			if feed != False:
				return feed

		assert not url.startswith('distribution:'), url

		feed = reader.load_feed_from_cache(url)
		self._feeds[url] = feed
		return feed