From 0dd2642760a7258290cb01cb160c96bca92de346 Mon Sep 17 00:00:00 2001 From: edmundhighcock Date: Sat, 17 Feb 2024 22:49:52 +0100 Subject: [PATCH 1/2] Support pydantic date types Support the special type hints that pydantic provides to give more control over validating dates. --- graphene_pydantic/converters.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/graphene_pydantic/converters.py b/graphene_pydantic/converters.py index 1e3297c..e41105d 100644 --- a/graphene_pydantic/converters.py +++ b/graphene_pydantic/converters.py @@ -29,6 +29,14 @@ from pydantic import BaseModel from pydantic.fields import FieldInfo from pydantic_core import PydanticUndefined +from pydantic.types import ( + PastDate, + FutureDate, + PastDatetime, + FutureDatetime, + AwareDatetime, + NaiveDatetime, +) from .registry import Placeholder, Registry from .util import construct_union_class_name, evaluate_forward_ref @@ -213,9 +221,9 @@ def find_graphene_type( return UUID elif type_ in (str, bytes): return String - elif type_ == datetime.datetime: + elif type_ in [datetime.datetime, PastDatetime, FutureDatetime, AwareDatetime, NaiveDatetime]: return DateTime - elif type_ == datetime.date: + elif type_ in [datetime.date, PastDate, FutureDate]: return Date elif type_ == datetime.time: return Time From 1b7a8fe9c96bfe537975504f42a8cd5241d1a833 Mon Sep 17 00:00:00 2001 From: Edmund Hood Highcock Date: Mon, 19 Feb 2024 13:48:25 +0100 Subject: [PATCH 2/2] Linting --- graphene_pydantic/converters.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/graphene_pydantic/converters.py b/graphene_pydantic/converters.py index e41105d..44e5d2d 100644 --- a/graphene_pydantic/converters.py +++ b/graphene_pydantic/converters.py @@ -221,7 +221,13 @@ def find_graphene_type( return UUID elif type_ in (str, bytes): return String - elif type_ in [datetime.datetime, PastDatetime, FutureDatetime, AwareDatetime, NaiveDatetime]: + elif type_ in [ + datetime.datetime, + PastDatetime, + FutureDatetime, + AwareDatetime, + NaiveDatetime + ]: return DateTime elif type_ in [datetime.date, PastDate, FutureDate]: return Date