From 736d0f5699fa005100ce0cf4c6b7cc1946fdaa39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20Nyb=C3=B8?= Date: Tue, 25 Apr 2023 09:58:32 +0200 Subject: [PATCH] Add ISO date format to fmuobs parser --- src/subscript/fmuobs/parsers.py | 10 +++++++--- src/subscript/fmuobs/util.py | 1 + tests/test_fmuobs_parsers.py | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/subscript/fmuobs/parsers.py b/src/subscript/fmuobs/parsers.py index aff058eed..607a9e1ac 100644 --- a/src/subscript/fmuobs/parsers.py +++ b/src/subscript/fmuobs/parsers.py @@ -12,6 +12,7 @@ from subscript.fmuobs.util import ( ERT_ALT_DATE_FORMAT, ERT_DATE_FORMAT, + ERT_ISO_DATE_FORMAT, uppercase_dictkeys, ) @@ -214,12 +215,15 @@ def fix_dtype(value): return float_value except ValueError: try: - return datetime.datetime.strptime(value, ERT_DATE_FORMAT) + return datetime.datetime.strptime(value, ERT_ISO_DATE_FORMAT) except ValueError: try: - return datetime.datetime.strptime(value, ERT_ALT_DATE_FORMAT) + return datetime.datetime.strptime(value, ERT_DATE_FORMAT) except ValueError: - return str(value) + try: + return datetime.datetime.strptime(value, ERT_ALT_DATE_FORMAT) + except ValueError: + return str(value) def remove_enclosing_curly_braces(string: str) -> str: diff --git a/src/subscript/fmuobs/util.py b/src/subscript/fmuobs/util.py index d5ba33211..31d0e72d5 100644 --- a/src/subscript/fmuobs/util.py +++ b/src/subscript/fmuobs/util.py @@ -10,6 +10,7 @@ ERT_DATE_FORMAT = "%d/%m/%Y" +ERT_ISO_DATE_FORMAT = "%Y-%m-%d" ERT_ALT_DATE_FORMAT = "%d.%m.%Y" # Not found in doc, but supported by ERT diff --git a/tests/test_fmuobs_parsers.py b/tests/test_fmuobs_parsers.py index 366400d97..996ce65cd 100644 --- a/tests/test_fmuobs_parsers.py +++ b/tests/test_fmuobs_parsers.py @@ -138,6 +138,7 @@ def test_filter_comments(string, expected): ("01/01/1900", datetime.datetime(1900, 1, 1)), ("12/24/2020", "12/24/2020"), ("01/12/2020", datetime.datetime(2020, 12, 1)), + ("2020-12-01", datetime.datetime(2020, 12, 1)), ], ) def test_fix_dtype(string, expected):