o
    e                     @  s   d dl mZ ddlmZ ddlmZ d dlmZmZm	Z	m
Z
 d dlZd dd)ddZd*ddZddd+ddZd,ddZddd-dd Zddd.d#d$Zd/d%d&Zd dd0d'd(ZdS )1    )annotations   )Array)result_type)ListOptionalTupleUnionNaxisarrays%Union[Tuple[Array, ...], List[Array]]r   Optional[int]returnr   c               C  s0   t |  }tdd | D } ttj| ||dS )z
    Array API compatible wrapper for :py:func:`np.concatenate <numpy.concatenate>`.

    See its docstring for more information.
    c                 s      | ]}|j V  qd S N_array.0a r   Z/var/www/html/venv/lib/python3.10/site-packages/numpy/array_api/_manipulation_functions.py	<genexpr>       zconcat.<locals>.<genexpr>)r   dtype)r   tupler   _newnpconcatenate)r   r   r   r   r   r   concat   s   
r    xintc               C     t t| j|S )z
    Array API compatible wrapper for :py:func:`np.expand_dims <numpy.expand_dims>`.

    See its docstring for more information.
    )r   r   r   expand_dimsr   r!   r   r   r   r   r$         r$   %Optional[Union[int, Tuple[int, ...]]]c               C     t tj| j|dS )zx
    Array API compatible wrapper for :py:func:`np.flip <numpy.flip>`.

    See its docstring for more information.
    r
   )r   r   r   flipr   r%   r   r   r   r)   #      r)   axesTuple[int, ...]c                C  r#   )z
    Array API compatible wrapper for :py:func:`np.transpose <numpy.transpose>`.

    See its docstring for more information.
    )r   r   r   	transposer   )r!   r+   r   r   r   permute_dims.   r&   r.   )copyshaper/   Optional[Bool]c               C  sF   | j }|r
t|}t||}|du rt||stdt|S )z~
    Array API compatible wrapper for :py:func:`np.reshape <numpy.reshape>`.

    See its docstring for more information.
    Fz-Incompatible shape for in-place modification.)r   r   r/   reshapeshares_memoryAttributeErrorr   r   )r!   r0   r/   datareshapedr   r   r   r2   8   s   

r2   shiftUnion[int, Tuple[int, ...]]c               C  s   t tj| j||dS )zx
    Array API compatible wrapper for :py:func:`np.roll <numpy.roll>`.

    See its docstring for more information.
    r
   )r   r   r   rollr   )r!   r7   r   r   r   r   r9   O   s   r9   c                C  r(   )z~
    Array API compatible wrapper for :py:func:`np.squeeze <numpy.squeeze>`.

    See its docstring for more information.
    r
   )r   r   r   squeezer   r%   r   r   r   r:   ^   r*   r:   c               C  s.   t |   tdd | D } ttj| |dS )zz
    Array API compatible wrapper for :py:func:`np.stack <numpy.stack>`.

    See its docstring for more information.
    c                 s  r   r   r   r   r   r   r   r   o   r   zstack.<locals>.<genexpr>r
   )r   r   r   r   r   stack)r   r   r   r   r   r;   g   s   r;   )r   r   r   r   r   r   )r!   r   r   r"   r   r   )r!   r   r   r'   r   r   )r+   r,   r!   r   r   r   )r0   r,   r!   r   r/   r1   r   r   )r7   r8   r!   r   r   r'   r   r   )r   r8   r!   r   r   r   )r   r   r   r"   r   r   )
__future__r   _array_objectr   _data_type_functionsr   typingr   r   r   r	   numpyr   r    r$   r)   r.   r2   r9   r:   r;   r   r   r   r   <module>   s     
	

	