
    G/PhO                        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    r8 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
           dS dS )z:Prints type-coercion tables for the built-in NumPy types

    N)
obj2sctype)
namedtuplec                   @    e Zd Zd Zd Zd Z ej        d          ZdS )GenericObjectc                     || _         d S N)v)selfr	   s     c/var/www/html/test/jupyter/venv/lib/python3.11/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   
   sL               BHSMMEEEr   r   c                    t          dd           | D ]}t          |d           t                       | D ]}t          |d           | D ]y}t          j        ||d          rd}nMt          j        ||d          rd}n4t          j        ||d          rd	}nt          j        ||d
          rd}nd}t          |d           zt                       d S )NX endequiv#safe=	same_kind~unsafe.)printr   can_cast)ntypescharrowcolcasts        r   print_cancast_tabler0      s   	#3  d	GGG  cs 	! 	!C{3W-- 	S#v.. S#{33 S#x00 $C      r   Fc                 @   t          dd           | D ]}t          |d           t                       | D ]d}|dk    rt          }nt          |          }t          |d           | D ]!}|dk    rt          }	nt          |          }		 |r!t          j         ||          g|          }
n ||          }
 |	|          }|r%t          j        |
j        |j                  j        }nbt          j        |
|          }t          |t          j
                  r|j        j        }n&t          j        t          |                    j        }n,# t          $ r d}Y nt          $ r d}Y nt          $ r d}Y nw xY wt          |d           #t                       fd S )	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	GGG ! !#::#GG ooGcs 	! 	!Cczz'$S// 8!x)A)A(B'RRRHH&w77H"7#344$ :+HNHNKKPDDF8X66E!%44 :${/!xU449          $C     C! !s   CEE8E8*E87E8Tr*   legacyflagsc           
      0   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 ]}                    |d                                        |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#	}| r6t                       t          d$           t                        |d"           |r6t                       t          d%           t                        |d           |r\t                       t          |d          d&|d          d'|d          d(|d          d)           t                        |d*           d+S d+S )-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                  }n# t
          $ r t           j        }Y nw xY w||j        fS r   )r   r   r:   indexr,   r;   inf)xr   indxtypess      r   sorterz$print_new_cast_table.<locals>.sorter   sc       	;;uz**DD 	 	 	6DDD	ej!!s   7 AA)keyr*   c           
         t          dd           D ]/}t          t          j        |j                  j        d           0t                       D ]}t          t          j        |j                  j        d                               |i           }D ]5}t          t          |                    |          |           d           6t                       d S )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 	3 	3B"(27##(c22222 	 	G"(7<((-37777))GR((C M Mgcgge\::EBBLLLLLGGGG	 	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FFFFF  J eUuU 	 K ;(G(G(GHHI9S#s++L$$&&EEUUF W W

4<   

4:<u$$"$E$v,V%d9o.X/C ! 	QJE$% 	QJE)* 	QJEE"'i&PUVVVT
 LE" " " " " F'''F
 
 
 
 
 
 
 
   TUUUJ ;<<<H Q Y Y[^ Y YQY Y7B1~Y Y Y 	Z 	Z 	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	E*U+,,,	EGGG	E
VWWW	EGGG	E
e,aE:::	EGGG	E
   e,aU;;;	EGGG	E
e,aD999	EGGG	E
e,aT:::	EGGG	E/e,aE4@@@	E
'((($t4@@@@@@+ r   