Skip to content

Commit 0225c36

Browse files
author
Christopher Rowley
committed
Merge remote-tracking branch 'origin/main' into v1
2 parents 1ed4612 + 58904d4 commit 0225c36

34 files changed

Lines changed: 404 additions & 174 deletions

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ updates:
1313
directory: /
1414
schedule:
1515
interval: weekly
16+
- package-ecosystem: julia
17+
directory: /
18+
schedule:
19+
interval: weekly

.github/workflows/CompatHelper.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ jobs:
1515
run: which julia
1616
continue-on-error: true
1717
- name: Install Julia, but only if it is not already available in the PATH
18-
uses: julia-actions/setup-julia@v2
18+
uses: julia-actions/setup-julia@v3
1919
with:
2020
version: '1'
21-
arch: ${{ runner.arch }}
2221
if: steps.julia_in_path.outcome != 'success'
2322
- name: "Add the General registry via Git"
2423
run: |

.github/workflows/benchmark_pr.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,5 @@ jobs:
88
steps:
99
- uses: MilesCranmer/AirspeedVelocity.jl@action-v1
1010
with:
11-
julia-version: "1"
1211
tune: "true"
13-
# Post to "summary" tab of workflow run:
14-
job-summary: "true"
15-
# Run benchmark using PR's version of the script:
1612
bench-on: ${{ github.event.pull_request.head.sha }}

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-latest
1919
steps:
2020
- uses: actions/checkout@v6
21-
- uses: julia-actions/setup-julia@v2
21+
- uses: julia-actions/setup-julia@v3
2222
with:
2323
version: '1'
2424
- run: |

.github/workflows/tests-nightly.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ on:
1010

1111
jobs:
1212
tests:
13-
name: Test Julia (${{ matrix.jlversion }}, ${{ matrix.os }}-${{ matrix.arch }})
13+
name: Test Julia (${{ matrix.jlversion }}, ${{ matrix.os }})
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
arch: [x64] # x86 unsupported by MicroMamba
1918
os: [ubuntu-latest, windows-latest, macos-latest]
2019
jlversion: ['~1.9.0-0', 'nightly']
2120
steps:
2221
- uses: actions/checkout@v6
23-
- uses: julia-actions/setup-julia@v2
22+
- uses: julia-actions/setup-julia@v3
2423
with:
2524
version: ${{ inputs.jl_version }}
26-
arch: ${{ matrix.arch }}
2725
- uses: actions/cache@v5
2826
env:
2927
cache-name: cache-artifacts
@@ -40,6 +38,6 @@ jobs:
4038
JULIA_DEBUG: PythonCall
4139
JULIA_NUM_THREADS: '2'
4240
- uses: julia-actions/julia-processcoverage@v1
43-
- uses: codecov/codecov-action@v5
41+
- uses: codecov/codecov-action@v6
4442
with:
4543
file: lcov.info

.github/workflows/tests.yml

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,57 +13,67 @@ on:
1313

1414
jobs:
1515
julia:
16-
name: Julia (${{ matrix.jlversion }}, ${{ matrix.os }}, ${{ matrix.pythonexe }})
16+
name: Julia (${{ matrix.jlversion }}, ${{ matrix.os }}, ${{ matrix.pythonexe }} ${{ matrix.pyversion}})
1717
runs-on: ${{ matrix.os }}
1818
strategy:
1919
fail-fast: false
2020
matrix:
21-
arch: [x64] # x86 unsupported by MicroMamba
2221
os: [ubuntu-latest, windows-latest, macos-latest]
2322
jlversion: ['1','1.10']
2423
pythonexe: ['@CondaPkg']
24+
pyversion: ['3']
2525
include:
26-
- arch: x64
27-
os: ubuntu-latest
26+
- os: ubuntu-latest
2827
jlversion: '1'
2928
pythonexe: python
29+
pyversion: '3'
30+
- os: ubuntu-latest
31+
jlversion: '1'
32+
pythonexe: python
33+
pyversion: '3.14t'
3034

3135
steps:
3236
- uses: actions/checkout@v6
3337

3438
- name: Set up Julia ${{ matrix.jlversion }}
35-
uses: julia-actions/setup-julia@v2
39+
uses: julia-actions/setup-julia@v3
3640
with:
3741
version: ${{ matrix.jlversion }}
38-
arch: ${{ matrix.arch }}
3942

40-
- uses: julia-actions/cache@v2
43+
- uses: julia-actions/cache@v3
4144

4245
- name: Build package
4346
uses: julia-actions/julia-buildpkg@v1
4447
env:
4548
PYTHON: python
4649

50+
- name: Install Python
51+
id: setup-python
52+
uses: actions/setup-python@v6
53+
if: ${{ matrix.pythonexe == 'python' }}
54+
with:
55+
python-version: ${{ matrix.pyversion }}
56+
4757
- name: Build PyCall
4858
if: ${{ matrix.pythonexe == 'python' }}
4959
run: |
5060
julia --project=test -e 'import Pkg; Pkg.build("PyCall")'
5161
env:
52-
PYTHON: python
62+
PYTHON: ${{ steps.setup-python.outputs.python-path }}
5363

