code: def get_read_cache(self):
      
      if self._options.read_from and not self._read_cache:
        cache_spec = self._resolve(self._sanitize_cache_spec(self._options.read_from))
        if cache_spec:
          with self._cache_setup_lock:
            self._read_cache = self._do_create_artifact_cache(cache_spec, 'will read from')
      return self._read_cache
docs: Returns the read cache for this setup, creating it if necessary.
  
      Returns None if no read cache is configured.