JuliaPy / JuliaPy/PythonCall.jl

Python callback to a Julia function?

Aperta
#474 11 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Julia
Stelle
1.1k
Fork
86
Merge medio
1g 22h
PR unite (30g)
3

Descrizione

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.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.