def __init__(self, cache_dir, log=None, skip_cache=False): # TODO: instead of storing N artifact packages, store M megabytes. CacheManager.__init__(self, cache_dir, 'fetch', MAX_CACHED_ARTIFACTS, cache_callback=self.delete_file, log=log, skip_cache=skip_cache) self._cache_dir = cache_dir size_limit = 1024 * 1024 * 1024 # 1Gb in bytes. file_limit = 4 # But always keep at least 4 old artifacts around. persist_limit = PersistLimit(size_limit, file_limit) self._download_manager = DownloadManager(self._cache_dir, persist_limit=persist_limit) self._last_dl_update = -1