Skip to content

Commit a40f54f

Browse files
authored
Merge pull request #1190 from JuliaLang/ipywidgets
Implement integrations for ipywidgets, IPython, and matplotlib
2 parents 132f0c0 + 55e430f commit a40f54f

File tree

22 files changed

+522
-105
lines changed

22 files changed

+522
-105
lines changed

.github/workflows/CI.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,33 @@ on:
99
jobs:
1010
test:
1111
runs-on: ${{ matrix.os }}
12+
env:
13+
JULIA_CONDAPKG_BACKEND: System
1214
strategy:
1315
matrix:
1416
julia-version: ['1.10', '1']
15-
julia-arch: [x64]
17+
arch: [x64]
1618
os: [ubuntu-latest, windows-latest, macOS-13]
1719
include:
1820
- os: macOS-latest
19-
julia-arch: aarch64
21+
arch: aarch64
2022
julia-version: '1'
2123
- os: ubuntu-latest
22-
julia-arch: x86
24+
arch: x86
2325
julia-version: '1'
2426

2527
steps:
2628
- uses: actions/checkout@v4
29+
# We install micromamba ourselves because CondaPkg can't install it on 32 bit
30+
- uses: mamba-org/setup-micromamba@v2
2731
- uses: julia-actions/setup-julia@v2
2832
with:
2933
version: ${{ matrix.julia-version }}
30-
arch: ${{ matrix.julia-arch }}
34+
3135
- uses: julia-actions/cache@v2
3236
- uses: julia-actions/julia-buildpkg@v1
3337
- uses: julia-actions/julia-runtest@v1
38+
3439
- uses: julia-actions/julia-processcoverage@v1
3540
- uses: codecov/codecov-action@v5
3641
with:

CondaPkg.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
[deps]
2-
jupyter_client = ""
2+
ipython = ""
33
jupyter_kernel_test = ""
4+
ipywidgets = ""
5+
matplotlib = ""
6+
jupyter_client = ""
7+
ipympl = ""
8+
comm = ""
9+
# Python 3.14 segfaults something awful
10+
python = "3.13.*"

Project.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ Sockets = "6462fe0b-24de-5631-8697-dd941f90decc"
2020
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
2121
ZMQ = "c2297ded-f4af-51ae-bb23-16f91089e4e1"
2222

23+
[weakdeps]
24+
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
25+
26+
[extensions]
27+
PythonCallExt = "PythonCall"
28+
2329
[compat]
2430
Base64 = "1"
2531
Conda = "1"
@@ -31,6 +37,7 @@ Markdown = "1"
3137
Pkg = "1"
3238
PrecompileTools = "1.2.1"
3339
Printf = "1"
40+
PythonCall = "0.9"
3441
REPL = "1"
3542
Random = "1"
3643
SHA = "0.7, 1"

docs/make.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import Changelog
22
using Documenter, IJulia
33

4+
if isdefined(Main, :Revise)
5+
Revise.revise()
6+
end
7+
48
# Build the changelog
59
Changelog.generate(
610
Changelog.Documenter(),
@@ -16,7 +20,7 @@ makedocs(;
1620
sitename="IJulia",
1721
format=Documenter.HTML(;
1822
prettyurls=get(ENV, "CI", "false") == "true",
19-
assets = ["assets/favicon.ico"],
23+
assets = ["assets/favicon.ico", "assets/custom.css"],
2024
),
2125
pages=[
2226
"Home" => "index.md",

docs/src/_changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ CurrentModule = IJulia
77
This documents notable changes in IJulia.jl. The format is based on [Keep a
88
Changelog](https://keepachangelog.com).
99

10+
## Unreleased
11+
12+
### Added
13+
- Implemented a [PythonCall.jl extension](manual/usage.md#Python-integration) to
14+
support interactive ipywidgets and matplotlib widgets in Julia ([#1190]).
15+
- Added support for buffers in the Jupyter messaging protocol ([#1190]).
16+
1017
## [v1.30.6] - 2025-10-06
1118

1219
### Fixed

docs/src/assets/custom.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* Add border to GIF images in the documentation */
2+
article img[src$=".gif"] {
3+
border: 1px solid #ddd;
4+
border-radius: 4px;
5+
}

docs/src/assets/ipywidgets.gif

44.2 KB
Loading

docs/src/assets/matplotlib.gif

1.12 MB
Loading
979 KB
Loading

docs/src/library/public.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,14 @@ IJulia.pop_postexecute_hook
5858
IJulia.push_posterror_hook
5959
IJulia.pop_posterror_hook
6060
```
61+
62+
## Python initializers
63+
64+
See the [Python integration](../manual/usage.md#Python-integration) docs for
65+
more details.
66+
67+
```@docs
68+
IJulia.init_matplotlib
69+
IJulia.init_ipywidgets
70+
IJulia.init_ipython
71+
```

0 commit comments

Comments
 (0)