
    ih$                     b   d Z ddl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)
namedtuplec                   B    e Zd Zd Zd Zd Z ej                  d      Zy)GenericObjectc                     || _         y N)v)selfr   s     a/var/www/html/dev/engine/venv/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_tabler/      s    	#3 d	G cs 	!C{{3W-S#v.S#{3S#x0$C 	! 	r   Fc                 L   t        dd       | D ]  }t        |d        t                | D ]J  }|dk(  rt        }nt        j                  |      }t        |d       | D ]	  }|dk(  rt        }	nt        j                  |      }		 |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                M 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   
obj2sctype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   *   sg   	#3 d	G !#:#GmmC(Gcs 	!Ccz'--,!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   CE==F#

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   S   s    F 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   collectionsr   r   r/   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   