Set up a Cache store#

The DiskCacheStore and GCPCacheStore module enables connections to backend storage sources for caching large files.

By default, pycontrails uses the DiskCacheStore which stores files in the user cache directory or the current hard drive.

[1]:
from pycontrails import DiskCacheStore, GCPCacheStore

Disk Cache#

Store and retrieve files from the local hard drive.

[2]:
disk = DiskCacheStore()
[3]:
disk.exists("test/cache/path.nc")
[3]:
False
[4]:
# Total cache size, in MB
disk.size
[4]:
23709.123237

GCP Cache#

Requires [gcp] optional dependencies:

$ pip install pycontrails[gcp]

Store and retrieve files from Google Cloud Storage.

[5]:
gcp = GCPCacheStore(bucket="contrails-301217-unit-test", cache_dir="test/objects")
[6]:
gcp.bucket
[6]:
'contrails-301217-unit-test'
[7]:
gcp.path("path.nc")
[7]:
'test/objects/path.nc'
[8]:
gcp.gs_path("met/ecmwf/some-path.nc")
[8]:
'gs://contrails-301217-unit-test/test/objects/met/ecmwf/some-path.nc'
[ ]:
gcp.exists("some-path.nc")
False

Put objects#

By default, GCP cache is read only. Pass read_only=False to constructor to allow writing

[9]:
gcp = GCPCacheStore(bucket="contrails-301217-unit-test", cache_dir="test/objects", read_only=False)
[ ]:
gcp.put("cache.ipynb", "cache.ipynb")
'cache.ipynb'