add string duration -> timedelta

This commit is contained in:
Fred Sonnenwald
2025-08-08 12:38:33 +01:00
parent d431dca353
commit 976708934f
2 changed files with 15 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ from jambo.types.type_parser_options import TypeParserOptions
from pydantic import EmailStr, HttpUrl, IPvAnyAddress from pydantic import EmailStr, HttpUrl, IPvAnyAddress
from typing_extensions import Unpack from typing_extensions import Unpack
from datetime import date, datetime, time from datetime import date, datetime, time, timedelta
class StringTypeParser(GenericTypeParser): class StringTypeParser(GenericTypeParser):
@@ -28,6 +28,7 @@ class StringTypeParser(GenericTypeParser):
"date": date, "date": date,
"time": time, "time": time,
"date-time": datetime, "date-time": datetime,
"duration": timedelta,
} }
format_pattern_mapping = { format_pattern_mapping = {

View File

@@ -2,7 +2,7 @@ from jambo.parser import StringTypeParser
from pydantic import EmailStr, HttpUrl, IPvAnyAddress from pydantic import EmailStr, HttpUrl, IPvAnyAddress
from datetime import date, datetime, time from datetime import date, datetime, time, timedelta
from unittest import TestCase from unittest import TestCase
@@ -197,3 +197,15 @@ class TestStringTypeParser(TestCase):
type_parsing, type_validator = parser.from_properties("placeholder", properties) type_parsing, type_validator = parser.from_properties("placeholder", properties)
self.assertEqual(type_parsing, datetime) 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)