1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
U
P±dìã@s>dZddlZddlmZGdd„dƒZdd„Zdd    d
„Zd ddd œd d„Ze    dkr:e
dƒeej dƒe
ƒe
dƒe
ƒe
dƒeej ddddƒe
ƒe
dƒeej ddddƒe
ƒe
dƒeej dddd ƒe
ƒe
dƒeej dddd ƒe
ƒe
dƒeej ddddd ƒe
dƒed d d d dS)z:Prints type-coercion tables for the built-in NumPy types
 
éN)Ú
namedtuplec@s.eZdZdd„Zdd„Zdd„Ze d¡ZdS)    Ú GenericObjectcCs
||_dS©N)Úv)Úselfr©rúZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/testing/print_coercion_tables.pyÚ__init__
szGenericObject.__init__cCs|Srr©rÚotherrrrÚ__add__ szGenericObject.__add__cCs|Srrr
rrrÚ__radd__szGenericObject.__radd__ÚON)Ú__name__Ú
__module__Ú __qualname__r    r r ÚnpÚdtyperrrrr    srcCs²tddd|D]}t|ddqtƒ|D]€}t|dd|D]d}t ||d¡rXd}n@t ||d¡rld}n,t ||d¡r€d    }nt ||d
¡r”d }nd}t|ddq@tƒq,dS) NÚXú ©ÚendÚequivú#Úsafeú=Z    same_kindú~ÚunsafeÚ.)ÚprintrÚcan_cast)ÚntypesÚcharÚrowÚcolÚcastrrrÚprint_cancast_tables$  r&Fc
CsTtddd|D]}t|ddqtƒ|D] }|dkr@t}n
t |¡}t|dd|D]ì}|dkrlt}    n
t |¡}    zx|r’tj||ƒg|d}
n||ƒ}
|    |ƒ} |rºt |
j| j¡j}n2t |
| ¡} t    | tj
ƒrÜ| jj}nt t | ƒ¡j}WnJt k
rd}Yn2t k
r d}Yntk
r8d}YnXt|ddqZtƒq,dS)    Nú+rrr)rú!ú@r)rrrZ
obj2sctypeÚarrayÚ promote_typesrr"ÚaddÚ
isinstanceZndarrayÚtypeÚ
ValueErrorÚ OverflowErrorÚ    TypeError) r!ZinputfirstvalueZinputsecondvalueZ
firstarrayZuse_promote_typesr"r#Zrowtyper$ZcoltypeZrowvalueZcolvalueÚvaluerrrÚprint_coercion_table*s@ 
 
 
 
 
r3T©r ÚlegacyÚflagsc     sÞddlm}dddddddœ}d    d
d d d ddddœ}tddddgƒ}|dddƒ‰|ƒ}i‰tƒ‰|D]²}ˆ |d¡ˆ |d¡|dˆkrœiˆ|d<ˆ|d}    ||d}|drÀdnd}d}|drØ|dO}|drè|dO}|drø|dO}||}||||d |    |d<qdtjd!‰‡fd"d#„}
tˆ|
d$‰d.‡‡‡fd%d&„    } |rntƒtd'ƒtƒ| dƒ|rtƒtd(ƒtƒ| dƒ|rÚtƒt|d›d)|d›d*|d›d+|d›d,ƒtƒ| dƒd-S)/z[Prints new casts, the values given are default "can-cast" values, not
    actual ones.
    r)Úget_all_cast_informationrrrrr)éÿÿÿÿrééééu▗u█u▚u▐u▄u▜u▙u▟)rér9r:r<r;ééÚ    cast_infor r5r6ÚfromÚtoZcastingÚLZrequires_pyapir9Zsupports_unalignedr:Zno_floatingpoint_errorsr<r4ÚAllcsBt |j¡}zˆ |j¡}Wntk
r6tj}YnX||jfSr)rrr.Úindexr"r/Úinf)ÚxrZindx)ÚtypesrrÚsorter†s   z$print_new_cast_table.<locals>.sorter)ÚkeycsŒtdddˆD]}tt |j¡jddqtƒˆD]P}tt |j¡jddˆ |i¡}ˆD]}tt| |ˆ¡|ƒddq`tƒq6dS)Nrrr)rrrr.r"ÚgetÚgetattr)ÚfieldÚdtZfrom_dtr#Zto_dt)ÚdtypesÚ no_cast_infoÚtablerrÚ print_table’s  z)print_new_cast_table.<locals>.print_tablezDCasting: # 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-errorsN)r )    Znumpy.core._multiarray_testsr7rÚsetr,rÚ    typecodesÚsortedr) r r5r6r7Z
cast_tableZ flags_tabler@Zcastsr%Úto_dictrIrRr)rOrPrQrHrÚprint_new_cast_tableSst ú    ü     
 
 0rWÚ__main__zcan castrDzJIn these tables, ValueError is '!', OverflowError is '@', TypeError is '#'zscalar + scalarzscalar + neg scalarr8zarray + scalarzarray + neg scalarr+zNew casting type promotion:)F) Ú__doc__ÚnumpyrÚ collectionsrrr&r3rWrrrTrrrrÚ<module>s8  
)`