From 4a74c31c534c65bd34f40a252ef273c2aa24335e Mon Sep 17 00:00:00 2001 From: Alex Hanson Date: Fri, 11 Jan 2019 11:16:21 -0800 Subject: [PATCH 1/2] _banner = None causes issue when running with qtconsole command. See issue #13 for more details. Updated the PowerShellKernel to use traitlets for attribute banner. --- powershell_kernel/kernel.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/powershell_kernel/kernel.py b/powershell_kernel/kernel.py index 7718124..fc79ec1 100644 --- a/powershell_kernel/kernel.py +++ b/powershell_kernel/kernel.py @@ -1,3 +1,5 @@ +from subprocess import check_output + from ipykernel.kernelbase import Kernel from os import unlink, environ @@ -8,6 +10,8 @@ import signal import urllib +from traitlets import default, Unicode + from powershell_kernel import subprocess_repl, powershell_proxy from powershell_kernel.util import get_powershell @@ -24,11 +28,14 @@ def language_version(self): m = version_pat.search(self.banner) return m.group(1) - _banner = None + # _banner = None + config_file_name = Unicode() - @property - def banner(self): - return self._banner + banner = Unicode() + @default('banner') + def _banner_default(self): + return check_output(['powershell', '$PSVersionTable.PSVersion']).decode('utf-8') + # return self._banner language_info = {'name': 'powershell', 'codemirror_mode': 'shell', From 6178a40bf5fa0c8aef09d1d01709f780c1f5752a Mon Sep 17 00:00:00 2001 From: Alex Hanson Date: Mon, 14 Jan 2019 10:22:19 -0800 Subject: [PATCH 2/2] Removed un-necessary code. --- powershell_kernel/kernel.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/powershell_kernel/kernel.py b/powershell_kernel/kernel.py index fc79ec1..811acaf 100644 --- a/powershell_kernel/kernel.py +++ b/powershell_kernel/kernel.py @@ -19,6 +19,7 @@ version_pat = re.compile(r'version (\d+(\.\d+)+)') + class PowerShellKernel(Kernel): implementation = 'powershell_kernel' implementation_version = __version__ @@ -28,10 +29,8 @@ def language_version(self): m = version_pat.search(self.banner) return m.group(1) - # _banner = None - config_file_name = Unicode() - banner = Unicode() + @default('banner') def _banner_default(self): return check_output(['powershell', '$PSVersionTable.PSVersion']).decode('utf-8') @@ -44,7 +43,7 @@ def _banner_default(self): def __init__(self, **kwargs): Kernel.__init__(self, **kwargs) - + # powershell_command env variable is set by the kernel to allow both powershell and pwsh # but on python2 we cannot pass it thru env variable, see https://github.com/vors/jupyter-powershell/issues/7 # TODO(python2): can we pass it somehow differently and still provide user-picked value on python2? @@ -61,7 +60,7 @@ def do_execute(self, code, silent, store_history=True, if not code.strip(): return {'status': 'ok', 'execution_count': self.execution_count, 'payload': [], 'user_expressions': {}} - + self.proxy.send_input(code) output = self.proxy.get_output()