"""Local ROI-VAE compression package. This package was previously named `compression`, but was renamed to `vae` to avoid colliding with optional third-party imports (e.g. via Gradio/fsspec). It intentionally uses lazy attribute loading to keep import-time overhead low. """ from __future__ import annotations from importlib import import_module from typing import TYPE_CHECKING __all__ = [ "TIC", "ModifiedTIC", "load_checkpoint", "compute_padding", "compress_image", "highlight_roi", "create_comparison_grid", "RSTB", "CausalAttentionModule", ] _EXPORTS: dict[str, tuple[str, str]] = { "TIC": (".tic_model", "TIC"), "ModifiedTIC": (".roi_tic", "ModifiedTIC"), "load_checkpoint": (".roi_tic", "load_checkpoint"), "compute_padding": (".utils", "compute_padding"), "compress_image": (".utils", "compress_image"), "highlight_roi": (".visualization", "highlight_roi"), "create_comparison_grid": (".visualization", "create_comparison_grid"), "RSTB": (".RSTB", "RSTB"), "CausalAttentionModule": (".RSTB", "CausalAttentionModule"), } def __getattr__(name: str): if name not in _EXPORTS: raise AttributeError(f"module {__name__!r} has no attribute {name!r}") module_name, attr_name = _EXPORTS[name] module = import_module(module_name, package=__name__) value = getattr(module, attr_name) globals()[name] = value return value if TYPE_CHECKING: from .RSTB import CausalAttentionModule, RSTB from .roi_tic import ModifiedTIC, load_checkpoint from .tic_model import TIC from .utils import compress_image, compute_padding from .visualization import create_comparison_grid, highlight_roi