Coverage for heritrace / utils / converters.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-07-02 10:16 +0000

1# SPDX-FileCopyrightText: 2024-2025 Arcangelo Massari <arcangelo.massari@unibo.it> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5from datetime import datetime, timezone 

6 

7import dateutil.parser 

8 

9 

10def convert_to_datetime(date_str: str) -> datetime | None: 

11 try: 

12 dt = dateutil.parser.parse(date_str) 

13 except (ValueError, TypeError): 

14 return None 

15 else: 

16 if dt.tzinfo is not None: 

17 dt = dt.astimezone(timezone.utc) 

18 else: 

19 dt = dt.replace(tzinfo=timezone.utc) 

20 return dt