Source code for blissoda.flint

import logging
from functools import wraps
from typing import Callable

from ..import_utils import unavailable_class
from ..version_utils import has_minimal_version

try:
    if has_minimal_version("bliss", "2.2"):
        from flint.client.plots import BasePlot
        from flint.client.plots import ImageView
        from flint.client.plots import Plot1D
        from flint.client.proxy import FlintClient
    else:
        from bliss.flint.client.plots import BasePlot
        from bliss.flint.client.plots import ImageView
        from bliss.flint.client.plots import Plot1D
        from bliss.flint.client.proxy import FlintClient
except ImportError as ex:
    FlintClient = unavailable_class(ex)
    BasePlot = unavailable_class(ex)
    ImageView = unavailable_class(ex)
    Plot1D = unavailable_class(ex)

logger = logging.getLogger(__name__)


[docs] def capture_errors(method) -> Callable: @wraps(method) def wrapper(*args, **kw): try: return method(*args, **kw) except Exception as e: msg = f"Flint plot error: {e}" logger.error(msg, exc_info=True) return wrapper