diff --git a/CHANGES.rst b/CHANGES.rst index 985c8a0d..e682c636 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,7 @@ Version 3.1.0 - ``Flask.open_resource``/``open_instance_resource`` and ``Blueprint.open_resource`` take an ``encoding`` parameter to use when opening in text mode. It defaults to ``utf-8``. :issue:`5504` +- Fixes Pyright type errors in ``src/flask/helpers.py``. :issue:`5547` Version 3.0.3 ------------- diff --git a/src/flask/helpers.py b/src/flask/helpers.py index 00abe046..59d76946 100644 --- a/src/flask/helpers.py +++ b/src/flask/helpers.py @@ -1,5 +1,6 @@ from __future__ import annotations +import importlib.abc import importlib.util import os import sys @@ -586,7 +587,7 @@ def get_root_path(import_name: str) -> str: if loader is None: return os.getcwd() - if hasattr(loader, "get_filename"): + if isinstance(loader, (importlib.abc.FileLoader, importlib.abc.ExecutionLoader)): filepath = loader.get_filename(import_name) else: # Fall back to imports.