From ea9f9bf48f52fd63dedd3bbcb190913e3ea5cdd5 Mon Sep 17 00:00:00 2001 From: Noorhteen Raja NJ Date: Fri, 28 May 2021 18:36:20 +0530 Subject: [PATCH] refactor: speed up getting stack frame (#4297) --- xonsh/execer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xonsh/execer.py b/xonsh/execer.py index f6e54bb32..c74f163ee 100644 --- a/xonsh/execer.py +++ b/xonsh/execer.py @@ -128,7 +128,9 @@ class Execer(object): filename = self.filename self.filename = self._default_filename if glbs is None or locs is None: - frame = inspect.stack()[stacklevel][0] + frame = inspect.currentframe() + for _ in range(stacklevel): + frame = frame.f_back glbs = frame.f_globals if glbs is None else glbs locs = frame.f_locals if locs is None else locs ctx = set(dir(builtins)) | set(glbs.keys()) | set(locs.keys())