// these methods are normally cheap to run from disk, but in case of a high-latency filesystem (looking at you, Azure File) we can still cache them

        public Task <ImageSet> GetImageSetAsync(string repository, string tag) => CacheLocalData?
        ExecAsync(AuthHandler.RepoPullScope(repository), RepoImageSetKey(repository, tag), () => innerClient.GetImageSetAsync(repository, tag)) :
            innerClient.GetImageSetAsync(repository, tag);