Open
Description
Affects: Both PythonCall and JuliaCall
Describe the bug
I am encountering inconsistent behavior with implicit type conversion when calling a Python function from Julia within a Python file. Specifically, I have observed that the variable 'global_res' is of type 'Julia Float64', whereas res is of type 'Py'. I expected both to be of the same type—Julia Float64—since they are both ultimately handled on the Julia side, where I assumed implicit conversion would occur uniformly. Here is the problematic code segment:
from juliacall import Main as jl
jl.seval("""
using PythonCall
""")
jl.global_res = 0
def my_test(x):
jl.global_res = x+1
return x+1
jl.test_pyexec_fn = my_test
jl.seval("""
function jl_add(x::Float64)
res = test_pyexec_fn(x)
println("typeof res:",typeof(res)) #typeof res:Py
println("typeof global_res:",typeof(global_res)) #typeof global_res:Float64
return res
end
""")
x = jl.jl_add(2.0)
Your system
Information about my system:
- The operating system: Linux
- The versions:
- Julia:1.10.3,
- Python:3.9.19,
- juliacall: 0.9.21,
- PythonCall v0.9.20
Thank you so much in advance!