@@ -43,20 +43,25 @@ def convert_file_dict_to_httpx_tuples(
4343 return httpx_tuples
4444
4545
46- def with_content_type (* , file : File , content_type : str ) -> File :
47- """ """
46+ def with_content_type (* , file : File , default_content_type : str ) -> File :
47+ """
48+ This function resolves to the file's content type, if provided, and defaults
49+ to the default_content_type value if not.
50+ """
4851 if isinstance (file , tuple ):
4952 if len (file ) == 2 :
5053 filename , content = cast (Tuple [Optional [str ], FileContent ], file ) # type: ignore
51- return (filename , content , content_type )
54+ return (filename , content , default_content_type )
5255 elif len (file ) == 3 :
53- filename , content , _ = cast (Tuple [Optional [str ], FileContent , Optional [str ]], file ) # type: ignore
54- return (filename , content , content_type )
56+ filename , content , file_content_type = cast (Tuple [Optional [str ], FileContent , Optional [str ]], file ) # type: ignore
57+ out_content_type = file_content_type or default_content_type
58+ return (filename , content , out_content_type )
5559 elif len (file ) == 4 :
56- filename , content , _ , headers = cast ( # type: ignore
60+ filename , content , file_content_type , headers = cast ( # type: ignore
5761 Tuple [Optional [str ], FileContent , Optional [str ], Mapping [str , str ]], file
5862 )
59- return (filename , content , content_type , headers )
63+ out_content_type = file_content_type or default_content_type
64+ return (filename , content , out_content_type , headers )
6065 else :
6166 raise ValueError (f"Unexpected tuple length: { len (file )} " )
62- return (None , file , content_type )
67+ return (None , file , default_content_type )
0 commit comments