From d45a19cfdeb0afc767bb641522a436a00903e1ca Mon Sep 17 00:00:00 2001 From: Elijah DeLee Date: Mon, 7 Feb 2022 11:39:19 -0500 Subject: [PATCH] move function specific imports to function re: review from @asottile that this should only get imported in the function modify the else/if logic since inside the function we already know the python version is >= 3.10, and just have to know if it is 3.11 or greater --- src/_pytest/assertion/rewrite.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index f4a08a065..eac7bb79e 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -43,11 +43,7 @@ from _pytest.stash import StashKey if TYPE_CHECKING: from _pytest.assertion import AssertionState - -if sys.version_info >= (3, 11): - from importlib.resources.readers import FileReader -elif sys.version_info >= (3, 10): - from importlib.readers import FileReader + assertstate_key = StashKey["AssertionState"]() @@ -280,6 +276,11 @@ class AssertionRewritingHook(importlib.abc.MetaPathFinder, importlib.abc.Loader) if sys.version_info >= (3, 10): def get_resource_reader(self, name: str) -> importlib.abc.TraversableResources: # type: ignore + if sys.version_info < (3, 11): + from importlib.readers import FileReader + else: + from importlib.resources.readers import FileReader + return FileReader(types.SimpleNamespace(path=self._rewritten_names[name]))