Skip to content

Commit 42245d3

Browse files
state
1 parent b931ead commit 42245d3

File tree

4 files changed

+15
-7
lines changed

4 files changed

+15
-7
lines changed

src/execnet/gateway_base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ def get_ident(self) -> int:
207207

208208
def sleep(self, delay: float) -> None:
209209
import eventlet
210+
# f = open("/tmp/execnet-%s" % os.getpid(), "w")
211+
# def log_extra(*msg):
212+
# f.write(" ".join([str(x) for x in msg]) + "\n")
210213

211214
eventlet.sleep(delay)
212215

src/execnet/gateway_bootstrap.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from __future__ import annotations
44

55
import inspect
6+
import json
67
import os
78

89
import execnet
@@ -25,13 +26,13 @@ def bootstrap_import(io: IO, spec: XSpec) -> None:
2526
sendexec(
2627
io,
2728
"import sys",
28-
"if %r not in sys.path:" % importdir,
29-
" sys.path.insert(0, %r)" % importdir,
29+
f"if {importdir!r} not in sys.path:",
30+
f" sys.path.insert(0, {importdir!r})",
3031
"from execnet.gateway_base import serve, init_popen_io, get_execmodel",
3132
"sys.stdout.write('1')",
3233
"sys.stdout.flush()",
33-
"execmodel = get_execmodel(%r)" % spec.execmodel,
34-
"serve(init_popen_io(execmodel), id='%s-worker')" % spec.id,
34+
f"execmodel = get_execmodel({spec.execmodel!r})",
35+
f"serve(init_popen_io(execmodel), id='{spec.id}-worker')",
3536
)
3637
s = io.read(1)
3738
assert s == b"1", repr(s)
@@ -77,7 +78,8 @@ def bootstrap_socket(io: IO, id) -> None:
7778

7879
def sendexec(io: IO, *sources: str) -> None:
7980
source = "\n".join(sources)
80-
io.write((repr(source) + "\n").encode("utf-8"))
81+
encoded = (json.dumps(source) + "\n").encode("utf-8")
82+
io.write(encoded)
8183

8284

8385
def bootstrap(io: IO, spec: XSpec) -> execnet.Gateway:

src/execnet/gateway_io.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def kill(self) -> None:
4848
sys.stderr.flush()
4949

5050

51-
popen_bootstrapline = "import sys;exec(eval(sys.stdin.readline()))"
51+
popen_bootstrapline = "import sys;import json;exec(json.loads(sys.stdin.readline()))"
5252

5353

5454
def shell_split_path(path: str) -> list[str]:

testing/test_basics.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from __future__ import annotations
33

44
import inspect
5+
import json
56
import os
67
import subprocess
78
import sys
@@ -93,7 +94,9 @@ def receive() -> str:
9394

9495
try:
9596
source = inspect.getsource(read_write_loop) + "read_write_loop()"
96-
send(repr(source) + "\n")
97+
repr_source = json.dumps(source) + "\n"
98+
sendline = repr_source
99+
send(sendline)
97100
s = receive()
98101
assert s == "ok\n"
99102
send("hello\n")

0 commit comments

Comments
 (0)