Skip to content

Add a proper exception handling for nested lists in dpnp.repeat #2972

Description

@antonwolfy
importdpnpasnpnp.__version__# Out: '0.21.0dev1+27.gfdb1c53d735.dirty'x=np.array([3])
np.repeat(x, [[4]])
---------------------------------------------------------------------------TypeErrorTraceback (mostrecentcalllast)
CellIn[20], line1---->1np.repeat(x, [[4]])
File~/code/dpnp/dpnp/dpnp_iface_manipulation.py:2841, inrepeat(a, repeats, axis)
2838a=dpnp.ravel(a)
2840usm_arr=dpnp.get_usm_ndarray(a)
->2841usm_res=dpt.repeat(usm_arr, repeats, axis=axis)
2842returndpnp_array._create_from_usm_ndarray(usm_res)
File~/code/dpnp/dpnp/tensor/_manipulation_functions.py:631, inrepeat(x, repeats, axis)
629iflen_reps==1:
630repeats=repeats[0]
-->631ifrepeats<0:
632raiseValueError("`repeats` elements must be positive")
633scalar=TrueTypeError: '<'notsupportedbetweeninstancesof'list'and'int'

while NumPy raising more explicit exception:

np.__version__# Out: '2.5.0'np.repeat(x, [[4]])
---------------------------------------------------------------------------ValueErrorTraceback (mostrecentcalllast)
CellIn[24], line1---->1np.repeat(x, [[4]])
File~/.local/share/mamba/envs/dpnp_dev/lib/python3.13/site-packages/numpy/_core/fromnumeric.py:481, inrepeat(a, repeats, axis)
437 @array_function_dispatch(_repeat_dispatcher)
438defrepeat(a, repeats, axis=None):
439""" 440 Repeat each element of an array after themselves 441 (...) 479 480 """-->481return_wrapfunc(a, 'repeat', repeats, axis=axis)
File~/.local/share/mamba/envs/dpnp_dev/lib/python3.13/site-packages/numpy/_core/fromnumeric.py:54, in_wrapfunc(obj, method, *args, **kwds)
51return_wrapit(obj, method, *args, **kwds)
53try:
--->54returnbound(*args, **kwds)
55exceptTypeError:
56# A TypeError occurs if the object does have such a method in its57# class, but its signature is not identical to that of NumPy's. This
(...) 61# Call _wrapit from within the except clause to ensure a potential62# exception has a traceback chain.63return_wrapit(obj, method, *args, **kwds)
ValueError: settinganarrayelementwithasequence. Therequestedarraywouldexceedthemaximumnumberofdimensionof1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions