o
    Df                     @   sp  d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ G dd dZedkreeddZeeZ e!e"e  e!ee e j e dd	dd
f Z#e!e# de#d< e!e#d e d  e!ee#d d ee#d   e!ee#de$ee#d e!e$e#eedee#  e!ee#d e!ee# dS dS )a7  
Container class for backward compatibility with NumArray.

The user_array.container class exists for backward compatibility with NumArray
and is not meant to be used in new code. If you need to create an array
container class, we recommend either creating a class that wraps an ndarray
or subclasses ndarray.

    )arrayasarrayabsoluteaddsubtractmultiplydivide	remainderpower
left_shiftright_shiftbitwise_and
bitwise_orbitwise_xorinvertless
less_equal	not_equalequalgreatergreater_equalshapereshapearangesinsqrt	transposec                   @   s  e Zd ZdZdddZdd Zddd	Zd
d Zdd Zdd Z	dd Z
dd Zdd ZeZdd Zdd Zdd Zdd Zdd ZeZd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Z d:d; Z!d<d= Z"d>d? Z#d@dA Z$dBdC Z%dDdE Z&dFdG Z'dHdI Z(dJdK Z)dLdM Z*dNdO Z+dPdQ Z,dRdS Z-dTdU Z.dVdW Z/dXdY Z0dZd[ Z1d\d] Z2d^d_ Z3d`da Z4dbdc Z5ddde Z6dfdg Z7dhdi Z8djdk Z9dldm Z:dndo Z;dpdq Z<drds Z=dtdu Z>dvdw Z?dxdy Z@dzd{ ZAd|d} ZBd~d ZCdd ZDdd ZEdS )	containerz
    container(data, dtype=None, copy=True)

    Standard container-class for easy multiple-inheritance.

    Methods
    -------
    copy
    tostring
    byteswap
    astype

    NTc                 C   s   t |||d| _ d S )N)copy)r   )selfdatadtyper    r"   S/home/ubuntu/webapp/venv/lib/python3.10/site-packages/numpy/lib/_user_array_impl.py__init__       zcontainer.__init__c                 C   sB   | j dkr| jjt| jtdd   S | jjd t| j d S )Nr   r   ())ndim	__class____name__reprr   lenr   r"   r"   r#   __repr__#   s   
zcontainer.__repr__c                 C   s   |r| j |S | j S N)r   astype)r   tr"   r"   r#   	__array__)   s   zcontainer.__array__c                 C   s
   t | jS r/   )r,   r   r-   r"   r"   r#   __len__/      
zcontainer.__len__c                 C   s   |  | j| S r/   _rcr   )r   indexr"   r"   r#   __getitem__2      zcontainer.__getitem__c                 C   s   t || j| j|< d S r/   )r   r!   r   )r   r7   valuer"   r"   r#   __setitem__5      zcontainer.__setitem__c                 C      |  t| jS r/   )r6   r   r   r-   r"   r"   r#   __abs__8   r9   zcontainer.__abs__c                 C   s   |  | j S r/   r5   r-   r"   r"   r#   __neg__;      zcontainer.__neg__c                 C   s   |  | jt| S r/   r6   r   r   r   otherr"   r"   r#   __add__>   r%   zcontainer.__add__c                 C      t | j|| j | S r/   )r   r   rB   r"   r"   r#   __iadd__C      zcontainer.__iadd__c                 C   s   |  | jt| S r/   rA   rB   r"   r"   r#   __sub__G   r%   zcontainer.__sub__c                 C   s   |  t|| j S r/   )r6   r   r   rB   r"   r"   r#   __rsub__J   r%   zcontainer.__rsub__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __isub__M   rG   zcontainer.__isub__c                 C      |  t| jt|S r/   )r6   r   r   r   rB   r"   r"   r#   __mul__Q   r<   zcontainer.__mul__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __imul__V   rG   zcontainer.__imul__c                 C   rK   r/   )r6   r   r   r   rB   r"   r"   r#   __div__Z   r<   zcontainer.__div__c                 C      |  tt|| jS r/   )r6   r   r   r   rB   r"   r"   r#   __rdiv__]   r<   zcontainer.__rdiv__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __idiv__`   rG   zcontainer.__idiv__c                 C      |  t| j|S r/   r6   r	   r   rB   r"   r"   r#   __mod__d      zcontainer.__mod__c                 C      |  t|| jS r/   rS   rB   r"   r"   r#   __rmod__g   rU   zcontainer.__rmod__c                 C   rE   r/   )r	   r   rB   r"   r"   r#   __imod__j   rG   zcontainer.__imod__c                 C   s$   |  t| j||  t| j|fS r/   r6   r   r   r	   rB   r"   r"   r#   
__divmod__n      zcontainer.__divmod__c                 C   s$   |  t|| j|  t|| jfS r/   rY   rB   r"   r"   r#   __rdivmod__r   r[   zcontainer.__rdivmod__c                 C   rK   r/   )r6   r
   r   r   rB   r"   r"   r#   __pow__v   r<   zcontainer.__pow__c                 C   rO   r/   )r6   r
   r   r   rB   r"   r"   r#   __rpow__y   r<   zcontainer.__rpow__c                 C   rE   r/   )r
   r   rB   r"   r"   r#   __ipow__|   rG   zcontainer.__ipow__c                 C   rR   r/   r6   r   r   rB   r"   r"   r#   
