Skip to content

Commit baebb9e

Browse files
fix: Luminex xPONENT - improve calibration datetime validation check (#1041)
1 parent 39f3072 commit baebb9e

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/allotropy/parsers/luminex_xponent/luminex_xponent_structure.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import re
77
from typing import Any
88

9+
from dateutil.parser import parse, ParserError
910
import pandas as pd
1011

1112
from allotropy.allotrope.schema_mappers.adm.multi_analyte_profiling.benchling._2024._09.multi_analyte_profiling import (
@@ -137,7 +138,7 @@ def create_calibration(calibration_data: SeriesData) -> Calibration:
137138
msg = f"Expected at least two columns on the calibration line, got:\n{calibration_data.series}."
138139
raise AllotropeConversionError(msg)
139140

140-
calibration_info = calibration_data.series.iloc[1].strip()
141+
calibration_info = str(calibration_data.series.iloc[1]).strip()
141142

142143
# Check if the calibration info starts with a known status value
143144
status_values = ["Passed", "Failed", "Calibrated", "Verified"]
@@ -151,8 +152,12 @@ def create_calibration(calibration_data: SeriesData) -> Calibration:
151152
if len(calibration_result) == EXPECTED_CALIBRATION_RESULT_LEN:
152153
report = calibration_result[0]
153154
time = calibration_result[1]
154-
elif calibration_info and any(char.isdigit() for char in calibration_info):
155-
time = calibration_info
155+
else:
156+
try:
157+
parse(calibration_info)
158+
time = calibration_info
159+
except ParserError:
160+
pass
156161

157162
if not time:
158163
msg = f"Invalid calibration result format, got: ['{calibration_info}']."

0 commit comments

Comments
 (0)