Source code for punchbowl.auto.control.cache_layer.f_corona
import os
from ndcube import NDCube
from punchbowl.auto.control.cache_layer import manager
from punchbowl.auto.control.cache_layer.loader_base_class import LoaderABC
from punchbowl.data import load_ndcube_from_fits
from punchbowl.util import DataLoader
[docs]
class FCoronaLoader(LoaderABC[NDCube]):
def __init__(self, path: str):
self.path = path
[docs]
def gen_key(self) -> str:
return f"fcor-{os.path.basename(self.path)}-{os.path.getmtime(self.path)}"
[docs]
def src_repr(self) -> str:
return self.path
[docs]
def load_from_disk(self) -> NDCube:
return load_ndcube_from_fits(self.path)
[docs]
def __repr__(self):
return f"FCoronaLoader({self.path})"
[docs]
def wrap_if_appropriate(quartic_path: str) -> str | DataLoader:
if manager.caching_is_enabled():
return FCoronaLoader(quartic_path)
return quartic_path