diff --git a/csst_dfs_commons/models/cpic.py b/csst_dfs_commons/models/cpic.py new file mode 100644 index 0000000000000000000000000000000000000000..9706af496a0c3ca7fa90d35ca6532ae2ea8553cf --- /dev/null +++ b/csst_dfs_commons/models/cpic.py @@ -0,0 +1,77 @@ +import dataclasses +from typing import Dict +from .common import BaseModel, default_field + +@dataclasses.dataclass +class Level0PrcRecord(BaseModel): + id: int = 0 + level0_id: str = "" + pipeline_id: str = "" + prc_module: str = "" + params_file_path: str="" + prc_status: int = 0 + prc_time: str="" + result_file_path: str="" + +@dataclasses.dataclass +class Level0Record(BaseModel): + id: int = 0 + level0_id: str = "" + obs_id: str = "" + detector_no: str = "" + obs_type: str = "" + obs_time: str="" + exp_time: float = 0 + detector_status_id: int = 0 + filename: str="" + file_path: str="" + qc0_status: int = 0 + qc0_time: str="" + prc_status: int = 0 + prc_time: str="" + create_time: str="" + +@dataclasses.dataclass +class CalMergeRecord(BaseModel): + id: int = 0 + cal_id: str = "" + detector_no: str = "" + ref_type: str = "" + obs_time: str="" + exp_time: float = 0 + filename: str="" + file_path: str="" + qc1_status: int = 0 + qc1_time: str="" + prc_status: int = 0 + prc_time: str="" + prc_time: str="" + create_time: str="" + level0_ids: list = dataclasses.field(default_factory=list) + +@dataclasses.dataclass +class Level1Record(BaseModel): + id: int = 0 + level0_id : str = "" + data_type: str="" + prc_params: str="" + filename : str="" + file_path: str="" + qc1_status: int = 0 + qc1_time: str="" + prc_status: int = 0 + prc_time: str="" + create_time: str="" + pipeline_id: str="" + refs: Dict[str,int] = default_field({}) + +@dataclasses.dataclass +class Level1PrcRecord(BaseModel): + id: int = 0 + level1_id: int = 0 + pipeline_id: str = "" + prc_module: str = "" + params_file_path: str="" + prc_status: int = 0 + prc_time: str="" + result_file_path: str="" diff --git a/csst_dfs_commons/utils/fits.py b/csst_dfs_commons/utils/fits.py index 9bdd25697fb05272566b10ab06b2452ae73a0d2e..6f0ab60bbae9360a77ea280e24a2fc9e95949bc7 100644 --- a/csst_dfs_commons/utils/fits.py +++ b/csst_dfs_commons/utils/fits.py @@ -1,5 +1,8 @@ def get_header_value(key: str, header, default_value = None): try: - return header[key] + v = header[key] + if type(v) == str: + return v.strip() + return v except Exception as e: return default_value \ No newline at end of file