From 45bdae51027a315a22ef88342bb68b707bbe08a5 Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 7 May 2021 15:08:12 +0200 Subject: [PATCH] only store the parent header in parent_headers the old parent_header was actually the parent *message*, but we don't need to keep doing that --- ipykernel/inprocess/ipkernel.py | 2 +- ipykernel/kernelbase.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ipykernel/inprocess/ipkernel.py b/ipykernel/inprocess/ipkernel.py index 942907226..abfaff575 100644 --- a/ipykernel/inprocess/ipkernel.py +++ b/ipykernel/inprocess/ipkernel.py @@ -97,7 +97,7 @@ def _input_request(self, prompt, ident, parent, password=False): content = json_clean(dict(prompt=prompt, password=password)) msg = self.session.msg('input_request', content, parent) for frontend in self.frontends: - if frontend.session.session == parent['header']['session']: + if frontend.session.session == parent['session']: frontend.stdin_channel.call_handlers(msg) break else: diff --git a/ipykernel/kernelbase.py b/ipykernel/kernelbase.py index 09f4430d7..dd69d3bb0 100644 --- a/ipykernel/kernelbase.py +++ b/ipykernel/kernelbase.py @@ -142,7 +142,9 @@ def _parent_header(self): DeprecationWarning, stacklevel=2, ) - return self.get_parent_header(channel="shell") + # _parent_header wasn't actually the header, it was the *message* + # but only promised access to the header + return {"header": self.get_parent_header(channel="shell")} # Time to sleep after flushing the stdout/err buffers in each execute # cycle. While this introduces a hard limit on the minimal latency of the @@ -538,6 +540,8 @@ def set_parent(self, ident, parent, channel='shell'): on the stdin channel. """ self._parent_ident[channel] = ident + if parent and 'header' in parent: + parent = parent['header'] self._parent_headers[channel] = parent def send_response(self, stream, msg_or_type, content=None, ident=None,