diff --git a/IPython/core/debugger.py b/IPython/core/debugger.py index 54074ca..928a898 100644 --- a/IPython/core/debugger.py +++ b/IPython/core/debugger.py @@ -287,6 +287,11 @@ class Pdb(OldPdb): self.color_scheme_table.set_active_scheme(scheme) self.parser.style = scheme + def set_trace(self, frame=None): + if frame is None: + frame = sys._getframe().f_back + self.initial_frame = frame + return super().set_trace(frame) def hidden_frames(self, stack): """ @@ -299,9 +304,11 @@ class Pdb(OldPdb): # avoid calling it here to preserve self.curframe_locals. # Futhermore, there is no good reason to hide the current frame. ip_hide = [ - False if s[0] is self.curframe else s[0].f_locals.get( - "__tracebackhide__", False) - for s in stack] + False + if s[0] in (self.curframe, getattr(self, "initial_frame", None)) + else s[0].f_locals.get("__tracebackhide__", False) + for s in stack + ] ip_start = [i for i, s in enumerate(ip_hide) if s == "__ipython_bottom__"] if ip_start: ip_hide = [h if i > ip_start[0] else True for (i, h) in enumerate(ip_hide)] diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py index 7f7486b..e1eb17d 100644 --- a/IPython/core/interactiveshell.py +++ b/IPython/core/interactiveshell.py @@ -740,8 +740,9 @@ class InteractiveShell(SingletonConfigurable): if profile_dir is not None: self.profile_dir = profile_dir return - self.profile_dir =\ - ProfileDir.create_profile_dir_by_name(self.ipython_dir, 'default') + self.profile_dir = ProfileDir.create_profile_dir_by_name( + self.ipython_dir, "default" + ) def init_instance_attrs(self): self.more = False