Skip to content

Numpy v1 compatibility broken on main with DimArray #727

@JamesWrigley

Description

@JamesWrigley

Affects: PythonCall

Describe the bug
ArrayValue.__array__() now supports the copy argument and defaults to copy=None, but this is not supported on numpy v1 and breaks when using a DimArray from DimensionalData.jl:

# Works
@pyeval (x=rand(10), np) => "np.asarray(x)"

# Fails
@pyeval (x=rand(X(10)), np) => "np.asarray(x)"
Python: ValueError: NoneType copy mode not allowed.
Python stacktrace:
 [1] __array__
   @ /path/to/julia-depot/packages/PythonCall/syXxf/src/JlWrap/array.jl:371
 [2] <module>
   @ In[44]:1:1

Not sure why it only breaks with DimArray but works with Array.

Your system
Please provide detailed information about your system:

  • Linux
  • Julia 1.12.2, PythonCall main, Python 3.11.13, Numpy 1.26.4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions