Skip to content

Commit f3ba235

Browse files
committed
Merge pull request #253 in LCL/wolframclientforpython from bugfix/429973-python-date to master
* commit '7c6a3ed09b8d7597ec4f9ac741ba58fa2b2684e5': bumping version passing arguments adding installation_version, refactoring internals moving module
2 parents 7d51493 + 7c6a3ed commit f3ba235

6 files changed

Lines changed: 33 additions & 20 deletions

File tree

PacletInfo.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Paclet[
22
Name -> "WolframClientForPython",
3-
Version -> "1.1.5",
3+
Version -> "1.1.8",
44
MathematicaVersion -> "12.3+",
55
Loading -> Automatic,
66
Extensions -> {}

wolframclient/about.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
__name__ = "wolframclient"
44
__description__ = "A Python library with various tools to interact with the Wolfram Language and the Wolfram Cloud."
5-
__version__ = "1.1.7"
5+
__version__ = "1.1.8"
66
__author__ = "Wolfram Research"
77
__author_email__ = "support@wolfram.com, dorianb@wolfram.com, riccardod@wolfram.com"

wolframclient/cli/commands/start_externalevaluate.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ class Command(SimpleCommand):
1515
def add_arguments(self, parser):
1616
parser.add_argument("--port", dest="port", default=None)
1717
parser.add_argument("--installpath", dest="installpath", default=None)
18+
parser.add_argument("--kernelversion", dest="kernelversion", default=None)
1819

19-
def handle(self, port=None, installpath=None, **opts):
20+
def handle(self, port=None, installpath=None, kernelversion=None, **opts):
2021

21-
if installpath:
22-
os.environ["WOLFRAM_INSTALLATION_DIRECTORY"] = installpath
22+
for key, value in (("WOLFRAM_INSTALLATION_DIRECTORY", installpath), ("WOLFRAM_KERNEL_VERSION", kernelversion)):
23+
if value:
24+
os.environ[key] = value
2325

2426
try:
2527
zmq.Context

wolframclient/evaluation/kernel/kernelcontroller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from subprocess import PIPE, Popen
88
from threading import Event, RLock, Thread
99

10-
from wolframclient.evaluation.kernel.path import find_default_kernel_path
10+
from wolframclient.utils.environment import find_default_kernel_path
1111
from wolframclient.evaluation.kernel.zmqsocket import (
1212
Socket,
1313
SocketAborted,

wolframclient/serializers/encoder.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from collections import defaultdict
66
from functools import partial
77

8+
from wolframclient.utils.environment import installation_version
89
from wolframclient.serializers.utils import safe_len
910
from wolframclient.utils.api import multiprocessing, pkg_resources
1011
from wolframclient.utils.dispatch import Dispatch
@@ -205,7 +206,7 @@ def __init__(
205206
normalizer, encoder=safe_import_string(encoder or wolfram_encoder)
206207
)
207208
self.allow_external_objects = allow_external_objects
208-
self.target_kernel_version = target_kernel_version or 11.3
209+
self.target_kernel_version = target_kernel_version or installation_version()
209210
self._properties = kwargs
210211

211212
def chain_normalizer(self, func, encoder):
Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,18 @@
33
from wolframclient.utils import six
44
from wolframclient.utils.api import os
55

6+
from wolframclient.utils import six
7+
from wolframclient.utils.api import os
8+
9+
def installation_version():
610

7-
def explore_paths(*paths):
11+
v = os.environ.get('WOLFRAM_KERNEL_VERSION', None)
12+
if v:
13+
return float(v)
14+
15+
return 12.0
16+
17+
def _explore_paths(*paths):
818
highest_version = -1
919
best_path = None
1020
for root in paths:
@@ -23,21 +33,21 @@ def explore_paths(*paths):
2333
yield best_path
2434

2535

26-
def installation_directories():
36+
def _installation_directories():
2737
env = os.environ.get("WOLFRAM_INSTALLATION_DIRECTORY", None)
2838
if env:
2939
yield env
3040

3141
if six.WINDOWS:
32-
for p in explore_paths(
42+
for p in _explore_paths(
3343
"C:\\Program Files\\Wolfram Research\\Wolfram Desktop",
3444
"C:\\Program Files\\Wolfram Research\\Mathematica",
3545
"C:\\Program Files\\Wolfram Research\\Wolfram Engine",
3646
):
3747
yield p
3848

3949
elif six.LINUX:
40-
for p in explore_paths(
50+
for p in _explore_paths(
4151
"/usr/local/Wolfram/Desktop",
4252
"/usr/local/Wolfram/Mathematica",
4353
"/usr/local/Wolfram/WolframEngine",
@@ -50,19 +60,19 @@ def installation_directories():
5060
yield "/Applications/Wolfram Engine.app/Contents"
5161

5262

53-
def exe_path():
63+
64+
def find_default_kernel_path():
65+
""" Look for the most recent installed kernel. """
66+
5467
if six.WINDOWS:
55-
return "WolframKernel.exe"
68+
rel = "WolframKernel.exe"
5669
elif six.LINUX:
57-
return "Executables/WolframKernel"
70+
rel = "Executables/WolframKernel"
5871
elif six.MACOS:
59-
return "MacOS/WolframKernel"
72+
rel = "MacOS/WolframKernel"
73+
6074

61-
62-
def find_default_kernel_path():
63-
""" Look for the most recent installed kernel. """
64-
rel = exe_path()
65-
for path in installation_directories():
75+
for path in _installation_directories():
6676
if rel:
6777
path = os.path_join(path, rel)
6878
if os.isfile(path):

0 commit comments

Comments
 (0)