Browse Source

Fix `TypeError: issubclass() arg 1 must be a class` for optional list of bytes

pull/14297/head
Yurii Motov 9 months ago
parent
commit
0e80f9e1f5
  1. 7
      fastapi/_compat/v2.py

7
fastapi/_compat/v2.py

@ -371,6 +371,13 @@ def copy_field_info(*, field_info: FieldInfo, annotation: Any) -> FieldInfo:
def serialize_sequence_value(*, field: ModelField, value: Any) -> Sequence[Any]:
origin_type = get_origin(field.field_info.annotation) or field.field_info.annotation
if origin_type is Union: # Handle optional sequences
union_args = get_args(field.field_info.annotation)
for union_arg in union_args:
if union_arg is type(None):
continue
origin_type = get_origin(union_arg) or union_arg
break
assert issubclass(origin_type, shared.sequence_types) # type: ignore[arg-type]
return shared.sequence_annotation_to_type[origin_type](value) # type: ignore[no-any-return]

Loading…
Cancel
Save