5464
- name: Run tests
5565
uses: julia-actions/julia-runtest@v1
5666
env:
5767
JULIA_DEBUG: PythonCall
5868
JULIA_NUM_THREADS: '2'
59-
PYTHON: python
60-
JULIA_PYTHONCALL_EXE: ${{ matrix.pythonexe }}
69+
PYTHON: ${{ steps.setup-python.outputs.python-path }}
70+
JULIA_PYTHONCALL_EXE: ${{ case(matrix.pythonexe == 'python', steps.setup-python.outputs.python-path, matrix.pythonexe) }}
6171

6272
- name: Process coverage
6373
uses: julia-actions/julia-processcoverage@v1
6474

6575
- name: Upload coverage to Codecov
66-
uses: codecov/codecov-action@v5
76+
uses: codecov/codecov-action@v6
6777
env:
6878
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
6979

@@ -80,6 +90,9 @@ jobs:
8090
- os: ubuntu-latest
8191
pyversion: '3'
8292
juliaexe: julia
93+
- os: ubuntu-latest
94+
pyversion: '3.14t'
95+
juliaexe: '@JuliaPkg'
8396
env:
8497
MANUAL_TEST_PROJECT: /tmp/juliacall-test-project
8598
PYTHON_JULIACALL_THREADS: '2'
@@ -106,7 +119,7 @@ jobs:
106119

107120
- name: Set up Julia
108121
id: setup_julia
109-
uses: julia-actions/setup-julia@v2
122+
uses: julia-actions/setup-julia@v3
110123
with:
111124
# Python in the GitHub runners ships with OpenSSL 3.0. Julia 1.12 requires
112125
# OpenSSL 3.5. Therefore juliapkg requires Julia 1.11 or lower.
@@ -144,6 +157,6 @@ jobs:
144157
PYTHON_JULIACALL_PROJECT: ${{ env.MANUAL_TEST_PROJECT }}
145158

146159
- name: Upload coverage to Codecov
147-
uses: codecov/codecov-action@v5
160+
uses: codecov/codecov-action@v6
148161
env:
149162
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,18 @@
2424
* `pyjltype(x)` removed.
2525
* New functions: `pyjlarray`, `pyjldict`, `pyjlset`.
2626

27-
## Unreleased
27+
## 0.9.33 (2026-05-18)
28+
* Add configuration via Preferences in addition to environment variables (e.g. `exe`
29+
rather than `JULIA_PYTHONCALL_EXE`.)
30+
* Bug fixes.
31+
32+
## 0.9.32 (2026-05-14)
2833
* Added `juliacall.TypeValue.__numpy_dtype__` attribute to allow converting Julia types
2934
to the corresponding NumPy dtype, like `numpy.dtype(jl.Int)`.
35+
* JuliaCall now launches Julia with 1 thread by default.
36+
* Added options `trace_compile` and `trace_compile_timing` to JuliaCall.
37+
* Initial experimental support for free-threaded Python 3.14.
38+
* Bug fixes.
3039

3140
## 0.9.31 (2025-12-17)
3241
* Restore support for Python 3.14+.

CondaPkg.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ version = ">=3.10,!=3.14.0,!=3.14.1,<4"
1616
matplotlib = ""
1717
numpy = ""
1818
pyside6 = ""
19+
pandas = ""

Project.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
name = "PythonCall"
22
uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
33
authors = ["Christopher Doris <github.com/cjdoris>"]
4-
version = "0.9.31"
4+
version = "0.9.33"
55

66
[deps]
77
CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"
88
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
99
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
1010
MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
1111
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
12-
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
12+
Preferences = "21216c6a-2e73-6563-6e65-726566657250"
1313
Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
1414
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
1515
UnsafePointers = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39"
@@ -29,7 +29,7 @@ Dates = "1"
2929
Libdl = "1"
3030
MacroTools = "0.5"
3131
Markdown = "1"
32-
Pkg = "1"
32+
Preferences = "1"
3333
PyCall = "1"
3434
Serialization = "1"
3535
Tables = "1"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Bringing [**Python®**](https://www.python.org/) and [**Julia**](https://juliala
1414
- Fast non-copying conversion of numeric arrays in either direction: modify Python arrays (e.g. `bytes`, `array.array`, `numpy.ndarray`) from Julia or Julia arrays from Python.
1515
- Helpful wrappers: interpret Python sequences, dictionaries, arrays, dataframes and IO streams as their Julia counterparts, and vice versa.
1616
- Beautiful stack-traces.
17-
- Supports modern systems: tested on Windows, MacOS and Linux, 64-bit, Julia 1.10 upwards and Python 3.10 upwards.
17+
- Supports modern systems: tested on Windows, MacOS and Linux; 64-bit; Julia 1.10 upwards and Python 3.10 upwards.
1818

1919
⭐ If you like this, a GitHub star would be lovely thank you. ⭐
2020

0 commit comments

Comments
 (0)