Skip to content

Commit f5c7474

Browse files
committed
fixing initfile
1 parent d657bc3 commit f5c7474

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

wolframclient/evaluation/kernel/kernelcontroller.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from subprocess import PIPE, Popen
88
from threading import Event, RLock, Thread
99

10-
from wolframclient.utils.environment import find_default_kernel_path
1110
from wolframclient.evaluation.kernel.zmqsocket import (
1211
Socket,
1312
SocketAborted,
@@ -17,6 +16,8 @@
1716
from wolframclient.exception import WolframKernelException
1817
from wolframclient.utils import six
1918
from wolframclient.utils.api import json, os, time, zmq
19+
from wolframclient.utils.environment import find_default_kernel_path
20+
from wolframclient.utils.functional import iterate
2021

2122
if six.WINDOWS:
2223
from subprocess import STARTF_USESHOWWINDOW, STARTUPINFO
@@ -130,12 +131,13 @@ def __init__(
130131
"Cannot locate a kernel automatically. Please provide an explicit kernel path."
131132
)
132133

133-
if initfile is None:
134-
self.initfile = os.path_join(os.dirname(__file__), "initkernel.m")
135-
else:
136-
self.initfile = initfile
137-
if not os.isfile(self.initfile):
138-
raise FileNotFoundError("Kernel initialization file %s not found." % self.initfile)
134+
self.initfile = tuple(
135+
iterate(initfile or (), os.path_join(os.dirname(__file__), "initkernel.m"))
136+
)
137+
for path in self.initfile:
138+
if not os.isfile(path):
139+
raise FileNotFoundError("Kernel initialization file %s not found." % path)
140+
139141
if logger.isEnabledFor(logging.DEBUG):
140142
logger.debug(
141143
"Initializing kernel %s using script: %s" % (self.kernel, self.initfile)
@@ -384,7 +386,12 @@ def _kernel_start(self):
384386
"Kernel receives evaluated expressions from socket: %s", self.kernel_socket_in
385387
)
386388
# start the kernel process
387-
cmd = [self.kernel, "-noprompt", "-initfile", self.initfile]
389+
cmd = [self.kernel, "-noprompt"]
390+
391+
for path in self.initfile:
392+
cmd.append('-initfile')
393+
cmd.append(path)
394+
388395
if self.loglevel != logging.NOTSET:
389396
self.kernel_logger = KernelLogger(
390397
name="wolfram-kernel-logger-%i" % self.id, level=self.loglevel

0 commit comments

Comments
 (0)