JuliaPy / JuliaPy/PythonCall.jl

Python callback to a Julia function?

Open
#474 11 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
1.1k
Forks
86
Avg merge
1d 22h
Merged PRs (30d)
3

Description

If I have a Julia function which takes a callback (artificial example here):

```julia
function caller(callback, arg_vector)
callback(arg_vector)
return nothing
end

outer_vector = [0]
caller(outer_vector) do inner_vector
inner_vector[1] = 1
end
@assert outer_vector[1] == 1
```

And I'd like to call it from Python - it seems not possible to do so? Ideally:

```python
outer_vector = np.array([0])
with jl.MyModule.caller(outer_vector) as inner_vector:
inner_vector[0] = 1
assert outer_vector[0] == 1
```

I have a Julia package that uses callbacks for various functions (for example, initializing arrays), and I'm trying to wrap it with a Python interface. Being able to zero-copy pass around numpy arrays is a godsend, but it seems that callbacks of the above type are not supported. Looking at the code I see the tests for "callback" are empty...

Is there some manual workaround I could use in my code instead of direct support for the above? Any way at all, as long as I can bury the boilerplate code in my Python wrappers so the end user can use the `with` statement.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.