From 27d931af7eeb2876aed68aa655dee8b4a203c975 Mon Sep 17 00:00:00 2001 From: BO ZHANG Date: Mon, 21 Nov 2022 20:45:54 +0800 Subject: [PATCH] replace attribute with property for DFS APIs --- csst_common/data_manager.py | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/csst_common/data_manager.py b/csst_common/data_manager.py index cc27b22..45a0f72 100644 --- a/csst_common/data_manager.py +++ b/csst_common/data_manager.py @@ -18,6 +18,7 @@ import os import re from typing import Union +import joblib import numpy as np from astropy.io import fits from astropy.table import Table @@ -198,12 +199,6 @@ class CsstMsDataManager: # DFS configuration self.use_dfs = use_dfs self.dfs_node = dfs_node - # DFS APIs - self.dfs_L0DataApi = Level0DataApi() - self.dfs_L1DataApi = Level1DataApi() - self.dfs_L2DataApi = Level2DataApi() - self.dfs_L0PrcApi = Level0PrcApi() - self.dfs_CalApi = CalMergeApi() # data directory self.dir_l0 = dir_l0 @@ -233,6 +228,27 @@ class CsstMsDataManager: if verbose: self.logger_mod.info("logger_mod initialized") + # DFS APIs + @property + def dfs_L0DataApi(self): + return Level0DataApi() + + @property + def dfs_L1DataApi(self): + return Level1DataApi() + + @property + def dfs_L2DataApi(self): + return Level2DataApi() + + @property + def dfs_L0PrcApi(self): + return Level0PrcApi() + + @property + def dfs_CalApi(self): + return CalMergeApi() + def set_env(self): """ set environment variables """ if os.uname()[1] == "dandelion": @@ -671,3 +687,12 @@ class CsstMsDataManager: # temporarily compatible with old interface CsstMbiDataManager = CsstMsDataManager + + +def test_dm(): + import joblib + from csst_common.data_manager import CsstMsDataManager + dm = CsstMsDataManager(dfs_node="pml") + def f(dm, a=1): + print(a) + joblib.Parallel(n_jobs=10,)(joblib.delayed(f)(dm) for i in range(10)) -- GitLab