JuliaPy / JuliaPy/PyCall.jl

Allow multiline to work better

Offen
#855 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Julia
Sterne
1.5k
Forks
186
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Is that possible? A minimal example (getting rid of he function, down to just the tuple, it would have returned):

```
(A, B) = py"""
(1, 3)
"""
ERROR: MethodError: no method matching iterate(::Nothing)
Closest candidates are:
iterate(::Pkg.Resolve.NodePerm, ::Any...) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Resolve/maxsum.jl:228
iterate(::PyObject) at /home/pharaldsson_sym/.julia/packages/PyCall/l64G5/src/pyiterator.jl:81
iterate(::PyObject, ::Any) at /home/pharaldsson_sym/.julia/packages/PyCall/l64G5/src/pyiterator.jl:81
...
Stacktrace:
[1] indexed_iterate(::Nothing, ::Int64) at ./tuple.jl:84
[2] top-level scope at /home/pharaldsson_sym/.julia/packages/PyCall/l64G5/src/pyeval.jl:232
```

You can do:

```
py"""
some_func(foo, bar)
"""
```

even if that func is calling Octave for me as seen below, and I just couldn't access the result.

I could have sworn I had done multiline with a tuple before, but actually I guess I was doing slightly different.

E.g. I can:

```
julia> (vintage0, vintage1, vintage2, vintage6m) = py"oc.get_vintage_months($vintageNow, nout=4)"
4-element Array{Float64,1}:
737911.0
737942.0
737982.5481348842
737790.0
```

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start with the multiline py-string handling in pyeval.jl, especially the path referenced at line 232, and reproduce the tuple-assignment example from the issue. Compare it with the working multiline function call and single-line tuple examples. Done means a multiline Python expression returning a tuple can be assigned and iterated without producing Nothing.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
julia, python
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.