Source code for dorado.core.cacheClass

import os

__all__ = ['mkcacheObj', 'delcacheObj']

[docs]def mkcacheObj(self, object, subcache = False): """ mkcacheObj is a convenience function that creates a cache object for a .fits compatable object in the self.dordir/cache directory. Parameters ---------- object: CCDData object to be saved in the cache directory for access. subcache: str optional subcache file for cache organization. Optional Returns ------- """ if subcache: cachedir = Dorado.dordir / 'cache' / subcache dirarray = ['cache', subcache] else: cachedir = Dorado.dordir / 'cache' dirarray = ['cache'] # if isiterable(object): # # print('This function does not currently support iterable objects.') # return warnings.WarningMessage('This function does not currently support iterable objects.') # else: # files, _ = self.diread(dirarray) # fname = 'cache_object_' + str(len(files) + 1) + '.fits' # object.write(fname) # return(fname, cachedir) # check if iterable # NOTE moved to reader files, _ = Dorado.diread(dirarray) # TODO will the cache object always be a fits file? what about JSON? fname = 'cache_object_' + str(len(files) + 1) + '.fits' # using object name seems fishy, is it a protected word? object.write(cachedir / fname, overwrite = True) return(fname, cachedir)
[docs]def delcacheObj(self, fname, subcache = False): """ delcacheObj is a convenience method that deletes a selected cache object given is file name. Parameters ---------- fname: string filestring of cache object to delete. subcache: string filestring of subcache containing the cache object to delete. Returns ------- """ # TODO extend to clearing cache if subcache: cachedir = Dorado.dordir / 'cache' / subcache else: cachedir = Dorado.dordir / 'cache' os.remove(cachedir / fname)