U
    O8c)                     @   sn  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rje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 )z
Standard container-class for easy multiple-inheritance.

Try to inherit from the ndarray instead of using this class as this is not
complete.

    )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"   8/tmp/pip-unpacked-wheel-fd_gsd75/numpy/lib/user_array.py__init__   s    zcontainer.__init__c                 C   sF   | j dkr(| jjt| jtdd   S | jjd t| j d S 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__-   s    zcontainer.__len__c                 C   s   |  | j| S r.   _rcr   )r   indexr"   r"   r#   __getitem__0   s    zcontainer.__getitem__c                 C   s   t || j| j|< d S r.   )r   r!   r   )r   r5   valuer"   r"   r#   __setitem__3   s    zcontainer.__setitem__c                 C   s   |  t| jS r.   )r4   r   r   r,   r"   r"   r#   __abs__6   s    zcontainer.__abs__c                 C   s   |  | j S r.   r3   r,   r"   r"   r#   __neg__9   s    zcontainer.__neg__c                 C   s   |  | jt| S r.   r4   r   r   r   otherr"   r"   r#   __add__<   s    zcontainer.__add__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __iadd__A   s    zcontainer.__iadd__c                 C   s   |  | jt| S r.   r;   r<   r"   r"   r#   __sub__E   s    zcontainer.__sub__c                 C   s   |  t|| j S r.   )r4   r   r   r<   r"   r"   r#   __rsub__H   s    zcontainer.__rsub__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __isub__K   s    zcontainer.__isub__c                 C   s   |  t| jt|S r.   )r4   r   r   r   r<   r"   r"   r#   __mul__O   s    zcontainer.__mul__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __imul__T   s    zcontainer.__imul__c                 C   s   |  t| jt|S r.   )r4   r   r   r   r<   r"   r"   r#   __div__X   s    zcontainer.__div__c                 C   s   |  tt|| jS r.   )r4   r   r   r   r<   r"   r"   r#   __rdiv__[   s    zcontainer.__rdiv__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __idiv__^   s    zcontainer.__idiv__c                 C   s   |  t| j|S r.   r4   r	   r   r<   r"   r"   r#   __mod__b   s    zcontainer.__mod__c                 C   s   |  t|| jS r.   rH   r<   r"   r"   r#   __rmod__e   s    zcontainer.__rmod__c                 C   s   t | j|| j | S r.   )r	   r   r<   r"   r"   r#   __imod__h   s    zcontainer.__imod__c                 C   s$   |  t| j||  t| j|fS r.   r4   r   r   r	   r<   r"   r"   r#   
__divmod__l   s    zcontainer.__divmod__c                 C   s$   |  t|| j|  t|| jfS r.   rL   r<   r"   r"   r#   __rdivmod__p   s    zcontainer.__rdivmod__c                 C   s   |  t| jt|S r.   )r4   r
   r   r   r<   r"   r"   r#   __pow__t   s    zcontainer.__pow__c                 C   s   |  tt|| jS r.   )r4   r
   r   r   r<   r"   r"   r#   __rpow__w   s    zcontainer.__rpow__c                 C   s   t | j|| j | S r.   )r
   r   r<   r"   r"   r#   __ipow__z   s    zcontainer.__ipow__c                 C   s   |  t| j|S r.   r4   r   r   r<   r"   r"   r#   
