Source code for punchbowl.auto.control.cache_layer.vignetting_function

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 VignettingLoader(LoaderABC[NDCube]): def __init__(self, path: str): self.path = path
[docs] def gen_key(self) -> str: return f"vignetting-{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, include_provenance=False)
[docs] def __repr__(self): return f"VignettingLoader({self.path})"
[docs] def wrap_if_appropriate(vignetting_path: str) -> str | DataLoader: if manager.caching_is_enabled(): return VignettingLoader(vignetting_path) return vignetting_path