From 976708934fcfbc5d6551d83bb71b326b2e73856d Mon Sep 17 00:00:00 2001 From: Fred Sonnenwald Date: Fri, 8 Aug 2025 12:38:33 +0100 Subject: [PATCH] add string duration -> timedelta --- jambo/parser/string_type_parser.py | 3 ++- tests/parser/test_string_type_parser.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/jambo/parser/string_type_parser.py b/jambo/parser/string_type_parser.py index 1eb25b9..389f8f4 100644 --- a/jambo/parser/string_type_parser.py +++ b/jambo/parser/string_type_parser.py @@ -4,7 +4,7 @@ from jambo.types.type_parser_options import TypeParserOptions from pydantic import EmailStr, HttpUrl, IPvAnyAddress from typing_extensions import Unpack -from datetime import date, datetime, time +from datetime import date, datetime, time, timedelta class StringTypeParser(GenericTypeParser): @@ -28,6 +28,7 @@ class StringTypeParser(GenericTypeParser): "date": date, "time": time, "date-time": datetime, + "duration": timedelta, } format_pattern_mapping = { diff --git a/tests/parser/test_string_type_parser.py b/tests/parser/test_string_type_parser.py index f4dc3d6..51a37e4 100644 --- a/tests/parser/test_string_type_parser.py +++ b/tests/parser/test_string_type_parser.py @@ -2,7 +2,7 @@ from jambo.parser import StringTypeParser from pydantic import EmailStr, HttpUrl, IPvAnyAddress -from datetime import date, datetime, time +from datetime import date, datetime, time, timedelta from unittest import TestCase @@ -197,3 +197,15 @@ class TestStringTypeParser(TestCase): type_parsing, type_validator = parser.from_properties("placeholder", properties) self.assertEqual(type_parsing, datetime) + + def test_string_parser_with_timedelta_format(self): + parser = StringTypeParser() + + properties = { + "type": "string", + "format": "duration", + } + + type_parsing, type_validator = parser.from_properties("placeholder", properties) + + self.assertEqual(type_parsing, timedelta) -- 2.49.1