__lshift__~   s    zcontainer.__lshift__c                 C   s   |  t| j|S r.   r4   r   r   r<   r"   r"   r#   
__rshift__   s    zcontainer.__rshift__c                 C   s   |  t|| jS r.   rR   r<   r"   r"   r#   __rlshift__   s    zcontainer.__rlshift__c                 C   s   |  t|| jS r.   rT   r<   r"   r"   r#   __rrshift__   s    zcontainer.__rrshift__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __ilshift__   s    zcontainer.__ilshift__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __irshift__   s    zcontainer.__irshift__c                 C   s   |  t| j|S r.   r4   r   r   r<   r"   r"   r#   __and__   s    zcontainer.__and__c                 C   s   |  t|| jS r.   rZ   r<   r"   r"   r#   __rand__   s    zcontainer.__rand__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __iand__   s    zcontainer.__iand__c                 C   s   |  t| j|S r.   r4   r   r   r<   r"   r"   r#   __xor__   s    zcontainer.__xor__c                 C   s   |  t|| jS r.   r^   r<   r"   r"   r#   __rxor__   s    zcontainer.__rxor__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __ixor__   s    zcontainer.__ixor__c                 C   s   |  t| j|S r.   r4   r   r   r<   r"   r"   r#   __or__   s    zcontainer.__or__c                 C   s   |  t|| jS r.   rb   r<   r"   r"   r#   __ror__   s    zcontainer.__ror__c                 C   s   t | j|| j | S r.   )r   r   r<   r"   r"   r#   __ior__   s    zcontainer.__ior__c                 C   s   |  | jS r.   r3   r,   r"   r"   r#   __pos__   s    zcontainer.__pos__c                 C   s   |  t| jS r.   )r4   r   r   r,   r"   r"   r#   
__invert__   s    zcontainer.__invert__c                 C   s"   | j dkr|| d S tdd S )Nr   z6only rank-0 arrays can be converted to Python scalars.)r'   	TypeError)r   funcr"   r"   r#   _scalarfunc   s
    
zcontainer._scalarfuncc                 C   s
   |  tS r.   )rj   complexr,   r"   r"   r#   __complex__   s    zcontainer.__complex__c                 C   s
   |  tS r.   )rj   floatr,   r"   r"   r#   	__float__   s    zcontainer.__float__c                 C   s
   |  tS r.   )rj   intr,   r"   r"   r#   __int__   s    zcontainer.__int__c                 C   s
   |  tS r.   )rj   hexr,   r"   r"   r#   __hex__   s    zcontainer.__hex__c                 C   s
   |  tS r.   )rj   octr,   r"   r"   r#   __oct__   s    zcontainer.__oct__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __lt__   s    zcontainer.__lt__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __le__   s    zcontainer.__le__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __eq__   s    zcontainer.__eq__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __ne__   s    zcontainer.__ne__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __gt__   s    zcontainer.__gt__c                 C   s   |  t| j|S r.   )r4   r   r   r<   r"   r"   r#   __ge__   s    zcontainer.__ge__c                 C   s   |  | j S  )r4   r   r   r,   r"   r"   r#   r      s    zcontainer.copyc                 C   s
   | j  S r{   )r   tostringr,   r"   r"   r#   r}      s    zcontainer.tostringc                 C   s
   | j  S r{   )r   tobytesr,   r"   r"   r#   r~      s    zcontainer.tobytesc                 C   s   |  | j S r{   )r4   r   byteswapr,   r"   r"   r#   r      s    zcontainer.byteswapc                 C   s   |  | j|S r{   )r4   r   r/   )r   typecoder"   r"   r#   r/      s    zcontainer.astypec                 C   s"   t t|dkr|S | |S d S Nr   )r+   r   r(   )r   ar"   r"   r#   r4      s    zcontainer._rcc                 G   s   |  |d S r   )r(   )r   argsr"   r"   r#   __array_wrap__   s    zcontainer.__array_wrap__c                 C   sT   |dkrt | || d S z| j|| W n" tk
rN   t | || Y nX d S Nr   )object__setattr__r   AttributeError)r   attrr7   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__)NT)N)Fr)   
__module____qualname____doc__r$   r-   r1   r2   r6   r8   r9   r:   r>   __radd__r?   r@   rA   rB   rC   __rmul__rD   rE   rF   rG   rI   rJ   rK   rM   rN   rO   rP   rQ   rS   rU   rV   rW   rX   rY   r[   r\   r]   r_   r`   ra   rc   rd   re   rf   rg   rj   rl   rn   rp   rr   rt   ru   rv   rw   rx   ry   rz   r   r}   r~   r   r/   r4   r   r   r   r"   r"   r"   r#   r      s   


r   __main__i'  )d   r   N      
   )r   r   g      @g      @   g      )r   r   )%r   Z
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)   tempZuaprintdirZua_smalltyper"   r"   r"   r#   <module>   s"   t ~
 