
    BwgO                     n   d Z ddlZddlmZ ddlmZ  G d d      Zd Zdd	Z	d
ddddZ
edk(  r ed        eej                  d           e         ed        e         ed        e	ej                  d   ddd        e         ed        e	ej                  d   ddd        e         ed        e	ej                  d   ddd
        e         ed        e	ej                  d   ddd
        e         ed        e	ej                  d   dddd
        ed        e
d
d
d
       yy)z:Prints type-coercion tables for the built-in NumPy types

    N)
obj2sctype)
namedtuplec                   B    e Zd Zd Zd Zd Z ej                  d      Zy)GenericObjectc                     || _         y N)v)selfr	   s     Z/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/testing/print_coercion_tables.py__init__zGenericObject.__init__   s	        c                     | S r    r
   others     r   __add__zGenericObject.__add__       r   c                     | S r   r   r   s     r   __radd__zGenericObject.__radd__   r   r   ON)__name__
__module____qualname__r   r   r   npdtyper   r   r   r   r   
   s"     BHHSMEr   r   c                    t        dd       | D ]  }t        |d        t                | D ]  }t        |d       | D ]y  }t        j                  ||d      rd}nPt        j                  ||d      rd}n6t        j                  ||d      rd	}nt        j                  ||d
      rd}nd}t        |d       { t                 y )NX endequiv#safe=	same_kind~unsafe.)printr   can_cast)ntypescharrowcolcasts        r   print_cancast_tabler0      s    	#3 d	G cs 	!C{{3W-S#v.S#{3S#x0$C 	! 	r   Fc                 "   t        dd       | D ]  }t        |d        t                | D ]5  }|dk(  rt        }nt        |      }t        |d       | D ]  }|dk(  rt        }	nt        |      }		 |rt        j                   ||      g|      }
n ||      }
 |	|      }|r5t        j
                  |
j                  |j                        j                  }not        j                  |
|      }t        |t        j                        r|j                  j                  }n(t        j                  t        |            j                  }t        |d        t                8 y # t        $ r d}Y +t        $ r d}Y 7t        $ r d}Y Cw xY w)	N+r   r   r   )r   !@r"   )r)   r   r   r   arraypromote_typesr   r,   add
isinstancendarraytype
ValueErrorOverflowError	TypeError)r+   inputfirstvalueinputsecondvalue
firstarrayuse_promote_typesr,   r-   rowtyper.   coltyperowvaluecolvaluevalues                r   print_coercion_tablerG   +   s]   	#3 d	G !#:#G oGcs 	!Ccz'$S/!xx)A(B'RH&7H"#34$++HNNHNNKPPDFF8X6E!%4${{//!xxU499 $C 3	!4 	C!4     s   3CE((F5
F
FFTr*   legacyflagsc           
      2   ddl m} ddddddd}d	d
ddddddd}t        dg d      } |ddd       |       }i t               |D ]  }j	                  |d          j	                  |d          |d   vri |d   <   |d      }	||d      } |d   rdnd}d}|d   r|dz  }|d   r|dz  }|d   r|dz  }||   } || ||      |	|d   <    t
        j                  d   fd }
t        |
!      d,fd#	}| r't                t        d$       t                 |d"       |r't                t        d%       t                 |d       |r@t                t        |d    d&|d    d'|d    d(|d    d)       t                 |d*       y+y+)-z[Prints 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      rN   rO   rQ   rP         	cast_inforH   fromtocastingrI   Lrequires_pyapirN   supports_unalignedrO   no_floatingpoint_errorsrQ   Allc                     t        j                  | j                        }	 j                  |j                        }||j                  fS # t
        $ r t         j                  }Y )w xY wr   )r   r   r:   indexr,   r;   inf)xr   indxtypess      r   sorterz$print_new_cast_table.<locals>.sorter   sY      	;;uzz*D ejj!!  	66D	s   A A'&A')keyr*   c           
         t        dd       D ]6  }t        t        j                  |j                        j                  d       8 t                D ]  }t        t        j                  |j                        j                  d       j                  |i       }D ])  }t        t        |j                  |      |       d       + t                 y )Nr   r   r   )r)   r   r   r:   r,   getgetattr)fielddtfrom_dtr-   to_dtdtypesno_cast_infotables        r   print_tablez)print_new_cast_table.<locals>.print_table   s    cs 	3B"((277#((c2	3 	G"((7<<(--37))GR(C Mgcgge\:EBLM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-errorsrJ   N)r*   )	numpy._core._multiarray_testsrL   r   setr7   r   	typecodessortedr)   )r*   rI   rJ   rL   
cast_tableflags_tablerU   castsr/   to_dictrd   rp   rm   rn   ro   rc   s               @@@@r   print_new_cast_tablery   T   s    G J eUuU 	K ;(GHIS#s+L$&EEUF W

4< 

4:<u$"$E$v,V%d9o.XC !QJE$%QJE)*QJEE"'&PUVT
'W. LLE" F'F
 TUJ;<HQ [^,<IQ  6{1~6FFWY 	ZG r   __main__zcan castr]   zJIn these tables, ValueError is '!', OverflowError is '@', TypeError is '#'zscalar + scalarzscalar + neg scalarrM   zarray + scalarzarray + neg scalarr6   zNew casting type promotion:)F)__doc__numpyr   numpy._core.numerictypesr   collectionsr   r   r0   rG   ry   r   r)   rs   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   