__lshift__   rU   zcontainer.__lshift__c                 C   rR   r/   r6   r   r   rB   r"   r"   r#   
__rshift__   rU   zcontainer.__rshift__c                 C   rV   r/   r`   rB   r"   r"   r#   __rlshift__   rU   zcontainer.__rlshift__c                 C   rV   r/   rb   rB   r"   r"   r#   __rrshift__   rU   zcontainer.__rrshift__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __ilshift__   rG   zcontainer.__ilshift__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __irshift__   rG   zcontainer.__irshift__c                 C   rR   r/   r6   r   r   rB   r"   r"   r#   __and__   rU   zcontainer.__and__c                 C   rV   r/   rh   rB   r"   r"   r#   __rand__   rU   zcontainer.__rand__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __iand__   rG   zcontainer.__iand__c                 C   rR   r/   r6   r   r   rB   r"   r"   r#   __xor__   rU   zcontainer.__xor__c                 C   rV   r/   rl   rB   r"   r"   r#   __rxor__   rU   zcontainer.__rxor__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __ixor__   rG   zcontainer.__ixor__c                 C   rR   r/   r6   r   r   rB   r"   r"   r#   __or__   rU   zcontainer.__or__c                 C   rV   r/   rp   rB   r"   r"   r#   __ror__   rU   zcontainer.__ror__c                 C   rE   r/   )r   r   rB   r"   r"   r#   __ior__   rG   zcontainer.__ior__c                 C   s   |  | jS r/   r5   r-   r"   r"   r#   __pos__   s   zcontainer.__pos__c                 C   r=   r/   )r6   r   r   r-   r"   r"   r#   
__invert__   r9   zcontainer.__invert__c                 C   s   | j dkr|| d S td)Nr   z6only rank-0 arrays can be converted to Python scalars.)r(   	TypeError)r   funcr"   r"   r#   _scalarfunc   s
   
zcontainer._scalarfuncc                 C   
   |  tS r/   )rx   complexr-   r"   r"   r#   __complex__   r4   zcontainer.__complex__c                 C   ry   r/   )rx   floatr-   r"   r"   r#   	__float__   r4   zcontainer.__float__c                 C   ry   r/   )rx   intr-   r"   r"   r#   __int__   r4   zcontainer.__int__c                 C   ry   r/   )rx   hexr-   r"   r"   r#   __hex__   r4   zcontainer.__hex__c                 C   ry   r/   )rx   octr-   r"   r"   r#   __oct__   r4   zcontainer.__oct__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __lt__   rU   zcontainer.__lt__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __le__   rU   zcontainer.__le__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __eq__   rU   zcontainer.__eq__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __ne__   rU   zcontainer.__ne__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __gt__   rU   zcontainer.__gt__c                 C   rR   r/   )r6   r   r   rB   r"   r"   r#   __ge__   rU   zcontainer.__ge__c                 C      |  | j S  )r6   r   r   r-   r"   r"   r#   r         zcontainer.copyc                 C   
   | j  S r   )r   tostringr-   r"   r"   r#   r         
zcontainer.tostringc                 C   r   r   )r   tobytesr-   r"   r"   r#   r      r   zcontainer.tobytesc                 C   r   r   )r6   r   byteswapr-   r"   r"   r#   r      r   zcontainer.byteswapc                 C   s   |  | j|S r   )r6   r   r0   )r   typecoder"   r"   r#   r0      s   zcontainer.astypec                 C   s   t t|dkr
|S | |S Nr   )r,   r   r)   )r   ar"   r"   r#   r6      s   
zcontainer._rcc                 G   s   |  |d S r   )r)   )r   argsr"   r"   r#   __array_wrap__   r@   zcontainer.__array_wrap__c                 C   sR   |dkrt | || d S z
| j|| W d S  ty(   t | || Y d S w Nr   )object__setattr__r   AttributeError)r   attrr:   r"   r"   r#   r      s   zcontainer.__setattr__c                 C   s    |dkr
t | |S | j|S r   )r   __getattribute__r   )r   r   r"   r"   r#   __getattr__  s   zcontainer.__getattr__)NTr/   )Fr*   
__module____qualname____doc__r$   r.   r2   r3   r8   r;   r>   r?   rD   __radd__rF   rH   rI   rJ   rL   __rmul__rM   rN   rP   rQ   rT   rW   rX   rZ   r\   r]   r^   r_   ra   rc   rd   re   rf   rg   ri   rj   rk   rm   rn   ro   rq   rr   rs   rt   ru   rx   r{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r6   r   r   r   r"   r"   r"   r#   r      s    


r   __main__i'  )d   r   N      
   )r   r   g      @g      @   g      )r   r   )%r   numpy._corer   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   r   r   r*   tempuaprintdirua_smalltyper"   r"   r"   r#   <module>   s&    t	  