download
raw
1.23 kB
class Storage(object):
"""
Store large data structures (e.g. numpy arrays) efficiently
using joblib.
Use:
>>> from Storage import Storage
>>> storage = Storage(cachedir='tmp_u01', verbose=1)
>>> import numpy as np
>>> a = np.linspace(0, 1, 100000) # large array
>>> b = np.linspace(0, 1, 100000) # large array
>>> storage.save('a', a)
>>> storage.save('b', b)
>>> # later
>>> a = storage.retrieve('a')
>>> b = storage.retrieve('b')
"""
def __init__(self, cachedir='tmp', verbose=1):
"""
Parameters
----------
cachedir: str
Name of directory where objects are stored in files.
verbose: bool, int
Let joblib and this class speak when storing files
to disk.
"""
import joblib
self.memory = joblib.Memory(cachedir=cachedir,
verbose=verbose)
self.verbose = verbose
self.retrieve = self.memory.cache(
self.retrieve, ignore=['data'])
self.save = self.retrieve
def retrieve(self, name, data=None):
if self.verbose > 0:
print 'joblib save of', name
return data

Xet Storage Details

Size:
1.23 kB
·
Xet hash:
9dedf6f5cd1f8b62f87ab45aa130f1df0915c4032f06502ebef52943bbc90d76

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.