From 9e688b27bf32fc770e9dd56795920dc5fe58f31e Mon Sep 17 00:00:00 2001 From: Thomas Bock <thomas.bock@ptb.de> Date: Wed, 10 Mar 2021 15:58:26 +0100 Subject: [PATCH] dcc software --- cal/trans.py | 4 +--- cal/utils.py | 43 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/cal/trans.py b/cal/trans.py index f2d19e9..804109a 100644 --- a/cal/trans.py +++ b/cal/trans.py @@ -206,9 +206,7 @@ class Trans: "respPerson":[utils.dcc_resp_person(cal_docs, maintainers), utils.dcc_meas_maintainer(cal_docs, maintainers)]}, "customer": utils.dcc_customer(cal_docs, countries), - "dccSoftware":[utils.dcc_analysis_software(cal_docs), - utils.dcc_result_software(cal_docs), - utils.dcc_cal_software(cal_docs),]}, + "dccSoftware":utils.dcc_software(cal_docs)}, "measurementResults":{ "usedMethods":{"usedMethod": utils.dcc_used_methodes(cal_docs, secs)}, "influenceConditions": utils.dcc_influence_cond(cal_docs, diff --git a/cal/utils.py b/cal/utils.py index b6b75c9..ee1c8d9 100644 --- a/cal/utils.py +++ b/cal/utils.py @@ -449,23 +449,40 @@ def dcc_meas_maintainer(cal_docs, maintainers): def dcc_device_class(cal_docs): doc = cal_docs[-1] - return {"lang":get_lang(doc), "content":[get_customerobject_type(doc)]} + +def dcc_software(cal_docs): + + ret = [] + ana = dcc_analysis_software(cal_docs) + res = dcc_result_software(cal_docs) + cal = dcc_cal_software(cal_docs) + + if cal: + ret.append(cal) + if ana: + ret.append(ana) + if res: + ret.append(res) + return ret + def dcc_analysis_software(cal_docs): doc = cal_docs[-1] name, release = get_analysis_software(doc) - return {"name":[{"lang":"en", - "content": [name]}], - "release":release} + if name: + return {"name":[{"lang":"en", + "content": [name]}], + "release":release} def dcc_result_software(cal_docs): doc = cal_docs[-1] name, release = get_result_software(doc) - return {"name":[{"lang":"en", - "content": [name]}], - "release":release} + if name: + return {"name":[{"lang":"en", + "content": [name]}], + "release":release} def dcc_cal_software(cal_docs): doc = cal_docs[-1] @@ -528,11 +545,19 @@ def should_skipped(doc): def get_analysis_software(doc): aux = doc.get("Calibration", {}).get("Analysis").get("AuxValues") - return "{} (calculation of analysis)".format(aux.get("AnalysisProgram")), aux.get("AnalysisGitHash") + name = aux.get("AnalysisProgram") + if name: + return "{} (calculation of analysis)".format(name), aux.get("AnalysisGitHash") + else: + return None, None def get_result_software(doc): aux = doc.get("Calibration", {}).get("Result").get("AuxValues") - return "{} (calculation of result)".format(aux.get("AnalysisProgram")), aux.get("AnalysisGitHash") + name = aux.get("AnalysisProgram") + if name: + return "{} (calculation of result)".format(name), aux.get("AnalysisGitHash") + else: + return None, None def get_customerobject_type(doc): return doc.get("Calibration", {}).get("CustomerObject").get("Type") -- GitLab