• Levin Zimmermann's avatar
    BigArray: Fix API deviation with ndarray (shape) · adffe247
    Levin Zimmermann authored and Kirill Smelkov's avatar Kirill Smelkov committed
    The 'shape' argument of 'numpy.ndarray's initialization method accepts
    integer and sequences of integers. But the 'shape' property of
    'numpy.ndarray' always returns tuple[int, ...], so numpy manually
    casts any legal argument into tuple[int, ...].
    
    In 'BigArray' and 'ZBigArray' this internal casting didn't exist yet.
    This patch adds the casting.
    
    Before:
    
      ZBigArray(shape=[1, 2, 3], dtype=float).shape == [1, 2, 3]
    
    After:
    
      ZBigArray(shape=[1, 2, 3], dtype=float).shape == (1, 2, 3)
    
    In this way BigArray and ZBigArray API behaves closer to numpy.ndaray,
    which should help avoiding confusion when people are using BigArray /
    ZBigArray.
    
    -----
    
    See issue nexedi/wendelin.core#9 and
    MR nexedi/wendelin.core!14
    for additional context.
    
    /reviewed-by @kirr
    /reviewed-on nexedi/wendelin.core!14
    adffe247