zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
U
O±d[ã@sNdZdgZddlZddlZddlZddlZddlZddlZddlm    Z    d!dd„Z
d"d    d
„Z d#d d „Z d$d d„Z Gdd„dƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZej d¡rÞeZnfej d¡ròeZnRejdkreZn@ej d¡reZn,ej d¡r,eZnej d ¡r@eZneZeƒZdS)%aa
cpuinfo
 
Copyright 2002 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@cens.ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy (BSD style) license.  See LICENSE.txt that came with
this distribution for specifics.
 
NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
Pearu Peterson
 
ÚcpuéN)Úgetstatusoutput©réc
Csvzt|ƒ\}}Wn<tk
rL}ztjt|ƒt|dWY¢dSd}~XYnXt |¡rnt |¡|krnd|fSd|fS)N©Ú
stacklevel)FÚTF)    rÚOSErrorÚwarningsÚwarnÚstrÚ UserWarningÚosÚ    WIFEXITEDÚ WEXITSTATUS)ÚcmdÚsuccessful_statusrÚstatusÚoutputÚe©rúNd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/distutils/cpuinfo.pyÚ    getoutputsrcKs<i}|D].}t||||dd\}}|r| ¡||<q|S©Nr©rr)rÚstrip)rrÚkwÚinfoÚkeyÚokrrrrÚ command_info%s
ÿ
r ccs:t|||dd\}}|sdS| ¡D]}| ¡Vq&dSr)rÚ
splitlinesr)rrrrrÚlinerrrÚcommand_by_line.sÿ
 r#cCsRi}t|||ddD]6}dd„| |d¡Dƒ}t|ƒdkr|d||d<q|S)NrrcSsg|] }| ¡‘qSr©r©Ú.0ÚsrrrÚ
<listcomp>;sz*key_value_from_command.<locals>.<listcomp>ér)r#ÚsplitÚlen)rÚseprrÚdr"ÚlrrrÚkey_value_from_command6sÿ
 r/c@s@eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dS)Ú CPUInfoBasezkHolds CPU information and provides methods for requiring
    the availability of various CPU features.
    cCs"z|ƒWStk
