From 1de9716e79de75bbf670a034dd1ed74c1940c5dc Mon Sep 17 00:00:00 2001 From: Carlos Cordoba Date: Wed, 28 Jul 2021 08:30:46 -0500 Subject: [PATCH 1/3] git subrepo clone (merge) --branch=feat/isatty --force https://github.com/eendebakpt/spyder-kernels.git external-deps/spyder-kernels subrepo: subdir: "external-deps/spyder-kernels" merged: "0fce2342d" upstream: origin: "https://github.com/eendebakpt/spyder-kernels.git" branch: "feat/isatty" commit: "0fce2342d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" --- external-deps/spyder-kernels/.gitrepo | 6 +++--- .../spyder_kernels/console/kernel.py | 10 ++------- .../spyder_kernels/console/outstream.py | 21 +++++++++++++++++++ .../spyder_kernels/console/start.py | 9 ++++++++ 4 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 external-deps/spyder-kernels/spyder_kernels/console/outstream.py diff --git a/external-deps/spyder-kernels/.gitrepo b/external-deps/spyder-kernels/.gitrepo index 1a33c27a406..947c447ed51 100644 --- a/external-deps/spyder-kernels/.gitrepo +++ b/external-deps/spyder-kernels/.gitrepo @@ -5,8 +5,8 @@ ; [subrepo] remote = https://github.com/spyder-ide/spyder-kernels.git - branch = 2.x - commit = 52ccb1b1ac7d360dcb99ad1d5dc827131c78ec0f - parent = 09fd9d2184b0777ffeca2858ca287ba3ba777b2a + branch = feat/isatty + commit = 0fce2342d30fde27389bb3f319cfc5b9d7f8c448 + parent = 12eebb38342da80377478f31c9db58765de10d57 method = merge cmdver = 0.4.3 diff --git a/external-deps/spyder-kernels/spyder_kernels/console/kernel.py b/external-deps/spyder-kernels/spyder_kernels/console/kernel.py index 1c42e032f07..bef1924821c 100644 --- a/external-deps/spyder-kernels/spyder_kernels/console/kernel.py +++ b/external-deps/spyder-kernels/spyder_kernels/console/kernel.py @@ -107,7 +107,6 @@ def __init__(self, *args, **kwargs): self.namespace_view_settings = {} self._pdb_obj = None self._pdb_step = None - self._do_publish_pdb_state = True self._mpl_backend_error = None self._running_namespace = None self._pdb_input_line = None @@ -201,7 +200,6 @@ def get_var_properties(self): def get_value(self, name): """Get the value of a variable""" ns = self._get_current_namespace() - self._do_publish_pdb_state = False return ns[name] def set_value(self, name, value): @@ -286,16 +284,12 @@ def do_complete(self, code, cursor_pos): return self._do_complete(code, cursor_pos) def publish_pdb_state(self): - """ - Publish Variable Explorer state and Pdb step through - send_spyder_msg. - """ - if self._pdb_obj and self._do_publish_pdb_state: + """Publish Pdb state.""" + if self._pdb_obj: state = dict(namespace_view = self.get_namespace_view(), var_properties = self.get_var_properties(), step = self._pdb_step) self.frontend_call(blocking=False).pdb_state(state) - self._do_publish_pdb_state = True def set_spyder_breakpoints(self, breakpoints): """ diff --git a/external-deps/spyder-kernels/spyder_kernels/console/outstream.py b/external-deps/spyder-kernels/spyder_kernels/console/outstream.py new file mode 100644 index 00000000000..1a73a0b1cb3 --- /dev/null +++ b/external-deps/spyder-kernels/spyder_kernels/console/outstream.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright (c) 2009- Spyder Kernels Contributors +# +# Licensed under the terms of the MIT License +# (see spyder_kernels/__init__.py for details) +# ----------------------------------------------------------------------------- + +""" +Custom Spyder Outstream class. +""" + +from ipykernel.iostream import OutStream + + +class TTYOutStream(OutStream): + """Subclass of OutStream that represents a TTY.""" + + def __init__(self, session, pub_thread, name, pipe=None, echo=None, *, watchfd=True): + super().__init__(session, pub_thread, name, pipe, + echo=echo, watchfd=watchfd, isatty=True) diff --git a/external-deps/spyder-kernels/spyder_kernels/console/start.py b/external-deps/spyder-kernels/spyder_kernels/console/start.py index 2c5e7f406de..e9eea811493 100644 --- a/external-deps/spyder-kernels/spyder_kernels/console/start.py +++ b/external-deps/spyder-kernels/spyder_kernels/console/start.py @@ -17,6 +17,9 @@ import sys import site +from traitlets import DottedObjectName +import ipykernel + # Local imports from spyder_kernels.utils.misc import is_module_installed from spyder_kernels.utils.mpl import ( @@ -24,6 +27,8 @@ PY2 = sys.version[0] == '2' +IPYKERNEL_6 = ipykernel.__version__[0] >= '6' + def import_spydercustomize(): @@ -270,6 +275,10 @@ def main(): class SpyderKernelApp(IPKernelApp): + if IPYKERNEL_6: + outstream_class = DottedObjectName( + 'spyder_kernels.console.outstream.TTYOutStream') + def init_pdb(self): """ This method was added in IPykernel 5.3.1 and it replaces From 839d46123c907b000df62e2c5ee781a322be2a0a Mon Sep 17 00:00:00 2001 From: Carlos Cordoba Date: Wed, 28 Jul 2021 10:07:53 -0500 Subject: [PATCH 2/3] git subrepo clone --branch=patch-terminal-size --force https://github.com/ccordoba12/spyder-kernels.git external-deps/spyder-kernels subrepo: subdir: "external-deps/spyder-kernels" merged: "c262584b3" upstream: origin: "https://github.com/ccordoba12/spyder-kernels.git" branch: "patch-terminal-size" commit: "c262584b3" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" --- external-deps/spyder-kernels/.gitrepo | 6 +++--- .../spyder_kernels/console/outstream.py | 3 ++- .../spyder_kernels/customize/spydercustomize.py | 12 ++++++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/external-deps/spyder-kernels/.gitrepo b/external-deps/spyder-kernels/.gitrepo index 947c447ed51..fa1e940e346 100644 --- a/external-deps/spyder-kernels/.gitrepo +++ b/external-deps/spyder-kernels/.gitrepo @@ -5,8 +5,8 @@ ; [subrepo] remote = https://github.com/spyder-ide/spyder-kernels.git - branch = feat/isatty - commit = 0fce2342d30fde27389bb3f319cfc5b9d7f8c448 - parent = 12eebb38342da80377478f31c9db58765de10d57 + branch = patch-terminal-size + commit = c262584b37a8ca541d3d30f1e50e03162f253fd6 + parent = 1de9716e79de75bbf670a034dd1ed74c1940c5dc method = merge cmdver = 0.4.3 diff --git a/external-deps/spyder-kernels/spyder_kernels/console/outstream.py b/external-deps/spyder-kernels/spyder_kernels/console/outstream.py index 1a73a0b1cb3..0477ab2971e 100644 --- a/external-deps/spyder-kernels/spyder_kernels/console/outstream.py +++ b/external-deps/spyder-kernels/spyder_kernels/console/outstream.py @@ -16,6 +16,7 @@ class TTYOutStream(OutStream): """Subclass of OutStream that represents a TTY.""" - def __init__(self, session, pub_thread, name, pipe=None, echo=None, *, watchfd=True): + def __init__(self, session, pub_thread, name, pipe=None, echo=None, *, + watchfd=True): super().__init__(session, pub_thread, name, pipe, echo=echo, watchfd=watchfd, isatty=True) diff --git a/external-deps/spyder-kernels/spyder_kernels/customize/spydercustomize.py b/external-deps/spyder-kernels/spyder_kernels/customize/spydercustomize.py index db78e1c78f3..4648417937d 100644 --- a/external-deps/spyder-kernels/spyder_kernels/customize/spydercustomize.py +++ b/external-deps/spyder-kernels/spyder_kernels/customize/spydercustomize.py @@ -109,6 +109,7 @@ def __init__(self, *args, **kwargs): subprocess.Popen = SubprocessPopen + # ============================================================================= # Importing user's sitecustomize # ============================================================================= @@ -185,6 +186,7 @@ def __init__(self, *args, **kwargs): except Exception: pass + # ============================================================================= # IPython adjustments # ============================================================================= @@ -311,6 +313,16 @@ def _patched_preparation_data(name): pass +# ============================================================================= +# os adjustments +# ============================================================================= +# This is necessary to have better support for Rich and Colorama. +def _patched_get_terminal_size(fd=None): + return os.terminal_size((80, 30)) + +os.get_terminal_size = _patched_get_terminal_size + + # ============================================================================= # Pdb adjustments # ============================================================================= From 558a21afd5fe6aec8bced0f0b48641d4c749ba6a Mon Sep 17 00:00:00 2001 From: Carlos Cordoba Date: Wed, 28 Jul 2021 12:24:40 -0500 Subject: [PATCH 3/3] git subrepo clone (merge) --branch=2.x --force https://github.com/spyder-ide/spyder-kernels.git external-deps/spyder-kernels subrepo: subdir: "external-deps/spyder-kernels" merged: "786edcae4" upstream: origin: "https://github.com/spyder-ide/spyder-kernels.git" branch: "2.x" commit: "786edcae4" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" [ci skip] --- external-deps/spyder-kernels/.gitrepo | 6 +++--- external-deps/spyder-kernels/README.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/external-deps/spyder-kernels/.gitrepo b/external-deps/spyder-kernels/.gitrepo index fa1e940e346..1319ce392a2 100644 --- a/external-deps/spyder-kernels/.gitrepo +++ b/external-deps/spyder-kernels/.gitrepo @@ -5,8 +5,8 @@ ; [subrepo] remote = https://github.com/spyder-ide/spyder-kernels.git - branch = patch-terminal-size - commit = c262584b37a8ca541d3d30f1e50e03162f253fd6 - parent = 1de9716e79de75bbf670a034dd1ed74c1940c5dc + branch = 2.x + commit = 786edcae4b3df5994e94cf775e4672b79bd8f308 + parent = 839d46123c907b000df62e2c5ee781a322be2a0a method = merge cmdver = 0.4.3 diff --git a/external-deps/spyder-kernels/README.md b/external-deps/spyder-kernels/README.md index 0da2f4b9891..4a4815bcbf1 100644 --- a/external-deps/spyder-kernels/README.md +++ b/external-deps/spyder-kernels/README.md @@ -13,10 +13,10 @@ Python session, and allow for interactive or file-based execution of Python code inside Spyder. To learn about creating, connecting to and using these kernels with the Spyder -console, please read our [documentation](https://docs.spyder-ide.org/ipythonconsole.html). +console, please read our [documentation](https://docs.spyder-ide.org/current/panes/ipythonconsole.html). -For advice on managing packages and environments with `spyder-kernels`, please visit -our [wiki](https://github.com/spyder-ide/spyder/wiki/Working-with-packages-and-environments-in-Spyder). +For advice on managing packages and environments with `spyder-kernels`, please read this +[FAQ](http://docs.spyder-ide.org/current/faq.html#using-existing-environment) in our docs. ## Installation