diff --git a/starlette/responses.py b/starlette/responses.py index 527db9c5f..614dea06e 100644 --- a/starlette/responses.py +++ b/starlette/responses.py @@ -4,9 +4,10 @@ import json import os import stat +import sys import typing from email.utils import formatdate -from mimetypes import guess_type +from mimetypes import guess_type as mimetypes_guess_type from urllib.parse import quote, quote_plus from starlette.background import BackgroundTask @@ -30,6 +31,15 @@ ujson = None # type: ignore +# Compatibility wrapper for `mimetypes.guess_type` to support `os.PathLike` on typing.Tuple[typing.Optional[str], typing.Optional[str]]: + if sys.version_info < (3, 8): + url = os.fspath(url) + return mimetypes_guess_type(url, strict) + + class Response: media_type = None charset = "utf-8"