Merge pull request #35 from fredsonnenwald/add-duration

add string duration -> timedelta
This commit was merged in pull request #35.
This commit is contained in:
2025-08-18 23:05:08 -03:00
committed by GitHub
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)