Skip to content

Commit cc07f6d

Browse files
authored
Fix io redirection for Julia 1.7, fixes #986. (#989)
1 parent 776257f commit cc07f6d

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "IJulia"
22
uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
3-
version = "1.23.1"
3+
version = "1.23.2"
44

55
[deps]
66
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

src/stdio.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@ Base.displaysize(io::IJuliaStdio) = displaysize(io.io)
2323
Base.unwrapcontext(io::IJuliaStdio) = Base.unwrapcontext(io.io)
2424
Base.setup_stdio(io::IJuliaStdio, readable::Bool) = Base.setup_stdio(io.io.io, readable)
2525

26-
for s in ("stdout", "stderr", "stdin")
27-
f = Symbol("redirect_", s)
28-
sq = QuoteNode(Symbol(s))
29-
@eval function Base.$f(io::IJuliaStdio)
30-
io[:jupyter_stream] != $s && throw(ArgumentError(string("expecting ", $s, " stream")))
31-
Core.eval(Base, Expr(:(=), $sq, io))
32-
return io
26+
if VERSION < v"1.7.0-DEV.254"
27+
for s in ("stdout", "stderr", "stdin")
28+
f = Symbol("redirect_", s)
29+
sq = QuoteNode(Symbol(s))
30+
@eval function Base.$f(io::IJuliaStdio)
31+
io[:jupyter_stream] != $s && throw(ArgumentError(string("expecting ", $s, " stream")))
32+
Core.eval(Base, Expr(:(=), $sq, io))
33+
return io
34+
end
3335
end
3436
end
3537

test/stdio.jl

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ using IJulia
1111
flush(io)
1212
seek(io, 0)
1313
@test read(io, String) == "stdout\nprint\n"
14-
@test_throws ArgumentError redirect_stdout(IJulia.IJuliaStdio(io, "stderr"))
15-
@test_throws ArgumentError redirect_stdout(IJulia.IJuliaStdio(io, "stdin"))
16-
@test_throws ArgumentError redirect_stderr(IJulia.IJuliaStdio(io, "stdout"))
17-
@test_throws ArgumentError redirect_stderr(IJulia.IJuliaStdio(io, "stdin"))
18-
@test_throws ArgumentError redirect_stdin(IJulia.IJuliaStdio(io, "stdout"))
19-
@test_throws ArgumentError redirect_stdin(IJulia.IJuliaStdio(io, "stderr"))
14+
if VERSION < v"1.7.0-DEV.254"
15+
@test_throws ArgumentError redirect_stdout(IJulia.IJuliaStdio(io, "stderr"))
16+
@test_throws ArgumentError redirect_stdout(IJulia.IJuliaStdio(io, "stdin"))
17+
@test_throws ArgumentError redirect_stderr(IJulia.IJuliaStdio(io, "stdout"))
18+
@test_throws ArgumentError redirect_stderr(IJulia.IJuliaStdio(io, "stdin"))
19+
@test_throws ArgumentError redirect_stdin(IJulia.IJuliaStdio(io, "stdout"))
20+
@test_throws ArgumentError redirect_stdin(IJulia.IJuliaStdio(io, "stderr"))
21+
end
2022
end
2123

2224
mktemp() do path, io

0 commit comments

Comments
 (0)