Commit 91385fb7 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

move retry to utils

parent 5f412905
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -10,11 +10,13 @@ Modified-History:
    2023-12-15, Bo Zhang, add module header
"""

from .decorator import parameterized_module_decorator
from .file import File
from .pipeline import Pipeline
from .status import CsstResult, CsstStatus
from .time import now
from .dfs import DFS
from .ccds import CCDS
from .utils import retry

__version__ = "0.0.2"

@@ -22,5 +24,4 @@ __all__ = [
    "Pipeline",
    "File",
    "CsstResult",
    "parameterized_module_decorator",
]
+0 −23
Original line number Diff line number Diff line
@@ -97,29 +97,6 @@ class CCDS:
        #  'ledflat': '/ccds_root/references/msc/csst_msc_ms_ledflat_10_000001.fits'}
        return refs_fp

    @staticmethod
    def retry(func, n, *args, **kwargs):
        for attempt in range(1, n + 1):
            try:
                res = func(*args, **kwargs)
                # assert res["code"] == 0, res
                return res
            except BaseException as e:
                print(f"Error occurs: {e.__repr__()}")
        raise RuntimeError(f"All {n} attempts failed.")


def retry(func, n=3):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        for attempt in range(1, n + 1):
            try:
                result = func(*args, **kwargs)
                return result
            except Exception as e:
                print(f"尝试 {attempt}/{n} 失败: {e}")
        raise RuntimeError("All attempts failed.")


"""
file_path="/dfsroot/L0/MSC/SCIE/62030/10160000105/MS/CSST_MSC_MS_SCIE_20280916072059_20280916072329_10160000105_10_L0_V01.fits"
+0 −10
Original line number Diff line number Diff line
@@ -25,16 +25,6 @@ class DFS:
    def __init__(self, n_try=5):
        self.n_try = n_try

    def retry(self, func, *args, **kwargs):
        for attempt in range(self.n_try):
            try:
                res = func(*args, **kwargs)
                assert res["code"] == 0, res
                return res
            except BaseException as e:
                print(f"Error occurs: {e.__repr__()}")
        raise RuntimeError("All attempts failed.")

    # DFS APIs
    @property
    def L0DataApi(self):