ó
ØÆ÷Xc           @` sc  d  Z  d d l m Z m Z m Z d d l Z d e f d „  ƒ  YZ d „  Z	 e
 d „ Z e d ƒ e	 e j d	 ƒ e ƒ  e d
 ƒ e ƒ  e d ƒ e e j d	 d d e
 ƒ e ƒ  e d ƒ e e j d	 d d e
 ƒ e ƒ  e d ƒ e e j d	 d d e ƒ e ƒ  e d ƒ e e j d	 d d e ƒ e ƒ  e d ƒ e e j d	 d d e
 e ƒ d S(   s:   Prints type-coercion tables for the built-in NumPy types

i    (   t   divisiont   absolute_importt   print_functionNt   GenericObjectc           B` s2   e  Z d  „  Z d „  Z d „  Z e j d ƒ Z RS(   c         C` s   | |  _  d  S(   N(   t   v(   t   selfR   (    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   __init__   s    c         C` s   |  S(   N(    (   R   t   other(    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   __add__   s    c         C` s   |  S(   N(    (   R   R   (    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   __radd__   s    t   O(   t   __name__t
   __module__R   R   R	   t   npt   dtype(    (    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyR   
   s   			c         C` s—   t  d d d ƒx |  D] } t  | d d ƒq Wt  ƒ  xX |  D]P } t  | d d ƒx0 |  D]( } t  t t j | | ƒ ƒ d d ƒq\ Wt  ƒ  q? Wd  S(   Nt   Xt   endt    (   t   printt   intR   t   can_cast(   t   ntypest   chart   rowt   col(    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   print_cancast_table   s    &c         C` sÅ  t  d d d ƒx |  D] } t  | d d ƒq Wt  ƒ  x†|  D]~} | d k rZ t } n t j | ƒ } t  | d d ƒx:|  D]2} | d k r› t }	 n t j | ƒ }	 y² | rÔ t j | | ƒ g d | ƒ}
 n | | ƒ }
 |	 | ƒ } | rt j |
 j | j ƒ j } nK t j |
 | ƒ } t	 | t j
 ƒ rC| j j } n t j t | ƒ ƒ j } WnC t k
 rud } n- t k
 r‹d } n t k
 r¡d } n Xt  | d d ƒq€ Wt  ƒ  q? Wd  S(	   Nt   +R   R   R
   R   t   !t   @t   #(   R   R   R   t
   obj2sctypet   arrayt   promote_typesR   R   t   addt
   isinstancet   ndarrayt   typet
   ValueErrort   OverflowErrort	   TypeError(   R   t   inputfirstvaluet   inputsecondvaluet
   firstarrayt   use_promote_typesR   R   t   rowtypeR   t   coltypet   rowvaluet   colvaluet   value(    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   print_coercion_table!   s@    		!		
s   can castt   AllsJ   In these tables, ValueError is '!', OverflowError is '@', TypeError is '#'s   scalar + scalars   scalar + neg scalariÿÿÿÿs   array + scalars   array + neg scalarR    (   t   __doc__t
   __future__R    R   R   t   numpyR   t   objectR   R   t   FalseR1   R   t	   typecodest   True(    (    (    sB   /tmp/pip-build-X4mzal/numpy/numpy/testing/print_coercion_tables.pyt   <module>   s0   	(






