U C^ @s dZddlmZmZmZddlZGdddeZddZ dd d Z e d kre d e ej d e e de e de ej d ddde e de ej d ddde e de ej d ddde e de ej d ddde e de ej d dddddS)z:Prints type-coercion tables for the built-in NumPy types )divisionabsolute_importprint_functionNc@s.eZdZddZddZddZedZdS) GenericObjectcCs ||_dSN)v)selfrr F/tmp/pip-install-6_kvzl1k/numpy/numpy/testing/print_coercion_tables.py__init__ szGenericObject.__init__cCs|Srr rotherr r r __add__szGenericObject.__add__cCs|Srr r r r r __radd__szGenericObject.__radd__ON)__name__ __module__ __qualname__r rrnpdtyper r r r r srcCsjtddd|D]}t|ddqt|D]8}t|dd|D]}ttt||ddq@tq,dS)NX end)printintrZcan_cast)ntypescharrowcolr r r print_cancast_tables  r Fc CsTtddd|D]}t|ddqt|D] }|dkr@t}n t|}t|dd|D]}|dkrlt} n t|} zx|rtj||g|d} n||} | |} |rt| j| jj}n2t| | } t | tj r| jj}ntt | j}WnJt k rd}Yn2t k r d}Yntk r8d}YnXt|ddqZtq,dS) N+rrr)r!@#)rrrZ obj2sctypearray promote_typesrradd isinstanceZndarraytype ValueError OverflowError TypeError) rZinputfirstvalueZinputsecondvalueZ firstarrayZuse_promote_typesrrZrowtyperZcoltypeZrowvalueZcolvaluevaluer r r print_coercion_table!s@         r.__main__zcan castZAllzJIn these tables, ValueError is '!', OverflowError is '@', TypeError is '#'zscalar + scalarzscalar + neg scalarzarray + scalarTzarray + neg scalarr&)F)__doc__ __future__rrrZnumpyrobjectrr r.rrZ typecodesr r r r s2  )