improvements
This commit is contained in:
parent
1e118bee6d
commit
e4c82910a2
@ -21,6 +21,7 @@ kernel_json = {
|
|||||||
def eprint(*args, **kwargs):
|
def eprint(*args, **kwargs):
|
||||||
print(*args, file=sys.stderr, **kwargs)
|
print(*args, file=sys.stderr, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class YAPKernel(IPythonKernel):
|
class YAPKernel(IPythonKernel):
|
||||||
implementation = 'MetaKernel YAP'
|
implementation = 'MetaKernel YAP'
|
||||||
implementation_version = '1.0'
|
implementation_version = '1.0'
|
||||||
@ -41,10 +42,14 @@ class YAPKernel(IPythonKernel):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def init_yap(self, **kwargs):
|
def init_yap(self, **kwargs):
|
||||||
# Signal handlers are inherited by forked processes, and we can't easily
|
# Signal handlers are inherited by
|
||||||
# reset it from the subprocess. Since kernelapp ignores SIGINT except in
|
# forked processes,
|
||||||
# message handlers, we need to temporarily reset the SIGINT handler here
|
# and we can't easily
|
||||||
# so that yap and its children are interruptible.
|
# reset it from the subprocess. Since kernelapp
|
||||||
|
# ignores SIGINT except in
|
||||||
|
# message handlers, we need to temporarily
|
||||||
|
# reset the SIGINT handler
|
||||||
|
# here so that yap and its children are interruptible.
|
||||||
sig = signal.signal(signal.SIGINT, signal.SIG_DFL)
|
sig = signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
try:
|
try:
|
||||||
self.engine = yap.YAPEngine()
|
self.engine = yap.YAPEngine()
|
||||||
@ -64,14 +69,13 @@ class YAPKernel(IPythonKernel):
|
|||||||
def get_usage(self):
|
def get_usage(self):
|
||||||
return "This is the YAP kernel."
|
return "This is the YAP kernel."
|
||||||
|
|
||||||
|
def yap_run_cell(self, s, store_history=False, silent=False,
|
||||||
def yap_run_cell(self, s, store_history=False, silent=False, shell_futures=True):
|
shell_futures=True):
|
||||||
|
|
||||||
if not self.q:
|
if not self.q:
|
||||||
self.q = self.engine.query(s)
|
self.q = self.engine.query(s)
|
||||||
if self.q.next():
|
if self.q.next():
|
||||||
myvs = self.q.namedVarsCopy()
|
myvs = self.q.namedVarsCopy()
|
||||||
wrote = False
|
|
||||||
if myvs:
|
if myvs:
|
||||||
i = 0
|
i = 0
|
||||||
for peq in myvs:
|
for peq in myvs:
|
||||||
@ -84,7 +88,6 @@ class YAPKernel(IPythonKernel):
|
|||||||
else:
|
else:
|
||||||
i = bind.numberVars(i, True)
|
i = bind.numberVars(i, True)
|
||||||
print(name.text() + " = " + bind.text())
|
print(name.text() + " = " + bind.text())
|
||||||
wrote = True
|
|
||||||
print("yes")
|
print("yes")
|
||||||
if self.q.deterministic():
|
if self.q.deterministic():
|
||||||
self.closeq()
|
self.closeq()
|
||||||
|
Reference in New Issue
Block a user