@@ -4,9 +4,8 @@ import * as fs from 'fs';
44import { Kernel } from './kernel' ;
55import * as vscode from 'vscode' ;
66import { KernelspecMetadata , JupyterMessage } from './contracts' ;
7- const jmp = require ( 'jmp' ) ;
7+ import { JmpModuleLoadError } from '../common/errors' ;
88const uuid = require ( 'uuid' ) ;
9- const zmq = jmp . zmq ;
109
1110export class ZMQKernel extends Kernel {
1211 private executionCallbacks : Map < string , Function > ;
@@ -49,7 +48,16 @@ export class ZMQKernel extends Kernel {
4948 private shellSocstdinSocketket : any ;
5049 private stdinSocket : any ;
5150 private ioSocket : any ;
51+ private jmp : any ;
5252 public _connect ( ) {
53+ try {
54+ this . jmp = require ( 'jmp' ) ;
55+ }
56+ catch ( ex ) {
57+ console . log ( ex ) ;
58+ throw new JmpModuleLoadError ( ) ;
59+ }
60+ const jmp = this . jmp ;
5361 const scheme = this . connection . signature_scheme . slice ( 'hmac-' . length ) ;
5462 const key = this . connection . key ;
5563 this . shellSocket = new jmp . Socket ( 'dealer' , scheme , key ) ;
@@ -112,6 +120,9 @@ export class ZMQKernel extends Kernel {
112120 } ;
113121
114122 public shutdown ( restart ?: boolean ) {
123+ if ( ! this . jmp ) {
124+ return ;
125+ }
115126 if ( restart == null ) {
116127 restart = false ;
117128 }
@@ -120,7 +131,7 @@ export class ZMQKernel extends Kernel {
120131 message . content = {
121132 restart : restart
122133 } ;
123- return this . shellSocket . send ( new jmp . Message ( message ) ) ;
134+ return this . shellSocket . send ( new this . jmp . Message ( message ) ) ;
124135 } ;
125136
126137 public _execute ( code : string , requestId : string , onResults : Function ) {
@@ -133,7 +144,7 @@ export class ZMQKernel extends Kernel {
133144 allow_stdin : true
134145 } ;
135146 this . executionCallbacks . set ( requestId , onResults ) ;
136- return this . shellSocket . send ( new jmp . Message ( message ) ) ;
147+ return this . shellSocket . send ( new this . jmp . Message ( message ) ) ;
137148 } ;
138149
139150 public execute ( code : string , onResults : Function ) {
@@ -156,7 +167,7 @@ export class ZMQKernel extends Kernel {
156167 cursor_pos : code . length
157168 } ;
158169 this . executionCallbacks . set ( requestId , onResults ) ;
159- return this . shellSocket . send ( new jmp . Message ( message ) ) ;
170+ return this . shellSocket . send ( new this . jmp . Message ( message ) ) ;
160171 } ;
161172
162173 public inspect ( code : string , cursor_pos , onResults : Function ) {
@@ -168,7 +179,7 @@ export class ZMQKernel extends Kernel {
168179 detail_level : 0
169180 } ;
170181 this . executionCallbacks . set ( requestId , onResults ) ;
171- return this . shellSocket . send ( new jmp . Message ( message ) ) ;
182+ return this . shellSocket . send ( new this . jmp . Message ( message ) ) ;
172183 } ;
173184
174185 public inputReply ( input : string ) {
@@ -177,7 +188,7 @@ export class ZMQKernel extends Kernel {
177188 message . content = {
178189 value : input
179190 } ;
180- return this . stdinSocket . send ( new jmp . Message ( message ) ) ;
191+ return this . stdinSocket . send ( new this . jmp . Message ( message ) ) ;
181192 } ;
182193
183194 private onShellMessage ( message : JupyterMessage ) {
0 commit comments