rYnXdS©N)Ú    Exception)ÚselfÚfuncrrrÚ    _try_callEszCPUInfoBase._try_callcCsX| d¡sLt|d|ƒrDt|d|ƒ}t|tjƒrL|j|fdd„Sndd„St|ƒ‚dS)NÚ_cSs||ƒSr1r)r4ÚattrrrrÚ<lambda>Póz)CPUInfoBase.__getattr__.<locals>.<lambda>cSsdSr1rrrrrr8Rr9)Ú
startswithÚhasattrÚgetattrÚ
isinstanceÚtypesÚ
MethodTyper5ÚAttributeError)r3Únamer7rrrÚ __getattr__Ks
 zCPUInfoBase.__getattr__cCsdS©Nrr©r3rrrÚ    _getNCPUsUszCPUInfoBase._getNCPUscCs&t ¡d}t d¡ |¡ d¡}|S)Nrz(\d+)bitr)ÚplatformÚ architectureÚreÚcompileÚsearchÚgroup)r3ZabitsÚnbitsrrrZ __get_nbitsXs zCPUInfoBase.__get_nbitscCs | ¡dkS)NÚ32©Ú_CPUInfoBase__get_nbitsrDrrrÚ    _is_32bit]szCPUInfoBase._is_32bitcCs | ¡dkS)NÚ64rNrDrrrÚ    _is_64bit`szCPUInfoBase._is_64bitN)
Ú__name__Ú
__module__Ú __qualname__Ú__doc__r5rBrErOrPrRrrrrr0@s
r0c@sˆeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZeZd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Z d:d;„Z!d<d=„Z"d>d?„Z#d@dA„Z$dBdC„Z%dDdE„Z&dFdG„Z'e'Z(dHdI„Z)dJdK„Z*dLdM„Z+dNdO„Z,dPdQ„Z-dRdS„Z.dTdU„Z/dVdW„Z0dXdY„Z1dZd[„Z2d\d]„Z3dS)^Ú LinuxCPUInfoNc
 
Csè|jdk    rdSig}tdƒ\}}|r4| ¡|dd<z tdƒ}Wn6tk
rv}ztjt|ƒtddW5d}~XYnfX|D]V}dd„|     d    d
¡Dƒ}t
|ƒdkr¤q||\}}    |r¼||d krÆ|  i¡|    |d |<q||  ¡||j _dS) Nzuname -mrZuname_mz /proc/cpuinfor)rcSsg|] }| ¡‘qSrr$r%rrrr(tsz)LinuxCPUInfo.__init__.<locals>.<listcomp>ú:réÿÿÿÿ)rrrÚopenr    r
r r r r*r+ÚappendÚcloseÚ    __class__)
r3rrrÚforr"Ú
name_valuerAÚvaluerrrÚ__init__gs(
  & 
zLinuxCPUInfo.__init__cCsdSr1rrDrrrÚ    _not_impl~r9zLinuxCPUInfo._not_implcCs|jdddkS)NrÚ    vendor_idÚ AuthenticAMD©rrDrrrÚ_is_AMD‚szLinuxCPUInfo._is_AMDcCs| ¡o|jdddkS)NrÚmodelÚ2©rfrrDrrrÚ_is_AthlonK6_2…szLinuxCPUInfo._is_AthlonK6_2cCs| ¡o|jdddkS)NrrgÚ3rirDrrrÚ_is_AthlonK6_3ˆszLinuxCPUInfo._is_AthlonK6_3cCst d|jdd¡dk    S)Nz    .*?AMD-K6rú
model name©rHÚmatchrrDrrrÚ _is_AthlonK6‹szLinuxCPUInfo._is_AthlonK6cCst d|jdd¡dk    S)Nz    .*?AMD-K7rrmrnrDrrrÚ _is_AthlonK7ŽszLinuxCPUInfo._is_AthlonK7cCst d|jdd¡dk    S)Nz.*?Athlon\(tm\) MP\brrmrnrDrrrÚ _is_AthlonMP‘s
 ÿÿzLinuxCPUInfo._is_AthlonMPcCs| ¡o|jdddkS)NrÚfamilyÚ15©Úis_AMDrrDrrrÚ    _is_AMD64•szLinuxCPUInfo._is_AMD64cCst d|jdd¡dk    S)Nz.*?Athlon\(tm\) 64\brrmrnrDrrrÚ _is_Athlon64˜s
 ÿÿzLinuxCPUInfo._is_Athlon64cCst d|jdd¡dk    S)Nz.*?Athlon HX\brrmrnrDrrrÚ _is_AthlonHXœs
 ÿÿzLinuxCPUInfo._is_AthlonHXcCst d|jdd¡dk    S)Nz .*?Opteron\brrmrnrDrrrÚ _is_Opteron s
 ÿÿzLinuxCPUInfo._is_OpteroncCst d|jdd¡dk    S)Nz .*?Hammer\brrmrnrDrrrÚ
_is_Hammer¤s
 ÿÿzLinuxCPUInfo._is_HammercCs|jdddkS)NrrÚAlpharerDrrrÚ    _is_AlphaªszLinuxCPUInfo._is_AlphacCs| ¡o|jdddkS)Nrú    cpu modelZEV4©Zis_AlpharrDrrrÚ_is_EV4­szLinuxCPUInfo._is_EV4cCs| ¡o|jdddkS)Nrr~ZEV5rrDrrrÚ_is_EV5°szLinuxCPUInfo._is_EV5cCs| ¡o|jdddkS)Nrr~ZEV56rrDrrrÚ_is_EV56³szLinuxCPUInfo._is_EV56cCs| ¡o|jdddkS)Nrr~ZPCA56rrDrrrÚ    _is_PCA56¶szLinuxCPUInfo._is_PCA56cCs|jdddkS)NrrcÚ GenuineIntelrerDrrrÚ    _is_Intel¾szLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486rerDrrrÚ_is_i486ÁszLinuxCPUInfo._is_i486cCs| ¡o|jdddkS)Nrú
cpu familyÚ5©Úis_IntelrrDrrrÚ_is_i586ÄszLinuxCPUInfo._is_i586cCs| ¡o|jdddkS)Nrr‡Ú6r‰rDrrrÚ_is_i686ÇszLinuxCPUInfo._is_i686cCst d|jdd¡dk    S)Nz
.*?CeleronrrmrnrDrrrÚ _is_CeleronÊs
 ÿÿzLinuxCPUInfo._is_CeleroncCst d|jdd¡dk    S)Nz
.*?PentiumrrmrnrDrrrÚ _is_PentiumÎs
 ÿÿzLinuxCPUInfo._is_PentiumcCst d|jdd¡dk    S)Nz.*?Pentium.*?II\brrmrnrDrrrÚ _is_PentiumIIÒs
 ÿÿzLinuxCPUInfo._is_PentiumIIcCst d|jdd¡dk    S)Nz.*?PentiumPro\brrmrnrDrrrÚ_is_PentiumProÖs
 ÿÿzLinuxCPUInfo._is_PentiumProcCst d|jdd¡dk    S)Nz.*?Pentium.*?MMX\brrmrnrDrrrÚ_is_PentiumMMXÚs
 ÿÿzLinuxCPUInfo._is_PentiumMMXcCst d|jdd¡dk    S)Nz.*?Pentium.*?III\brrmrnrDrrrÚ_is_PentiumIIIÞs
 ÿÿzLinuxCPUInfo._is_PentiumIIIcCst d|jdd¡dk    S)Nz.*?Pentium.*?(IV|4)\brrmrnrDrrrÚ _is_PentiumIVâs
 ÿÿzLinuxCPUInfo._is_PentiumIVcCst d|jdd¡dk    S)Nz.*?Pentium.*?M\brrmrnrDrrrÚ _is_PentiumMæs
 ÿÿzLinuxCPUInfo._is_PentiumMcCs| ¡o| ¡Sr1)Z is_PentiumIVÚhas_sse3rDrrrÚ _is_PrescottêszLinuxCPUInfo._is_PrescottcCsX| ¡oV|jdddks,|jdddkoV| ¡oV| ¡ oVt d|jdd¡dk    S)Nrr‡rŒrtz    .*?\blm\bÚflags)rŠrr–Z    has_ssse3rHrorDrrrÚ
_is_NoconaísþýüzLinuxCPUInfo._is_NoconacCs*| ¡o(| ¡o(t d|jdd¡dk    S)Nz.*?Core\(TM\)2\brrm)Zis_64bitrŠrHrorrDrrrÚ    _is_Core2ôs ÿÿÿzLinuxCPUInfo._is_Core2cCst d|jdd¡dk    S)Nz .*?Itanium\brrsrnrDrrrÚ _is_Itaniumùs
 ÿÿzLinuxCPUInfo._is_ItaniumcCst d|jddtj¡dk    S)Nz    .*?XEON\brrm)rHrorÚ
IGNORECASErDrrrÚ_is_XEONýs  ÿÿzLinuxCPUInfo._is_XEONcCst|jƒdkSrC©r+rrDrrrÚ _is_singleCPUszLinuxCPUInfo._is_singleCPUcCs
t|jƒSr1ržrDrrrrEszLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugÚyesrerDrrrÚ _has_fdiv_bug szLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugr rerDrrrÚ _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCst d|jdd¡dk    S)Nz
.*?\bmmx\brr˜rnrDrrrÚ_has_mmxszLinuxCPUInfo._has_mmxcCst d|jdd¡dk    S)Nz
.*?\bsse\brr˜rnrDrrrÚ_has_sseszLinuxCPUInfo._has_ssecCst d|jdd¡dk    S)Nz .*?\bsse2\brr˜rnrDrrrÚ    _has_sse2szLinuxCPUInfo._has_sse2cCst d|jdd¡dk    S)Nz
.*?\bpni\brr˜rnrDrrrÚ    _has_sse3szLinuxCPUInfo._has_sse3cCst d|jdd¡dk    S)Nz .*?\bssse3\brr˜rnrDrrrÚ
_has_ssse3szLinuxCPUInfo._has_ssse3cCst d|jdd¡dk    S)Nz .*?\b3dnow\brr˜rnrDrrrÚ
_has_3dnow szLinuxCPUInfo._has_3dnowcCst d|jdd¡dk    S)Nz.*?\b3dnowext\brr˜rnrDrrrÚ _has_3dnowext#szLinuxCPUInfo._has_3dnowext)4rSrTrUrrarbrfrjrlrprqrrrwrxryrzr{r}r€rr‚rƒÚ_is_i386r…r†r‹rrŽrrr‘r’r“r”r•r—r™ršr›rZ_is_XeonrŸrEr¡r¢r£r¤r¥r¦r§r¨r©rrrrrWcsbrWc@s8eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Z d<d=„Z!d>d?„Z"d@dA„Z#dBdC„Z$dDdE„Z%dFdG„Z&dHdI„Z'dJdK„Z(dS)LÚ IRIXCPUInfoNcCs(|jdk    rdStdddd}||j_dS)NZsysconfú )rr)r,r)rr/r]©r3rrrrra)s 
ÿzIRIXCPUInfo.__init__cCsdSr1rrDrrrrb0r9zIRIXCPUInfo._not_implcCs|j d¡dkS)NÚNUM_PROCESSORSÚ1)rÚgetrDrrrrŸ2szIRIXCPUInfo._is_singleCPUcCst|j dd¡ƒS)Nr®r©Úintrr°rDrrrrE5szIRIXCPUInfo._getNCPUscCs |j d¡ ¡d ¡d|kS)NZ
PROCESSORSrzr%s)rr°r*Úlower©r3ÚnrrrZ    __cputype8szIRIXCPUInfo.__cputypecCs
| d¡S)NiЩÚ_IRIXCPUInfo__cputyperDrrrÚ    _is_r2000:r9zIRIXCPUInfo._is_r2000cCs
| d¡S)Ni¸ r¶rDrrrÚ    _is_r3000;r9zIRIXCPUInfo._is_r3000cCs
| d¡S)Ni<r¶rDrrrÚ    _is_r3900<r9zIRIXCPUInfo._is_r3900cCs
| d¡S)Ni r¶rDrrrÚ    _is_r4000=r9zIRIXCPUInfo._is_r4000cCs
| d¡S)Nir¶rDrrrÚ    _is_r4100>r9zIRIXCPUInfo._is_r4100cCs
| d¡S)NiÌr¶rDrrrÚ    _is_r4300?r9zIRIXCPUInfo._is_r4300cCs
| d¡S)Ni0r¶rDrrrÚ    _is_r4400@r9zIRIXCPUInfo._is_r4400cCs
| d¡S)Niør¶rDrrrÚ    _is_r4600Ar9zIRIXCPUInfo._is_r4600cCs
| d¡S)Ni*r¶rDrrrÚ    _is_r4650Br9zIRIXCPUInfo._is_r4650cCs
| d¡S)Niˆr¶rDrrrÚ    _is_r5000Cr9zIRIXCPUInfo._is_r5000cCs
| d¡S)Nipr¶rDrrrÚ    _is_r6000Dr9zIRIXCPUInfo._is_r6000cCs
| d¡S)Ni@r¶rDrrrÚ    _is_r8000Er9zIRIXCPUInfo._is_r8000cCs
| d¡S)Ni'r¶rDrrrÚ
_is_r10000Fr9zIRIXCPUInfo._is_r10000cCs
| d¡S)Nià.r¶rDrrrÚ
_is_r12000Gr9zIRIXCPUInfo._is_r12000cCs
| d¡S)NZorionr¶rDrrrÚ
_is_rorionHr9zIRIXCPUInfo._is_rorioncCs(z|j d¡WStk
r"YnXdS)NÚMACHINE)rr°r2rDrrrÚget_ipJszIRIXCPUInfo.get_ipcCs|j d¡ ¡d|kS)NrÇzip%s)rr°r³r´rrrÚ    __machineMszIRIXCPUInfo.__machinecCs
| d¡S)Né©Ú_IRIXCPUInfo__machinerDrrrÚ_is_IP19Or9zIRIXCPUInfo._is_IP19cCs
| d¡S)NérËrDrrrÚ_is_IP20Pr9zIRIXCPUInfo._is_IP20cCs
| d¡S)NérËrDrrrÚ_is_IP21Qr9zIRIXCPUInfo._is_IP21cCs
| d¡S©NérËrDrrrÚ_is_IP22Rr9zIRIXCPUInfo._is_IP22cCs| d¡o| ¡SrÒ)rÌr»rDrrrÚ _is_IP22_4kSr9zIRIXCPUInfo._is_IP22_4kcCs| d¡o| ¡SrÒ©rÌrÁrDrrrÚ _is_IP22_5kTr9zIRIXCPUInfo._is_IP22_5kcCs
| d¡S)NérËrDrrrÚ_is_IP24Ur9zIRIXCPUInfo._is_IP24cCs
| d¡S)NérËrDrrrÚ_is_IP25Vr9zIRIXCPUInfo._is_IP25cCs
| d¡S)NérËrDrrrÚ_is_IP26Wr9zIRIXCPUInfo._is_IP26cCs
| d¡S)NérËrDrrrÚ_is_IP27Xr9zIRIXCPUInfo._is_IP27cCs
| d¡S)NérËrDrrrÚ_is_IP28Yr9zIRIXCPUInfo._is_IP28cCs
| d¡S)NérËrDrrrÚ_is_IP30Zr9zIRIXCPUInfo._is_IP30cCs
| d¡S©Né rËrDrrrÚ_is_IP32[r9zIRIXCPUInfo._is_IP32cCs| d¡o| ¡SrärÖrDrrrÚ _is_IP32_5k\r9zIRIXCPUInfo._is_IP32_5kcCs| d¡o| ¡Srä)rÌrÄrDrrrÚ _is_IP32_10k]r9zIRIXCPUInfo._is_IP32_10k))rSrTrUrrarbrŸrEr·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÈrÌrÍrÏrÑrÔrÕr×rÙrÛrÝrßrárãrærçrèrrrrr«&sLr«c@sØeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„ZdS)4Ú DarwinCPUInfoNcCs6|jdk    rdStddd}tddd|d<||j_dS)NÚarchÚmachine)rêrëz    sysctl hwú=©r,Ú    sysctl_hw)rr r/r]r­rrrracs
ÿzDarwinCPUInfo.__init__cCsdSr1rrDrrrrbkr9zDarwinCPUInfo._not_implcCst|jd dd¡ƒS)Nrîzhw.ncpurr±rDrrrrEmszDarwinCPUInfo._getNCPUscCs|jdddkS)Nrîz
hw.machinezPower MacintoshrerDrrrÚ_is_Power_Macintoshpsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)NrêÚi386rerDrrrrªsszDarwinCPUInfo._is_i386cCs|jddkS)NrêÚppcrerDrrrÚ_is_ppcuszDarwinCPUInfo._is_ppccCs|jdd|kS)Nrëzppc%srer´rrrrÉxszDarwinCPUInfo.__machinecCs
| d¡S)NiY©Ú_DarwinCPUInfo__machinerDrrrÚ
_is_ppc601zr9zDarwinCPUInfo._is_ppc601cCs
| d¡S)NiZrórDrrrÚ
_is_ppc602{r9zDarwinCPUInfo._is_ppc602cCs
| d¡S)Ni[rórDrrrÚ
_is_ppc603|r9zDarwinCPUInfo._is_ppc603cCs
| d¡S)NZ603erórDrrrÚ _is_ppc603e}r9zDarwinCPUInfo._is_ppc603ecCs
| d¡S)Ni\rórDrrrÚ
_is_ppc604~r9zDarwinCPUInfo._is_ppc604cCs
| d¡S)NZ604erórDrrrÚ _is_ppc604er9zDarwinCPUInfo._is_ppc604ecCs
| d¡S)NilrórDrrrÚ
_is_ppc620€r9zDarwinCPUInfo._is_ppc620cCs
| d¡S)NivrórDrrrÚ
_is_ppc630r9zDarwinCPUInfo._is_ppc630cCs
| d¡S)NiärórDrrrÚ
_is_ppc740‚r9zDarwinCPUInfo._is_ppc740cCs
| d¡S)NièrórDrrrÚ _is_ppc7400ƒr9zDarwinCPUInfo._is_ppc7400cCs
| d¡S)NirórDrrrÚ _is_ppc7450„r9zDarwinCPUInfo._is_ppc7450cCs
| d¡S)NiîrórDrrrÚ
_is_ppc750…r9zDarwinCPUInfo._is_ppc750cCs
| d¡S)Ni“rórDrrrÚ
_is_ppc403†r9zDarwinCPUInfo._is_ppc403cCs
| d¡S)NiùrórDrrrÚ
_is_ppc505‡r9zDarwinCPUInfo._is_ppc505cCs
| d¡S)Ni!rórDrrrÚ
_is_ppc801ˆr9zDarwinCPUInfo._is_ppc801cCs
| d¡S)Ni5rórDrrrÚ
_is_ppc821‰r9zDarwinCPUInfo._is_ppc821cCs
| d¡S)Ni7rórDrrrÚ
_is_ppc823Šr9zDarwinCPUInfo._is_ppc823cCs
| d¡S)Ni\rórDrrrÚ
_is_ppc860‹r9zDarwinCPUInfo._is_ppc860)rSrTrUrrarbrErïrªròrôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrrrré`s4réc@sØeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„ZdS)4Ú SunOSCPUInfoNcCsl|jdk    rdStdddddd}tddd    |d
<td ƒD]&}t d |¡}|r8| d ¡|d<q`q8||j_dS)NrêÚmachÚuname_iz
isainfo -bz
isainfo -n)rêrr    Z    isainfo_bÚ    isainfo_nzuname -XrìríÚuname_Xz psrinfo -v 0z+\s*The (?P<p>[\w\d]+) processor operates atÚpÚ    processor)rr r/r#rHrorKr])r3rr"Úmrrrra’s
ü  zSunOSCPUInfo.__init__cCsdSr1rrDrrrrb£r9zSunOSCPUInfo._not_implcCs|jddkS)Nr
rðrerDrrrrª¥szSunOSCPUInfo._is_i386cCs|jddkS)Nr
ZsparcrerDrrrÚ    _is_sparc§szSunOSCPUInfo._is_sparccCs|jddkS)Nr
Úsparcv9rerDrrrÚ _is_sparcv9©szSunOSCPUInfo._is_sparcv9cCst|jd dd¡ƒS)Nr ZNumCPUrr±rDrrrrE¬szSunOSCPUInfo._getNCPUscCs|jddkS)NrêZsun4rerDrrrÚ_is_sun4¯szSunOSCPUInfo._is_sun4cCst d|jd¡dk    S)NZSUNWr    rnrDrrrÚ_is_SUNW²szSunOSCPUInfo._is_SUNWcCst d|jd¡dk    S)Nz.*SPARCstation-5r    rnrDrrrÚ_is_sparcstation5´szSunOSCPUInfo._is_sparcstation5cCst d|jd¡dk    S)Nz    .*Ultra-1r    rnrDrrrÚ
_is_ultra1¶szSunOSCPUInfo._is_ultra1cCst d|jd¡dk    S)Nz .*Ultra-250r    rnrDrrrÚ _is_ultra250¸szSunOSCPUInfo._is_ultra250cCst d|jd¡dk    S)Nz    .*Ultra-2r    rnrDrrrÚ
_is_ultra2ºszSunOSCPUInfo._is_ultra2cCst d|jd¡dk    S)Nz
.*Ultra-30r    rnrDrrrÚ _is_ultra30¼szSunOSCPUInfo._is_ultra30cCst d|jd¡dk    S)Nz    .*Ultra-4r    rnrDrrrÚ
_is_ultra4¾szSunOSCPUInfo._is_ultra4cCst d|jd¡dk    S)Nz .*Ultra-5_10r    rnrDrrrÚ _is_ultra5_10ÀszSunOSCPUInfo._is_ultra5_10cCst d|jd¡dk    S)Nz    .*Ultra-5r    rnrDrrrÚ
_is_ultra5ÂszSunOSCPUInfo._is_ultra5cCst d|jd¡dk    S)Nz
.*Ultra-60r    rnrDrrrÚ _is_ultra60ÄszSunOSCPUInfo._is_ultra60cCst d|jd¡dk    S)Nz
.*Ultra-80r    rnrDrrrÚ _is_ultra80ÆszSunOSCPUInfo._is_ultra80cCst d|jd¡dk    S)Nz.*Ultra-Enterpriser    rnrDrrrÚ_is_ultraenterpriceÈsz SunOSCPUInfo._is_ultraenterpricecCst d|jd¡dk    S)Nz.*Ultra-Enterprise-10000r    rnrDrrrÚ_is_ultraenterprice10kÊsz#SunOSCPUInfo._is_ultraenterprice10kcCst d|jd¡dk    S)Nz
.*Sun-Firer    rnrDrrrÚ _is_sunfireÌszSunOSCPUInfo._is_sunfirecCst d|jd¡dk    S)Nz.*Ultrar    rnrDrrrÚ    _is_ultraÎszSunOSCPUInfo._is_ultracCs|jddkS)Nr Zsparcv7rerDrrrÚ_is_cpusparcv7ÑszSunOSCPUInfo._is_cpusparcv7cCs|jddkS)Nr Zsparcv8rerDrrrÚ_is_cpusparcv8ÓszSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nr rrerDrrrÚ_is_cpusparcv9ÕszSunOSCPUInfo._is_cpusparcv9)rSrTrUrrarbrªrrrErrrrrrrrrrrrrrr r!r"r#r$rrrrrŽs4rc@s eZdZdZdZdd„Zdd„Zdd„Zd    d
„Zd d „Z    d d„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Z d;d<„Z!d=d>„Z"d?d@„Z#dS)AÚ Win32CPUInfoNz,HARDWARE\DESCRIPTION\System\CentralProcessorc
Cst|jdk    rdSg}z$ddl}t dtj¡}| |j|j¡}d}z| ||¡}Wn|j    k
rlYq6Yq@X|d7}| 
d|i¡| ||¡}d}z|  ||¡\}    }
} Wn|j    k
rÄYq@Yq”X|d}|
|d|    <|    dkr”|  |
¡} | r”t |  d¡ƒ|dd<t |  d    ¡ƒ|dd
<t |  d ¡ƒ|dd <q”q@Wn.tk
rf} zt| d ƒW5d} ~ XYnX||j_dS)NrzFfamily\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)\s+stepping\s+(?P<STP>\d+)rZ    ProcessorrYZ
IdentifierZFMLÚFamilyZMDLÚModelZSTPZSteppingz
(ignoring))rÚwinregrHrIrœÚOpenKeyÚHKEY_LOCAL_MACHINEÚpkeyÚEnumKeyÚerrorr[Ú    EnumValuerJr²rKr2Úprintr])r3rr(ZprgxZchndZpnumÚprocZphndZpidxrAr`ZvtpeZsrchrrrrraàsB
ÿ  
 
