JuliaPy / JuliaPy/PythonCall.jl

Python callback to a Julia function?

Aberta
#474 11 comentários 0 reações 0 responsáveis Ver no GitHub
enhancement
Linguagem predominante
Julia
Estrelas
1.1k
Forks
86
Merge médio
1d 22h
PRs com merge (30d)
3

Descrição

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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.