
    {h-ie                        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Zdd	Zdddd
ZddZdd	 	 	 	 	 ddZdd	 	 	 	 	 	 	 ddZddZd dddZy)    )annotations   )Array)result_type)ListOptionalTupleUnionNaxisc                  t        |  }t        d | D              } t        j                  t	        j
                  | ||            S )z
    Array API compatible wrapper for :py:func:`np.concatenate <numpy.concatenate>`.

    See its docstring for more information.
    c              3  4   K   | ]  }|j                     y wN_array.0as     fD:\DhanshreeandTeamAI\Github\ai_code\venv\Lib\site-packages\numpy/array_api/_manipulation_functions.py	<genexpr>zconcat.<locals>.<genexpr>        ,V188V   )r   dtype)r   tupler   _newnpconcatenate)arraysr   r   s      r   concatr      s:      E,V,,F::bnnV$eDEE    c              h    t        j                  t        j                  | 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   xr   s     r   r"   r"      s"     ::bnnQXXt455r    c              j    t        j                  t        j                  | j                  |            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#   s     r   r&   r&   #   s"     ::bggahhT233r    c               h    t        j                  t        j                  | j                  |            S )z
    Array API compatible wrapper for :py:func:`np.transpose <numpy.transpose>`.

    See its docstring for more information.
    )r   r   r   	transposer   )r$   axess     r   permute_dimsr*   .   s"     ::bll188T233r    )copyc                  | j                   }|rt        j                  |      }t        j                  ||      }|du r!t        j                  ||      st        d      t        j                  |      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$   shaper+   datareshapeds        r   r-   r-   8   s^     88Dwwt}zz$&Hu}R--dH=LMM::hr    c              l    t        j                  t        j                  | j                  ||            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$   shiftr   s      r   r4   r4   O   s$     ::bggahhD9::r    c               j    t        j                  t        j                  | j                  |            S )z~
    Array API compatible wrapper for :py:func:`np.squeeze <numpy.squeeze>`.

    See its docstring for more information.
    r   )r   r   r   squeezer   r#   s     r   r7   r7   ^   s"     ::bjj566r    c                  t        |   t        d | D              } t        j                  t	        j
                  | |            S )zz
    Array API compatible wrapper for :py:func:`np.stack <numpy.stack>`.

    See its docstring for more information.
    c              3  4   K   | ]  }|j                     y wr   r   r   s     r   r   zstack.<locals>.<genexpr>o   r   r   r   )r   r   r   r   r   stack)r   r   s     r   r:   r:   g   s6     ,V,,F::bhhvD122r    )r   %Union[Tuple[Array, ...], List[Array]]r   zOptional[int]returnr   )r$   r   r   intr<   r   )r$   r   r   %Optional[Union[int, Tuple[int, ...]]]r<   r   )r)   Tuple[int, ...]r$   r   r<   r   )r0   r?   r$   r   r+   zOptional[Bool]r<   r   )r5   Union[int, Tuple[int, ...]]r$   r   r   r>   r<   r   )r   r@   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*   r-   r4   r7   r:    r    r   <module>rG      s    "   - / /  PQF1F?LF
F6 HL 44 $(	 "  !	  -2	 8 37; ';;
 0; ;7 LM 	3r    