B ¬[ð]çYã@sŽdZddlmZmZmZdgZddlZddlZddlZddl Z ej ddkrZddl m Z n ddl m Z ddlZddlZddlmZd$d d „Zd%d d „Zd&dd„Zd'dd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZej d¡reZnfej d¡r2eZnRejd krDeZn@ej d!¡rXeZn,ej d"¡rleZnej d#¡r€eZneZeƒZdS)(aa cpuinfo Copyright 2002 Pearu Peterson all rights reserved, Pearu Peterson 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 é)ÚdivisionÚabsolute_importÚprint_functionÚcpuNé)Úgetstatusoutput)Ú get_exception©récCshyt|ƒ\}}Wn.tk r>tƒ}tjt|ƒt|ddSXt |¡r`t  |¡|kr`d|fSd|fS)N)Ú stacklevel)FÚTF) rÚEnvironmentErrorrÚwarningsÚwarnÚstrÚ UserWarningÚosÚ WIFEXITEDÚ WEXITSTATUS)ÚcmdÚsuccessful_statusr ÚstatusÚoutputÚe©rú:/tmp/pip-install-svzetoqp/numpy/numpy/distutils/cpuinfo.pyÚ getoutput srcKs@i}x6|D].}t||||dd\}}|r | ¡||<q W|S)Nr )rr )rÚstrip)rr ÚkwÚinfoÚkeyÚokrrrrÚ command_info+s  r"ccs>t|||dd\}}|sdSx| ¡D]}| ¡Vq(WdS)Nr )rr )rÚ splitlinesr)rrr r!rÚlinerrrÚcommand_by_line4s r%cCsVi}xLt|||ddD]6}dd„| |d¡Dƒ}t|ƒdkr|d||d<qW|S)Nr )rr cSsg|] }| ¡‘qSr)r)Ú.0Úsrrrú Asz*key_value_from_command..ér)r%ÚsplitÚlen)rÚseprr Údr$ÚlrrrÚkey_value_from_command<s 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 y|ƒStk rYnXdS)N)Ú Exception)ÚselfÚfuncrrrÚ _try_callKszCPUInfoBase._try_callcCsX| d¡sLt|d|ƒrDt|d|ƒ}t|tjƒrL|j|fdd„Sndd„St|ƒ‚dS)NÚ_cSs||ƒS)Nr)r3ÚattrrrrÚVóz)CPUInfoBase.__getattr__..cSsdS)Nrrrrrr7Xr8)Ú startswithÚhasattrÚgetattrÚ isinstanceÚtypesÚ MethodTyper4ÚAttributeError)r2Únamer6rrrÚ __getattr__Qs  zCPUInfoBase.__getattr__cCsdS)Nr r)r2rrrÚ _getNCPUs[szCPUInfoBase._getNCPUscCs&t ¡d}t d¡ |¡ d¡}|S)Nrz(\d+)bitr )ÚplatformÚ architectureÚreÚcompileÚsearchÚgroup)r2ZabitsÚnbitsrrrZ __get_nbits^s zCPUInfoBase.__get_nbitscCs | ¡dkS)NZ32)Ú_CPUInfoBase__get_nbits)r2rrrÚ _is_32bitcszCPUInfoBase._is_32bitcCs | ¡dkS)NZ64)rJ)r2rrrÚ _is_64bitfszCPUInfoBase._is_64bitN) Ú__name__Ú __module__Ú __qualname__Ú__doc__r4rArBrJrKrLrrrrr0Fs 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!dd?„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<y tdƒ}Wn.tk rntƒ}tjt|ƒt ddYnjXx^|D]V}dd„|  d d ¡Dƒ}t |ƒdkržqv|\}} |r¶||d krÀ|  i¡| |d |<qvW|  ¡||j_dS) Nzuname -mrZuname_mz /proc/cpuinfor))r cSsg|] }| ¡‘qSr)r)r&r'rrrr({sz)LinuxCPUInfo.__init__..ú:r éÿÿÿÿ)rrrÚopenr rrrrrr*r+ÚappendÚcloseÚ __class__) r2rr!rÚforr$Ú name_valuer@ÚvaluerrrÚ__init__ms*      zLinuxCPUInfo.__init__cCsdS)Nr)r2rrrÚ _not_impl…r8zLinuxCPUInfo._not_implcCs|jdddkS)NrÚ vendor_idÚ AuthenticAMD)r)r2rrrÚ_is_AMD‰szLinuxCPUInfo._is_AMDcCs| ¡o|jdddkS)NrÚmodelÚ2)r_r)r2rrrÚ_is_AthlonK6_2ŒszLinuxCPUInfo._is_AthlonK6_2cCs| ¡o|jdddkS)Nrr`Ú3)r_r)r2rrrÚ_is_AthlonK6_3szLinuxCPUInfo._is_AthlonK6_3cCst d|jdd¡dk S)Nz .*?AMD-K6rz model name)rEÚmatchr)r2rrrÚ _is_AthlonK6’szLinuxCPUInfo._is_AthlonK6cCst d|jdd¡dk S)Nz .*?AMD-K7rz model name)rErer)r2rrrÚ _is_AthlonK7•szLinuxCPUInfo._is_AthlonK7cCst d|jdd¡dk S)Nz.*?Athlon\(tm\) MP\brz model name)rErer)r2rrrÚ _is_AthlonMP˜szLinuxCPUInfo._is_AthlonMPcCs| ¡o|jdddkS)NrÚfamilyÚ15)Úis_AMDr)r2rrrÚ _is_AMD64œszLinuxCPUInfo._is_AMD64cCst d|jdd¡dk S)Nz.*?Athlon\(tm\) 64\brz model name)rErer)r2rrrÚ _is_Athlon64ŸszLinuxCPUInfo._is_Athlon64cCst d|jdd¡dk S)Nz.*?Athlon HX\brz model name)rErer)r2rrrÚ _is_AthlonHX£szLinuxCPUInfo._is_AthlonHXcCst d|jdd¡dk S)Nz .*?Opteron\brz model name)rErer)r2rrrÚ _is_Opteron§szLinuxCPUInfo._is_OpteroncCst d|jdd¡dk S)Nz .*?Hammer\brz model name)rErer)r2rrrÚ _is_Hammer«szLinuxCPUInfo._is_HammercCs|jdddkS)NrrÚAlpha)r)r2rrrÚ _is_Alpha±szLinuxCPUInfo._is_AlphacCs| ¡o|jdddkS)Nrz cpu modelZEV4)Úis_Alphar)r2rrrÚ_is_EV4´szLinuxCPUInfo._is_EV4cCs| ¡o|jdddkS)Nrz cpu modelZEV5)rsr)r2rrrÚ_is_EV5·szLinuxCPUInfo._is_EV5cCs| ¡o|jdddkS)Nrz cpu modelZEV56)rsr)r2rrrÚ_is_EV56ºszLinuxCPUInfo._is_EV56cCs| ¡o|jdddkS)Nrz cpu modelZPCA56)rsr)r2rrrÚ _is_PCA56½szLinuxCPUInfo._is_PCA56cCs|jdddkS)Nrr]Ú GenuineIntel)r)r2rrrÚ _is_IntelÅszLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486)r)r2rrrÚ_is_i486ÈszLinuxCPUInfo._is_i486cCs| ¡o|jdddkS)Nrz cpu familyÚ5)Úis_Intelr)r2rrrÚ_is_i586ËszLinuxCPUInfo._is_i586cCs| ¡o|jdddkS)Nrz cpu familyÚ6)r|r)r2rrrÚ_is_i686ÎszLinuxCPUInfo._is_i686cCst d|jdd¡dk S)Nz .*?Celeronrz model name)rErer)r2rrrÚ _is_CeleronÑszLinuxCPUInfo._is_CeleroncCst d|jdd¡dk S)Nz .*?Pentiumrz model name)rErer)r2rrrÚ _is_PentiumÕszLinuxCPUInfo._is_PentiumcCst d|jdd¡dk S)Nz.*?Pentium.*?II\brz model name)rErer)r2rrrÚ _is_PentiumIIÙszLinuxCPUInfo._is_PentiumIIcCst d|jdd¡dk S)Nz.*?PentiumPro\brz model name)rErer)r2rrrÚ_is_PentiumProÝszLinuxCPUInfo._is_PentiumProcCst d|jdd¡dk S)Nz.*?Pentium.*?MMX\brz model name)rErer)r2rrrÚ_is_PentiumMMXászLinuxCPUInfo._is_PentiumMMXcCst d|jdd¡dk S)Nz.*?Pentium.*?III\brz model name)rErer)r2rrrÚ_is_PentiumIIIåszLinuxCPUInfo._is_PentiumIIIcCst d|jdd¡dk S)Nz.*?Pentium.*?(IV|4)\brz model name)rErer)r2rrrÚ _is_PentiumIVészLinuxCPUInfo._is_PentiumIVcCst d|jdd¡dk S)Nz.*?Pentium.*?M\brz model name)rErer)r2rrrÚ _is_PentiumMíszLinuxCPUInfo._is_PentiumMcCs| ¡o| ¡S)N)Z is_PentiumIVÚhas_sse3)r2rrrÚ _is_PrescottñszLinuxCPUInfo._is_PrescottcCsX| ¡oV|jdddks,|jdddkoV| ¡oV| ¡ oVt d|jdd¡dk S)Nrz cpu familyr~rjz .*?\blm\bÚflags)r|rrˆZ has_ssse3rEre)r2rrrÚ _is_Noconaôs zLinuxCPUInfo._is_NoconacCs*| ¡o(| ¡o(t d|jdd¡dk S)Nz.*?Core\(TM\)2\brz model name)Zis_64bitr|rErer)r2rrrÚ _is_Core2ûszLinuxCPUInfo._is_Core2cCst d|jdd¡dk S)Nz .*?Itanium\brri)rErer)r2rrrÚ _is_ItaniumszLinuxCPUInfo._is_ItaniumcCst d|jddtj¡dk S)Nz .*?XEON\brz model name)rErerÚ IGNORECASE)r2rrrÚ_is_XEONszLinuxCPUInfo._is_XEONcCst|jƒdkS)Nr )r+r)r2rrrÚ _is_singleCPU szLinuxCPUInfo._is_singleCPUcCs t|jƒS)N)r+r)r2rrrrBszLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugÚyes)r)r2rrrÚ _has_fdiv_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugr‘)r)r2rrrÚ _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCst d|jdd¡dk S)Nz .*?\bmmx\brrŠ)rErer)r2rrrÚ_has_mmxszLinuxCPUInfo._has_mmxcCst d|jdd¡dk S)Nz .*?\bsse\brrŠ)rErer)r2rrrÚ_has_sseszLinuxCPUInfo._has_ssecCst d|jdd¡dk S)Nz .*?\bsse2\brrŠ)rErer)r2rrrÚ _has_sse2szLinuxCPUInfo._has_sse2cCst d|jdd¡dk S)Nz .*?\bpni\brrŠ)rErer)r2rrrÚ _has_sse3!szLinuxCPUInfo._has_sse3cCst d|jdd¡dk S)Nz .*?\bssse3\brrŠ)rErer)r2rrrÚ _has_ssse3$szLinuxCPUInfo._has_ssse3cCst d|jdd¡dk S)Nz .*?\b3dnow\brrŠ)rErer)r2rrrÚ _has_3dnow'szLinuxCPUInfo._has_3dnowcCst d|jdd¡dk S)Nz.*?\b3dnowext\brrŠ)rErer)r2rrrÚ _has_3dnowext*szLinuxCPUInfo._has_3dnowext)4rMrNrOrr[r\r_rbrdrfrgrhrlrmrnrorprrrtrurvrwÚ_is_i386ryrzr}rr€rr‚rƒr„r…r†r‡r‰r‹rŒrrZ_is_XeonrrBr’r“r”r•r–r—r˜r™ršrrrrrQisbrQc@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 dd?„Z"d@dA„Z#dBdC„Z$dDdE„Z%dFdG„Z&dHdI„Z'dJdK„Z(dS)LÚ IRIXCPUInfoNcCs(|jdk rdStdddd}||j_dS)NÚsysconfú )rr )r,r)rr/rW)r2rrrrr[0s  zIRIXCPUInfo.__init__cCsdS)Nr)r2rrrr\7r8zIRIXCPUInfo._not_implcCs|j d¡dkS)NÚNUM_PROCESSORSÚ1)rÚget)r2rrrr9szIRIXCPUInfo._is_singleCPUcCst|j dd¡ƒS)NrŸr )Úintrr¡)r2rrrrB<szIRIXCPUInfo._getNCPUscCs |j d¡ ¡d ¡d|kS)NZ PROCESSORSrzr%s)rr¡r*Úlower)r2ÚnrrrZ __cputype?szIRIXCPUInfo.__cputypecCs | d¡S)NiÐ)Ú_IRIXCPUInfo__cputype)r2rrrÚ _is_r2000Ar8zIRIXCPUInfo._is_r2000cCs | d¡S)Ni¸ )r¥)r2rrrÚ _is_r3000Br8zIRIXCPUInfo._is_r3000cCs | d¡S)Ni<)r¥)r2rrrÚ _is_r3900Cr8zIRIXCPUInfo._is_r3900cCs | d¡S)Ni )r¥)r2rrrÚ _is_r4000Dr8zIRIXCPUInfo._is_r4000cCs | d¡S)Ni)r¥)r2rrrÚ _is_r4100Er8zIRIXCPUInfo._is_r4100cCs | d¡S)NiÌ)r¥)r2rrrÚ _is_r4300Fr8zIRIXCPUInfo._is_r4300cCs | d¡S)Ni0)r¥)r2rrrÚ _is_r4400Gr8zIRIXCPUInfo._is_r4400cCs | d¡S)Niø)r¥)r2rrrÚ _is_r4600Hr8zIRIXCPUInfo._is_r4600cCs | d¡S)Ni*)r¥)r2rrrÚ _is_r4650Ir8zIRIXCPUInfo._is_r4650cCs | d¡S)Niˆ)r¥)r2rrrÚ _is_r5000Jr8zIRIXCPUInfo._is_r5000cCs | d¡S)Nip)r¥)r2rrrÚ _is_r6000Kr8zIRIXCPUInfo._is_r6000cCs | d¡S)Ni@)r¥)r2rrrÚ _is_r8000Lr8zIRIXCPUInfo._is_r8000cCs | d¡S)Ni')r¥)r2rrrÚ _is_r10000Mr8zIRIXCPUInfo._is_r10000cCs | d¡S)Nià.)r¥)r2rrrÚ _is_r12000Nr8zIRIXCPUInfo._is_r12000cCs | d¡S)NZorion)r¥)r2rrrÚ _is_rorionOr8zIRIXCPUInfo._is_rorioncCs&y |j d¡Stk r YnXdS)NÚMACHINE)rr¡r1)r2rrrÚget_ipQs zIRIXCPUInfo.get_ipcCs|j d¡ ¡d|kS)Nrµzip%s)rr¡r£)r2r¤rrrÚ __machineTszIRIXCPUInfo.__machinecCs | d¡S)Né)Ú_IRIXCPUInfo__machine)r2rrrÚ_is_IP19Vr8zIRIXCPUInfo._is_IP19cCs | d¡S)Né)r¹)r2rrrÚ_is_IP20Wr8zIRIXCPUInfo._is_IP20cCs | d¡S)Né)r¹)r2rrrÚ_is_IP21Xr8zIRIXCPUInfo._is_IP21cCs | d¡S)Né)r¹)r2rrrÚ_is_IP22Yr8zIRIXCPUInfo._is_IP22cCs| d¡o| ¡S)Nr¿)r¹r©)r2rrrÚ _is_IP22_4kZr8zIRIXCPUInfo._is_IP22_4kcCs| d¡o| ¡S)Nr¿)r¹r¯)r2rrrÚ _is_IP22_5k[r8zIRIXCPUInfo._is_IP22_5kcCs | d¡S)Né)r¹)r2rrrÚ_is_IP24\r8zIRIXCPUInfo._is_IP24cCs | d¡S)Né)r¹)r2rrrÚ_is_IP25]r8zIRIXCPUInfo._is_IP25cCs | d¡S)Né)r¹)r2rrrÚ_is_IP26^r8zIRIXCPUInfo._is_IP26cCs | d¡S)Né)r¹)r2rrrÚ_is_IP27_r8zIRIXCPUInfo._is_IP27cCs | d¡S)Né)r¹)r2rrrÚ_is_IP28`r8zIRIXCPUInfo._is_IP28cCs | d¡S)Né)r¹)r2rrrÚ_is_IP30ar8zIRIXCPUInfo._is_IP30cCs | d¡S)Né )r¹)r2rrrÚ_is_IP32br8zIRIXCPUInfo._is_IP32cCs| d¡o| ¡S)NrÏ)r¹r¯)r2rrrÚ _is_IP32_5kcr8zIRIXCPUInfo._is_IP32_5kcCs| d¡o| ¡S)NrÏ)r¹r²)r2rrrÚ _is_IP32_10kdr8zIRIXCPUInfo._is_IP32_10k))rMrNrOrr[r\rrBr¥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/rW)r2rrrrr[js  zDarwinCPUInfo.__init__cCsdS)Nr)r2rrrr\rr8zDarwinCPUInfo._not_implcCst|jd dd¡ƒS)Nr×zhw.ncpur )r¢rr¡)r2rrrrBtszDarwinCPUInfo._getNCPUscCs|jdddkS)Nr×z hw.machinezPower Macintosh)r)r2rrrÚ_is_Power_Macintoshwsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)NrÔÚi386)r)r2rrrr›zszDarwinCPUInfo._is_i386cCs|jddkS)NrÔÚppc)r)r2rrrÚ_is_ppc|szDarwinCPUInfo._is_ppccCs|jdd|kS)NrÕzppc%s)r)r2r¤rrrr·szDarwinCPUInfo.__machinecCs | d¡S)NiY)Ú_DarwinCPUInfo__machine)r2rrrÚ _is_ppc601r8zDarwinCPUInfo._is_ppc601cCs | d¡S)NiZ)rÜ)r2rrrÚ _is_ppc602‚r8zDarwinCPUInfo._is_ppc602cCs | d¡S)Ni[)rÜ)r2rrrÚ _is_ppc603ƒr8zDarwinCPUInfo._is_ppc603cCs | d¡S)NZ603e)rÜ)r2rrrÚ _is_ppc603e„r8zDarwinCPUInfo._is_ppc603ecCs | d¡S)Ni\)rÜ)r2rrrÚ _is_ppc604…r8zDarwinCPUInfo._is_ppc604cCs | d¡S)NZ604e)rÜ)r2rrrÚ _is_ppc604e†r8zDarwinCPUInfo._is_ppc604ecCs | d¡S)Nil)rÜ)r2rrrÚ _is_ppc620‡r8zDarwinCPUInfo._is_ppc620cCs | d¡S)Niv)rÜ)r2rrrÚ _is_ppc630ˆr8zDarwinCPUInfo._is_ppc630cCs | d¡S)Niä)rÜ)r2rrrÚ _is_ppc740‰r8zDarwinCPUInfo._is_ppc740cCs | d¡S)Niè)rÜ)r2rrrÚ _is_ppc7400Šr8zDarwinCPUInfo._is_ppc7400cCs | d¡S)Ni)rÜ)r2rrrÚ _is_ppc7450‹r8zDarwinCPUInfo._is_ppc7450cCs | d¡S)Niî)rÜ)r2rrrÚ _is_ppc750Œr8zDarwinCPUInfo._is_ppc750cCs | d¡S)Ni“)rÜ)r2rrrÚ _is_ppc403r8zDarwinCPUInfo._is_ppc403cCs | d¡S)Niù)rÜ)r2rrrÚ _is_ppc505Žr8zDarwinCPUInfo._is_ppc505cCs | d¡S)Ni!)rÜ)r2rrrÚ _is_ppc801r8zDarwinCPUInfo._is_ppc801cCs | d¡S)Ni5)rÜ)r2rrrÚ _is_ppc821r8zDarwinCPUInfo._is_ppc821cCs | d¡S)Ni7)rÜ)r2rrrÚ _is_ppc823‘r8zDarwinCPUInfo._is_ppc823cCs | d¡S)Ni\)rÜ)r2rrrÚ _is_ppc860’r8zDarwinCPUInfo._is_ppc860)rMrNrOrr[r\rBrØr›rÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrrrrrÓgs4rÓ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Ú SunOSCPUInfoNcCsn|jdk rdStdddddd}tddd |d <x0td ƒD]$}t d |¡}|r:| d ¡|d<Pq:W||j_dS)NrÔÚmachÚuname_iz isainfo -bz isainfo -n)rÔrðrñZ isainfo_bÚ isainfo_nzuname -XrÖ)r,Úuname_Xz psrinfo -v 0z+\s*The (?P

[\w\d]+) processor operates atÚpÚ processor)rr"r/r%rErerHrW)r2rr$Úmrrrr[™s  zSunOSCPUInfo.__init__cCsdS)Nr)r2rrrr\ªr8zSunOSCPUInfo._not_implcCs|jddkS)NròrÙ)r)r2rrrr›¬szSunOSCPUInfo._is_i386cCs|jddkS)NròZsparc)r)r2rrrÚ _is_sparc®szSunOSCPUInfo._is_sparccCs|jddkS)NròÚsparcv9)r)r2rrrÚ _is_sparcv9°szSunOSCPUInfo._is_sparcv9cCst|jd dd¡ƒS)NróZNumCPUr )r¢rr¡)r2rrrrB³szSunOSCPUInfo._getNCPUscCs|jddkS)NrÔZsun4)r)r2rrrÚ_is_sun4¶szSunOSCPUInfo._is_sun4cCst d|jd¡dk S)NZSUNWrñ)rErer)r2rrrÚ_is_SUNW¹szSunOSCPUInfo._is_SUNWcCst d|jd¡dk S)Nz.*SPARCstation-5rñ)rErer)r2rrrÚ_is_sparcstation5»szSunOSCPUInfo._is_sparcstation5cCst d|jd¡dk S)Nz .*Ultra-1rñ)rErer)r2rrrÚ _is_ultra1½szSunOSCPUInfo._is_ultra1cCst d|jd¡dk S)Nz .*Ultra-250rñ)rErer)r2rrrÚ _is_ultra250¿szSunOSCPUInfo._is_ultra250cCst d|jd¡dk S)Nz .*Ultra-2rñ)rErer)r2rrrÚ _is_ultra2ÁszSunOSCPUInfo._is_ultra2cCst d|jd¡dk S)Nz .*Ultra-30rñ)rErer)r2rrrÚ _is_ultra30ÃszSunOSCPUInfo._is_ultra30cCst d|jd¡dk S)Nz .*Ultra-4rñ)rErer)r2rrrÚ _is_ultra4ÅszSunOSCPUInfo._is_ultra4cCst d|jd¡dk S)Nz .*Ultra-5_10rñ)rErer)r2rrrÚ _is_ultra5_10ÇszSunOSCPUInfo._is_ultra5_10cCst d|jd¡dk S)Nz .*Ultra-5rñ)rErer)r2rrrÚ _is_ultra5ÉszSunOSCPUInfo._is_ultra5cCst d|jd¡dk S)Nz .*Ultra-60rñ)rErer)r2rrrÚ _is_ultra60ËszSunOSCPUInfo._is_ultra60cCst d|jd¡dk S)Nz .*Ultra-80rñ)rErer)r2rrrÚ _is_ultra80ÍszSunOSCPUInfo._is_ultra80cCst d|jd¡dk S)Nz.*Ultra-Enterpriserñ)rErer)r2rrrÚ_is_ultraenterpriceÏsz SunOSCPUInfo._is_ultraenterpricecCst d|jd¡dk S)Nz.*Ultra-Enterprise-10000rñ)rErer)r2rrrÚ_is_ultraenterprice10kÑsz#SunOSCPUInfo._is_ultraenterprice10kcCst d|jd¡dk S)Nz .*Sun-Firerñ)rErer)r2rrrÚ _is_sunfireÓszSunOSCPUInfo._is_sunfirecCst d|jd¡dk S)Nz.*Ultrarñ)rErer)r2rrrÚ _is_ultraÕszSunOSCPUInfo._is_ultracCs|jddkS)NrõZsparcv7)r)r2rrrÚ_is_cpusparcv7ØszSunOSCPUInfo._is_cpusparcv7cCs|jddkS)NrõZsparcv8)r)r2rrrÚ_is_cpusparcv8ÚszSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nrõrø)r)r2rrrÚ_is_cpusparcv9ÜszSunOSCPUInfo._is_cpusparcv9)rMrNrOrr[r\r›r÷rùrBrúrûrürýrþrÿrrrrrrrrrr r r r rrrrrï•s4rïc@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 Csˆ|jdk rdSg}y>tjddkr.ddl}nddl}t dtj¡}| |j |j ¡}d}xöy|  ||¡}Wn|j k r‚PYqZX|d7}|  d|i¡| ||¡}d}x y| ||¡\} } } Wn|j k rÚPYq¬X|d}| |d| <| dkr¬| | ¡} | r¬t|  d¡ƒ|dd <t|  d ¡ƒ|dd <t|  d ¡ƒ|dd <q¬WqZWWn(tk rztt ¡ddƒYnX||j_dS)NrrzFfamily\s+(?P\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)r Z ProcessorrSZ IdentifierZFMLÚFamilyZMDLÚModelZSTPZSteppingz (ignoring))rÚsysÚ version_infoÚwinregÚ_winregrErFrŽÚOpenKeyÚHKEY_LOCAL_MACHINEÚpkeyÚEnumKeyÚerrorrUZ EnumValuerGr¢rHr1ÚprintÚexc_inforW) r2rrZprgxZchndZpnumÚprocZphndZpidxr@rZZvtpeZsrchrrrr[çsH     "zWin32CPUInfo.__init__cCsdS)Nr)r2rrrr\r8zWin32CPUInfo._not_implcCs|jdddkS)NrÚVendorIdentifierr^)r)r2rrrr_szWin32CPUInfo._is_AMDcCs| ¡o|jdddkS)Nrré)rkr)r2rrrÚ _is_Am486szWin32CPUInfo._is_Am486cCs| ¡o|jdddkS)Nrrr)rkr)r2rrrÚ _is_Am5x86szWin32CPUInfo._is_Am5x86cCs,| ¡o*|jdddko*|jdddkS)Nrrér)rr r)r)rkr)r2rrrÚ _is_AMDK5szWin32CPUInfo._is_AMDK5cCs,| ¡o*|jdddko*|jdddkS)Nrrr r)éé)rkr)r2rrrÚ _is_AMDK6#szWin32CPUInfo._is_AMDK6cCs,| ¡o*|jdddko*|jdddkS)Nrrr ré)rkr)r2rrrÚ _is_AMDK6_2'szWin32CPUInfo._is_AMDK6_2cCs,| ¡o*|jdddko*|jdddkS)Nrrr ré )rkr)r2rrrÚ _is_AMDK6_3+szWin32CPUInfo._is_AMDK6_3cCs| ¡o|jdddkS)Nrrr")rkr)r2rrrÚ _is_AMDK7/szWin32CPUInfo._is_AMDK7cCs| ¡o|jdddkS)Nrré)rkr)r2rrrrl6szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrrrx)r)r2rrrry;szWin32CPUInfo._is_IntelcCs|jdddkS)Nrrr)r)r2rrrr›>szWin32CPUInfo._is_i386cCs|jdddkS)Nrrr)r)r2rrrrzAszWin32CPUInfo._is_i486cCs| ¡o|jdddkS)Nrrr )r|r)r2rrrr}DszWin32CPUInfo._is_i586cCs| ¡o|jdddkS)Nrrr")r|r)r2rrrrGszWin32CPUInfo._is_i686cCs| ¡o|jdddkS)Nrrr )r|r)r2rrrrJszWin32CPUInfo._is_PentiumcCs,| ¡o*|jdddko*|jdddkS)Nrrr rr)r|r)r2rrrr„MszWin32CPUInfo._is_PentiumMMXcCs,| ¡o*|jdddko*|jdddkS)Nrrr"rr )r|r)r2rrrrƒQszWin32CPUInfo._is_PentiumProcCs,| ¡o*|jdddko*|jdddkS)Nrrr"r)rr r")r|r)r2rrrr‚UszWin32CPUInfo._is_PentiumIIcCs,| ¡o*|jdddko*|jdddkS)Nrrr"r)r#r%r'é é )r|r)r2rrrr…YszWin32CPUInfo._is_PentiumIIIcCs| ¡o|jdddkS)Nrrr*)r|r)r2rrrr†]szWin32CPUInfo._is_PentiumIVcCs,| ¡o*|jdddko*|jdddkS)Nrrr"r)r'é é)r|r)r2rrrr‡`szWin32CPUInfo._is_PentiumMcCs,| ¡o*|jdddko*|jdddkS)Nrrr"r)r*éé)r|r)r2rrrrŒdszWin32CPUInfo._is_Core2cCst|jƒdkS)Nr )r+r)r2rrrrjszWin32CPUInfo._is_singleCPUcCs t|jƒS)N)r+r)r2rrrrBmszWin32CPUInfo._getNCPUscCs`| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡rX|jdddkSdSdS) Nrrr rr)r"r*)r r"r*F)r|rrk)r2rrrr”ps $zWin32CPUInfo._has_mmxcCs„| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡r||jdddkrj|jdddkpz|jdddkSdSdS) Nrrr"r)r#r%r'r+r,r*)r"r#r%r+F)r|rrk)r2rrrr•yszWin32CPUInfo._has_ssecCs8| ¡r | ¡p| ¡p| ¡S| ¡r0| ¡SdSdS)NF)r|Z is_Pentium4Z is_PentiumMZis_Core2rkZis_AMD64)r2rrrr–…s zWin32CPUInfo._has_sse2cCs| ¡o|jdddkS)Nrr)r r"r*)rkr)r2rrrr™ŽszWin32CPUInfo._has_3dnowcCs| ¡o|jdddkS)Nrr)r"r*)rkr)r2rrrrš‘szWin32CPUInfo._has_3dnowext)$rMrNrOrrr[r\r_rrr!r$r&r(r)rlryr›rzr}rrr„rƒr‚r…r†r‡rŒrrBr”r•r–r™ršrrrrr ßsB+   r ÚlinuxZirixÚdarwinÚsunosÚwin32Úcygwin)r r )r r )r r )r r ) rPÚ __future__rrrÚ__all__rrEr=rrÚ subprocessrÚcommandsrrCZnumpy.distutils.compatrrr"r%r/Úobjectr0rQrœrÓrïr r9ZcpuinforrrrrÚsJ    #E:.J6