in tracking/translations_parser/parser.py [0:0]
def get_timestamp(self, headers: Sequence[Sequence[str]]) -> datetime | None:
"""
Looks for a timestamp in Taskcluster header tags.
Returns None in case no timestamp is found.
"""
for values in headers:
if len(values) != 2:
continue
base, timestamp = values
# TC adds a timestamp after the task header
if base == "task":
try:
return datetime.fromisoformat(timestamp.rstrip("Z"))
except ValueError as e:
# Taskcluster timestamp should always be a valid date
logger.error(
f"Unreadable taskcluster timestamp line {self._current_index}: {e}"
)
# Marian timestamp is composed of two values, one for date and one for hour precision
try:
return datetime.fromisoformat("T".join(values))
except ValueError:
continue
return None