JuliaPy / JuliaPy/PyCall.jl

Slice indexing of python objects?

Open
#563 2 comments 6 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
1.5k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

I'm trying to use [GridSpec](https://matplotlib.org/api/gridspec_api.html#matplotlib.gridspec.GridSpec) in matplotlib with PyCall, and ran into this error:

```julia
julia> using PyCall, PyPlot

# Make a GridSpec object
julia> gs_main = PyPlot.matplotlib[:gridspec][:GridSpec](1, 2)
PyObject

# In python, you can use slice indexing on a GridSpec object to make subplots
# However, the naive way of going about this doesn't work:
julia> gs_main[1:2]
ERROR: MethodError: no method matching getindex(::PyObject, ::UnitRange{Int64})
Closest candidates are:
getindex(::PyObject, ::Symbol) at /home/glynch/.julia/packages/PyCall/rUul9/src/PyCall.jl:294
getindex(::PyObject, ::AbstractString) at /home/glynch/.julia/packages/PyCall/rUul9/src/PyCall.jl:283
getindex(::PyObject, ::Integer) at /home/glynch/.julia/packages/PyCall/rUul9/src/PyCall.jl:755
...
Stacktrace:
[1] top-level scope at none:0

# Manually indexing with slice objects does work, however
julia> gs_main[:__getitem__](pybuiltin(:slice)(0, 2))
PyObject

```

Is there a more straight-forward way of accomplishing this?

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.