Skip to content

Commit c52ea03

Browse files
committed
Handle subclasses of builtin types
This should admit use of constrained types -- see #64
1 parent d4df6af commit c52ea03

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
@@ -233,8 +233,24 @@ def find_graphene_type(
233233
)
234234
elif issubclass(type_, enum.Enum):
235235
return Enum.from_enum(type_)
236-
elif issubclass(type_, str):
236+
elif issubclass(type_, (str, bytes)):
237237
return String
238+
elif issubclass(type_, datetime.datetime):
239+
return DateTime
240+
elif issubclass(type_, datetime.date):
241+
return Date
242+
elif issubclass(type_, datetime.time):
243+
return Time
244+
elif issubclass(type_, bool):
245+
return Boolean
246+
elif issubclass(type_, float):
247+
return Float
248+
elif issubclass(type_, decimal.Decimal):
249+
return GrapheneDecimal if DECIMAL_SUPPORTED else Float
250+
elif issubclass(type_, int):
251+
return Int
252+
elif issubclass(type_, (tuple, list, set)):
253+
return List
238254
else:
239255
raise ConversionError(
240256
f"Don't know how to convert the Pydantic field {field!r} ({field.type_})"

0 commit comments

Comments
 (0)