
    KhO                     n   S r SSKrSSKJr  SSKJr   " S S5      rS rSS	 jr	S
SSS.S jr
\S:X  Ga  \" S5        \" \R                  S   5        \" 5         \" S5        \" 5         \" S5        \	" \R                  S   SSS5        \" 5         \" S5        \	" \R                  S   SSS5        \" 5         \" S5        \	" \R                  S   SSS
5        \" 5         \" S5        \	" \R                  S   SSS
5        \" 5         \" S5        \	" \R                  S   SSSS
5        \" S5        \
" S
S
S
S9  gg)z:Prints type-coercion tables for the built-in NumPy types

    N)
obj2sctype)
namedtuplec                   J    \ rS rSrS rS rS r\R                  " S5      rSr	g)GenericObject
   c                     Xl         g Nv)selfr   s     U/var/www/html/env/lib/python3.13/site-packages/numpy/testing/print_coercion_tables.py__init__GenericObject.__init__   s        c                     U $ r	    r   others     r   __add__GenericObject.__add__       r   c                     U $ r	   r   r   s     r   __radd__GenericObject.__radd__   r   r   Or
   N)
__name__
__module____qualname____firstlineno__r   r   r   npdtype__static_attributes__r   r   r   r   r   
   s      HHSMEr   r   c                    [        SSS9  U  H  n[        USS9  M     [        5         U  H  n[        USS9  U  H  n[        R                  " X#S5      (       a  SnO_[        R                  " X#S5      (       a  SnO@[        R                  " X#S5      (       a  S	nO![        R                  " X#S
5      (       a  SnOSn[        USS9  M     [        5         M     g )NX endequiv#safe=	same_kind~unsafe.)printr    can_cast)ntypescharrowcolcasts        r   print_cancast_tabler7      s    	#3d 	GcsC{{3W--Sv..S{33Sx00$C   	 r   Fc                 B   [        SSS9  U  H  n[        USS9  M     [        5         U  GHE  nUS:X  a  [        nO[        U5      n[        USS9  U  GH  nUS:X  a  [        n	O[        U5      n	 U(       a  [        R                  " U" U5      /US9n
OU" U5      n
U	" U5      nU(       a6  [        R
                  " U
R                  UR                  5      R                  nOv[        R                  " X5      n[        U[        R                  5      (       a  UR                  R                  nO*[        R                  " [        U5      5      R                  n [        USS9  GM     [        5         GMH     g ! [         a    Sn N-[         a    Sn N:[         a    Sn NGf = f)	N+r%   r&   r   )r!   !@r)   )r0   r   r   r    arraypromote_typesr!   r3   add
isinstancendarraytype
ValueErrorOverflowError	TypeError)r2   inputfirstvalueinputsecondvalue
firstarrayuse_promote_typesr3   r4   rowtyper5   coltyperowvaluecolvaluevalues                r   print_coercion_tablerN   +   sO   	#3d 	G#:#G oGcsCcz'$S/!xx)A(B'RH&7H"#34$++HNNHNNKPPDFF86E!%44${{//!xxU499 $C 3 4 	C 4     s,   /A0E5 AE5,)E55FFFFTr1   legacyflagsc           
      r  ^^^^ SSK Jn  SSSSSSS.nS	S
SSSSSSS.n[        S/ SQ5      nU" SSS5      mU" 5       n0 m[        5       mU H  nTR	                  US   5        TR	                  US   5        US   T;  a  0 TUS   '   TUS      n	XHS      n US   (       a  SOSnSnUS   (       a  US-  nUS   (       a  US-  nUS   (       a  US-  nXR   nU" XUS9XS   '   M     [
        R                  S   mU4S  jn
[        TU
S!9mS,UUU4S# jjnU (       a'  [        5         [        S$5        [        5         U" S"5        U(       a'  [        5         [        S%5        [        5         U" S5        U(       a@  [        5         [        US    S&US    S'US    S(US    S)35        [        5         U" S*5        g+g+)-zSPrints new casts, the values given are default "can-cast" values, not
actual ones.
r   )get_all_cast_informationr%   r)   r+   r-   r/   )r               u   ▗u   █u   ▚u   ▐u   ▄u   ▜u   ▙u   ▟)r      rU   rV   rX   rW         	cast_inforO   fromtocastingrP   Lrequires_pyapirU   supports_unalignedrV   no_floatingpoint_errorsrX   Allc                    > [         R                  " U R                  5      n TR                  UR                  5      nX!R                  4$ ! [
         a    [         R                  n N)f = fr	   )r    r!   rA   indexr3   rB   inf)xr!   indxtypess      r   sorter$print_new_cast_table.<locals>.sorter   sW      	;;uzz*D jj!!  	66D	s   A A('A()keyr1   c           
        > [        SSS9  T H5  n[        [        R                  " UR                  5      R                  SS9  M7     [        5         T H~  n[        [        R                  " UR                  5      R                  SS9  TR                  U0 5      nT H'  n[        [        UR                  UT5      U 5      SS9  M)     [        5         M     g )Nr$   r%   r&   )r0   r    r!   rA   r3   getgetattr)fielddtfrom_dtr4   to_dtdtypesno_cast_infotables        r   print_table)print_new_cast_table.<locals>.print_table   s    csB"((277#((c2 G"((7<<(--37))GR(Cgcgge\:EBL  G r   zDCasting: # is equivalent, = is safe, ~ is same-kind, and . is unsafez+L denotes a legacy cast . a non-legacy one.z: no flags, z	: PyAPI, z: supports unaligned, z: no-float-errorsrQ   N)r1   )	numpy._core._multiarray_testsrS   r   setr>   r    	typecodessortedr0   )r1   rP   rQ   rS   
cast_tableflags_tabler\   castsr6   to_dictrk   rx   ru   rv   rw   rj   s               @@@@r   print_new_cast_tabler   T   s    G J eUuU 	K ;(GHIS#s+L$&EEUF

4< 

4:<u$"$E$v,V%9o.XC !QJE$%QJE)*QJE"'PUVT
' . LLE" F'F
 
 TUJ;<HQ [^,<IQ  6{1~6FFWY 	ZG r   __main__zcan castrd   zJIn these tables, ValueError is '!', OverflowError is '@', TypeError is '#'zscalar + scalarzscalar + neg scalarrT   zarray + scalarzarray + neg scalarr=   zNew casting type promotion:)F)__doc__numpyr    numpy._core.numerictypesr   collectionsr   r   r7   rN   r   r   r0   r|   r   r   r   <module>r      s?    / "
 
*&R &*%u ]@ z	*U+,	G	
VW	G	
e,aE:	G	
 e,aU;	G	
e,aD9	G	
e,aT:	G	/e,aE4@	
'($t4@+ r   