zWin32CPUInfo.__init__cCsdSr1rrDrrrrbr9zWin32CPUInfo._not_implcCs|jdddkS)NrÚVendorIdentifierrdrerDrrrrf szWin32CPUInfo._is_AMDcCs| ¡o|jdddkS©Nrr&érurDrrrÚ    _is_Am486szWin32CPUInfo._is_Am486cCs| ¡o|jdddkSr2rurDrrrÚ
_is_Am5x86szWin32CPUInfo._is_Am5x86cCs,| ¡o*|jdddko*|jdddkS)Nrr&ér')rrr)érurDrrrÚ    _is_AMDK5sÿzWin32CPUInfo._is_AMDK5cCs,| ¡o*|jdddko*|jdddkS)Nrr&r6r')éérurDrrrÚ    _is_AMDK6sÿzWin32CPUInfo._is_AMDK6cCs,| ¡o*|jdddko*|jdddkS)Nrr&r6r'érurDrrrÚ _is_AMDK6_2sÿzWin32CPUInfo._is_AMDK6_2cCs,| ¡o*|jdddko*|jdddkS)Nrr&r6r'é    rurDrrrÚ _is_AMDK6_3!sÿzWin32CPUInfo._is_AMDK6_3cCs| ¡o|jdddkS©Nrr&r9rurDrrrÚ    _is_AMDK7%szWin32CPUInfo._is_AMDK7cCs| ¡o|jdddkS©Nrr&érurDrrrrw,szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrr1r„rerDrrrr…1szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr&r7rerDrrrrª4szWin32CPUInfo._is_i386cCs|jdddkSr2rerDrrrr†7szWin32CPUInfo._is_i486cCs| ¡o|jdddkS©Nrr&r6r‰rDrrrr‹:szWin32CPUInfo._is_i586cCs| ¡o|jdddkSr@r‰rDrrrr=szWin32CPUInfo._is_i686cCs| ¡o|jdddkSrDr‰rDrrrr@szWin32CPUInfo._is_PentiumcCs,| ¡o*|jdddko*|jdddkS)Nrr&r6r'r3r‰rDrrrr’CsÿzWin32CPUInfo._is_PentiumMMXcCs,| ¡o*|jdddko*|jdddkS)Nrr&r9r'rr‰rDrrrr‘GsÿzWin32CPUInfo._is_PentiumProcCs,| ¡o*|jdddko*|jdddkS)Nrr&r9r')r7r6r9r‰rDrrrrKsÿzWin32CPUInfo._is_PentiumIIcCs,| ¡o*|jdddko*|jdddkS)Nrr&r9r'©r:r<r>é
é r‰rDrrrr“OsÿzWin32CPUInfo._is_PentiumIIIcCs| ¡o|jdddkSrBr‰rDrrrr”SszWin32CPUInfo._is_PentiumIVcCs,| ¡o*|jdddko*|jdddkS)Nrr&r9r')r>é ér‰rDrrrr•VsÿzWin32CPUInfo._is_PentiumMcCs,| ¡o*|jdddko*|jdddkS)Nrr&r9r')rCéér‰rDrrrršZsÿzWin32CPUInfo._is_Core2cCst|jƒdkSrCržrDrrrrŸ`szWin32CPUInfo._is_singleCPUcCs
t|jƒSr1ržrDrrrrEcszWin32CPUInfo._getNCPUscCs`| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡rX|jdddkSdSdS)    Nrr&r6r'r3©r9rC©r6r9rCF©rŠrrvrDrrrr£fs$ÿzWin32CPUInfo._has_mmxcCs„| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡r||jdddkrj|jdddkpz|jdddkSdSdS)    Nrr&r9r'rErC)r9r:r<rFFrNrDrrrr¤osÿþÿþzWin32CPUInfo._has_ssecCs8| ¡r | ¡p| ¡p| ¡S| ¡r0| ¡SdSdS)NF)rŠZ is_Pentium4Z is_PentiumMZis_Core2rvZis_AMD64rDrrrr¥{sÿzWin32CPUInfo._has_sse2cCs| ¡o|jdddkS)Nrr&rMrurDrrrr¨„szWin32CPUInfo._has_3dnowcCs| ¡o|jdddkS)Nrr&rLrurDrrrr©‡szWin32CPUInfo._has_3dnowext)$rSrTrUrr+rarbrfr4r5r8r;r=r?rArwr…rªr†r‹rrr’r‘rr“r”r•ršrŸrEr£r¤r¥r¨r©rrrrr%ØsB(         r%ÚlinuxZirixÚdarwinÚsunosÚwin32Úcygwin)rr)rr)rr)rr)rVÚ__all__rrFrHÚsysr>r
Ú
subprocessrrr r#r/r0rWr«rérr%r:ZcpuinforrrrrÚ<module>sH  
 
 
    
ÿ
 
#D:.J3