@@ -22,20 +22,18 @@ class FileResponseModelSchema(Serializer):
2222 method : t .Optional [str ] = None
2323 content_disposition_type : ContentDispositionType = ContentDispositionType .attachment
2424
25+
2526class StreamResponseModelSchema (Serializer ):
2627 media_type : t .Optional [str ] = None
2728 content : t .Any
2829
29- @field_validator (' content' , mode = ' before' )
30+ @field_validator (" content" , mode = " before" )
3031 def pre_validate_content (cls , value : t .Dict ) -> t .Any :
3132 if not isinstance (value , (t .AsyncGenerator , t .Generator )):
32- raise ValueError (
33- "Content must typing.AsyncIterable OR typing.Iterable"
34- )
33+ raise ValueError ("Content must typing.AsyncIterable OR typing.Iterable" )
3534 return value
3635
3736
38-
3937class FileResponseModel (ResponseModel ):
4038 __slots__ = ("_file_init_schema" ,)
4139
@@ -116,11 +114,12 @@ def create_response(
116114 response_args , headers = self .get_context_response (
117115 context = context , status_code = status_code
118116 )
119- data = self .serialize (response_obj )
117+ data = t . cast ( StreamResponseModelSchema , self .serialize (response_obj ) )
120118
121119 response = self ._response_type (
122120 ** response_args ,
123- headers = headers , content = data .content ,
124- media_type = data .media_type or self .media_type
121+ headers = headers ,
122+ content = data .content ,
123+ media_type = data .media_type or self .media_type ,
125124 )
126125 return response
0 commit comments