Skip to content

Commit db577a3

Browse files
authored
Merge pull request #74 from necaris/necaris/constrained-types
Handle subclasses of builtin types
2 parents 3186dd2 + c52ea03 commit db577a3

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

graphene_pydantic/converters.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,24 @@ def find_graphene_type(
243243
)
244244
elif issubclass(type_, enum.Enum):
245245
return Enum.from_enum(type_)
246-
elif issubclass(type_, str):
246+
elif issubclass(type_, (str, bytes)):
247247
return String
248+
elif issubclass(type_, datetime.datetime):
249+
return DateTime
250+
elif issubclass(type_, datetime.date):
251+
return Date
252+
elif issubclass(type_, datetime.time):
253+
return Time
254+
elif issubclass(type_, bool):
255+
return Boolean
256+
elif issubclass(type_, float):
257+
return Float
258+
elif issubclass(type_, decimal.Decimal):
259+
return GrapheneDecimal if DECIMAL_SUPPORTED else Float
260+
elif issubclass(type_, int):
261+
return Int
262+
elif issubclass(type_, (tuple, list, set)):
263+
return List
248264
else:
249265
raise ConversionError(
250266
f"Don't know how to convert the Pydantic field {field!r} ({field.type_})"

0 commit comments

Comments
 (0)