B { `Xã@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òeZnRejdkreZn@ej d¡reZn,ej d¡r,eZnej 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 ÚcpuéN)Úgetstatusoutput©réc Cspyt|ƒ\}}Wn6tk rF}ztjt|ƒt|ddSd}~XYnXt |¡rht |¡|krhd|fSd|fS)N)Ú stacklevel)FÚTF) rÚEnvironmentErrorÚwarningsÚwarnÚstrÚ UserWarningÚosÚ WIFEXITEDÚ WEXITSTATUS)ÚcmdÚsuccessful_statusrÚstatusÚoutputÚe©rú;/tmp/pip-unpacked-wheel-4iou4664/numpy/distutils/cpuinfo.pyÚ getoutputsrcKs@i}x6|D].}t||||dd\}}|r | ¡||<q W|S)Nr)rr)rÚstrip)rrÚkwÚinfoÚkeyÚokrrrrÚ command_info%s  rccs>t|||dd\}}|sdSx| ¡D]}| ¡Vq(WdS)Nr)rr)rÚ splitlinesr)rrrrrÚlinerrrÚcommand_by_line.s r cCsVi}xLt|||ddD]6}dd„| |d¡Dƒ}t|ƒdkr|d||d<qW|S)Nr)rrcSsg|] }| ¡‘qSr)r)Ú.0Úsrrrú ;sz*key_value_from_command..é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 y|ƒStk rYnXdS)N)Ú Exception)ÚselfÚfuncrrrÚ _try_callEszCPUInfoBase._try_callcCsX| d¡sLt|d|ƒrDt|d|ƒ}t|tjƒrL|j|fdd„Sndd„St|ƒ‚dS)NÚ_cSs||ƒS)Nr)r.ÚattrrrrÚPóz)CPUInfoBase.__getattr__..cSsdS)Nrrrrrr2Rr3)Ú startswithÚhasattrÚgetattrÚ isinstanceÚtypesÚ MethodTyper/ÚAttributeError)r-Únamer1rrrÚ __getattr__Ks  zCPUInfoBase.__getattr__cCsdS)Nrr)r-rrrÚ _getNCPUsUszCPUInfoBase._getNCPUscCs&t ¡d}t d¡ |¡ d¡}|S)Nrz(\d+)bitr)ÚplatformÚ architectureÚreÚcompileÚsearchÚgroup)r-ZabitsÚnbitsrrrZ __get_nbitsXs zCPUInfoBase.__get_nbitscCs | ¡dkS)NZ32)Ú_CPUInfoBase__get_nbits)r-rrrÚ _is_32bit]szCPUInfoBase._is_32bitcCs | ¡dkS)NZ64)rE)r-rrrÚ _is_64bit`szCPUInfoBase._is_64bitN) Ú__name__Ú __module__Ú __qualname__Ú__doc__r/r<r=rErFrGrrrrr+@s r+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%„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ƒ}Wn6tk rv}ztjt|ƒtddWdd}~XYnjXx^|D]V}dd„|  d d ¡Dƒ}t |ƒdkr¦q~|\}} |r¾||d krÈ|  i¡| |d |<q~W|  ¡||j _dS) Nzuname -mrZuname_mz /proc/cpuinfor$)rcSsg|] }| ¡‘qSr)r)r!r"rrrr#tsz)LinuxCPUInfo.__init__..ú:réÿÿÿÿ)rrrÚopenrr r r r r%r&ÚappendÚcloseÚ __class__) r-rrrÚforrÚ name_valuer;ÚvaluerrrÚ__init__gs(   &   zLinuxCPUInfo.__init__cCsdS)Nr)r-rrrÚ _not_impl~r3zLinuxCPUInfo._not_implcCs|jdddkS)NrÚ vendor_idÚ AuthenticAMD)r)r-rrrÚ_is_AMD‚szLinuxCPUInfo._is_AMDcCs| ¡o|jdddkS)NrÚmodelÚ2)rZr)r-rrrÚ_is_AthlonK6_2…szLinuxCPUInfo._is_AthlonK6_2cCs| ¡o|jdddkS)Nrr[Ú3)rZr)r-rrrÚ_is_AthlonK6_3ˆszLinuxCPUInfo._is_AthlonK6_3cCst d|jdd¡dk S)Nz .*?AMD-K6rz model name)r@Úmatchr)r-rrrÚ _is_AthlonK6‹szLinuxCPUInfo._is_AthlonK6cCst d|jdd¡dk S)Nz .*?AMD-K7rz model name)r@r`r)r-rrrÚ _is_AthlonK7ŽszLinuxCPUInfo._is_AthlonK7cCst d|jdd¡dk S)Nz.*?Athlon\(tm\) MP\brz model name)r@r`r)r-rrrÚ _is_AthlonMP‘szLinuxCPUInfo._is_AthlonMPcCs| ¡o|jdddkS)NrÚfamilyÚ15)Úis_AMDr)r-rrrÚ _is_AMD64•szLinuxCPUInfo._is_AMD64cCst d|jdd¡dk S)Nz.*?Athlon\(tm\) 64\brz model name)r@r`r)r-rrrÚ _is_Athlon64˜szLinuxCPUInfo._is_Athlon64cCst d|jdd¡dk S)Nz.*?Athlon HX\brz model name)r@r`r)r-rrrÚ _is_AthlonHXœszLinuxCPUInfo._is_AthlonHXcCst d|jdd¡dk S)Nz .*?Opteron\brz model name)r@r`r)r-rrrÚ _is_Opteron szLinuxCPUInfo._is_OpteroncCst d|jdd¡dk S)Nz .*?Hammer\brz model name)r@r`r)r-rrrÚ _is_Hammer¤szLinuxCPUInfo._is_HammercCs|jdddkS)NrrÚAlpha)r)r-rrrÚ _is_AlphaªszLinuxCPUInfo._is_AlphacCs| ¡o|jdddkS)Nrz cpu modelZEV4)Úis_Alphar)r-rrrÚ_is_EV4­szLinuxCPUInfo._is_EV4cCs| ¡o|jdddkS)Nrz cpu modelZEV5)rnr)r-rrrÚ_is_EV5°szLinuxCPUInfo._is_EV5cCs| ¡o|jdddkS)Nrz cpu modelZEV56)rnr)r-rrrÚ_is_EV56³szLinuxCPUInfo._is_EV56cCs| ¡o|jdddkS)Nrz cpu modelZPCA56)rnr)r-rrrÚ _is_PCA56¶szLinuxCPUInfo._is_PCA56cCs|jdddkS)NrrXÚ GenuineIntel)r)r-rrrÚ _is_Intel¾szLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486)r)r-rrrÚ_is_i486ÁszLinuxCPUInfo._is_i486cCs| ¡o|jdddkS)Nrz cpu familyÚ5)Úis_Intelr)r-rrrÚ_is_i586ÄszLinuxCPUInfo._is_i586cCs| ¡o|jdddkS)Nrz cpu familyÚ6)rwr)r-rrrÚ_is_i686ÇszLinuxCPUInfo._is_i686cCst d|jdd¡dk S)Nz .*?Celeronrz model name)r@r`r)r-rrrÚ _is_CeleronÊszLinuxCPUInfo._is_CeleroncCst d|jdd¡dk S)Nz .*?Pentiumrz model name)r@r`r)r-rrrÚ _is_PentiumÎszLinuxCPUInfo._is_PentiumcCst d|jdd¡dk S)Nz.*?Pentium.*?II\brz model name)r@r`r)r-rrrÚ _is_PentiumIIÒszLinuxCPUInfo._is_PentiumIIcCst d|jdd¡dk S)Nz.*?PentiumPro\brz model name)r@r`r)r-rrrÚ_is_PentiumProÖszLinuxCPUInfo._is_PentiumProcCst d|jdd¡dk S)Nz.*?Pentium.*?MMX\brz model name)r@r`r)r-rrrÚ_is_PentiumMMXÚszLinuxCPUInfo._is_PentiumMMXcCst d|jdd¡dk S)Nz.*?Pentium.*?III\brz model name)r@r`r)r-rrrÚ_is_PentiumIIIÞszLinuxCPUInfo._is_PentiumIIIcCst d|jdd¡dk S)Nz.*?Pentium.*?(IV|4)\brz model name)r@r`r)r-rrrÚ _is_PentiumIVâszLinuxCPUInfo._is_PentiumIVcCst d|jdd¡dk S)Nz.*?Pentium.*?M\brz model name)r@r`r)r-rrrÚ _is_PentiumMæszLinuxCPUInfo._is_PentiumMcCs| ¡o| ¡S)N)Z is_PentiumIVÚhas_sse3)r-rrrÚ _is_PrescottêszLinuxCPUInfo._is_PrescottcCsX| ¡oV|jdddks,|jdddkoV| ¡oV| ¡ oVt d|jdd¡dk S)Nrz cpu familyryrez .*?\blm\bÚflags)rwrrƒZ has_ssse3r@r`)r-rrrÚ _is_Noconaís zLinuxCPUInfo._is_NoconacCs*| ¡o(| ¡o(t d|jdd¡dk S)Nz.*?Core\(TM\)2\brz model name)Zis_64bitrwr@r`r)r-rrrÚ _is_Core2ôszLinuxCPUInfo._is_Core2cCst d|jdd¡dk S)Nz .*?Itanium\brrd)r@r`r)r-rrrÚ _is_ItaniumùszLinuxCPUInfo._is_ItaniumcCst d|jddtj¡dk S)Nz .*?XEON\brz model name)r@r`rÚ IGNORECASE)r-rrrÚ_is_XEONýszLinuxCPUInfo._is_XEONcCst|jƒdkS)Nr)r&r)r-rrrÚ _is_singleCPUszLinuxCPUInfo._is_singleCPUcCs t|jƒS)N)r&r)r-rrrr=szLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugÚyes)r)r-rrrÚ _has_fdiv_bug szLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugrŒ)r)r-rrrÚ _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCst d|jdd¡dk S)Nz .*?\bmmx\brr…)r@r`r)r-rrrÚ_has_mmxszLinuxCPUInfo._has_mmxcCst d|jdd¡dk S)Nz .*?\bsse\brr…)r@r`r)r-rrrÚ_has_sseszLinuxCPUInfo._has_ssecCst d|jdd¡dk S)Nz .*?\bsse2\brr…)r@r`r)r-rrrÚ _has_sse2szLinuxCPUInfo._has_sse2cCst d|jdd¡dk S)Nz .*?\bpni\brr…)r@r`r)r-rrrÚ _has_sse3szLinuxCPUInfo._has_sse3cCst d|jdd¡dk S)Nz .*?\bssse3\brr…)r@r`r)r-rrrÚ _has_ssse3szLinuxCPUInfo._has_ssse3cCst d|jdd¡dk S)Nz .*?\b3dnow\brr…)r@r`r)r-rrrÚ _has_3dnow szLinuxCPUInfo._has_3dnowcCst d|jdd¡dk S)Nz.*?\b3dnowext\brr…)r@r`r)r-rrrÚ _has_3dnowext#szLinuxCPUInfo._has_3dnowext)4rHrIrJrrVrWrZr]r_rarbrcrgrhrirjrkrmrorprqrrÚ_is_i386rtrurxrzr{r|r}r~rr€rr‚r„r†r‡rˆrŠZ_is_Xeonr‹r=rrŽrrr‘r’r“r”r•rrrrrLcsbrLc@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*rR)r-rrrrrV)s  zIRIXCPUInfo.__init__cCsdS)Nr)r-rrrrW0r3zIRIXCPUInfo._not_implcCs|j d¡dkS)NÚNUM_PROCESSORSÚ1)rÚget)r-rrrr‹2szIRIXCPUInfo._is_singleCPUcCst|j dd¡ƒS)Nršr)Úintrrœ)r-rrrr=5szIRIXCPUInfo._getNCPUscCs |j d¡ ¡d ¡d|kS)NZ PROCESSORSrzr%s)rrœr%Úlower)r-ÚnrrrZ __cputype8szIRIXCPUInfo.__cputypecCs | d¡S)NiÐ)Ú_IRIXCPUInfo__cputype)r-rrrÚ _is_r2000:r3zIRIXCPUInfo._is_r2000cCs | d¡S)Ni¸ )r )r-rrrÚ _is_r3000;r3zIRIXCPUInfo._is_r3000cCs | d¡S)Ni<)r )r-rrrÚ _is_r3900<r3zIRIXCPUInfo._is_r3900cCs | d¡S)Ni )r )r-rrrÚ _is_r4000=r3zIRIXCPUInfo._is_r4000cCs | d¡S)Ni)r )r-rrrÚ _is_r4100>r3zIRIXCPUInfo._is_r4100cCs | d¡S)NiÌ)r )r-rrrÚ _is_r4300?r3zIRIXCPUInfo._is_r4300cCs | d¡S)Ni0)r )r-rrrÚ _is_r4400@r3zIRIXCPUInfo._is_r4400cCs | d¡S)Niø)r )r-rrrÚ _is_r4600Ar3zIRIXCPUInfo._is_r4600cCs | d¡S)Ni*)r )r-rrrÚ _is_r4650Br3zIRIXCPUInfo._is_r4650cCs | d¡S)Niˆ)r )r-rrrÚ _is_r5000Cr3zIRIXCPUInfo._is_r5000cCs | d¡S)Nip)r )r-rrrÚ _is_r6000Dr3zIRIXCPUInfo._is_r6000cCs | d¡S)Ni@)r )r-rrrÚ _is_r8000Er3zIRIXCPUInfo._is_r8000cCs | d¡S)Ni')r )r-rrrÚ _is_r10000Fr3zIRIXCPUInfo._is_r10000cCs | d¡S)Nià.)r )r-rrrÚ _is_r12000Gr3zIRIXCPUInfo._is_r12000cCs | d¡S)NZorion)r )r-rrrÚ _is_rorionHr3zIRIXCPUInfo._is_rorioncCs&y |j d¡Stk r YnXdS)NÚMACHINE)rrœr,)r-rrrÚget_ipJs zIRIXCPUInfo.get_ipcCs|j d¡ ¡d|kS)Nr°zip%s)rrœrž)r-rŸrrrÚ __machineMszIRIXCPUInfo.__machinecCs | d¡S)Né)Ú_IRIXCPUInfo__machine)r-rrrÚ_is_IP19Or3zIRIXCPUInfo._is_IP19cCs | d¡S)Né)r´)r-rrrÚ_is_IP20Pr3zIRIXCPUInfo._is_IP20cCs | d¡S)Né)r´)r-rrrÚ_is_IP21Qr3zIRIXCPUInfo._is_IP21cCs | d¡S)Né)r´)r-rrrÚ_is_IP22Rr3zIRIXCPUInfo._is_IP22cCs| d¡o| ¡S)Nrº)r´r¤)r-rrrÚ _is_IP22_4kSr3zIRIXCPUInfo._is_IP22_4kcCs| d¡o| ¡S)Nrº)r´rª)r-rrrÚ _is_IP22_5kTr3zIRIXCPUInfo._is_IP22_5kcCs | d¡S)Né)r´)r-rrrÚ_is_IP24Ur3zIRIXCPUInfo._is_IP24cCs | d¡S)Né)r´)r-rrrÚ_is_IP25Vr3zIRIXCPUInfo._is_IP25cCs | d¡S)Né)r´)r-rrrÚ_is_IP26Wr3zIRIXCPUInfo._is_IP26cCs | d¡S)Né)r´)r-rrrÚ_is_IP27Xr3zIRIXCPUInfo._is_IP27cCs | d¡S)Né)r´)r-rrrÚ_is_IP28Yr3zIRIXCPUInfo._is_IP28cCs | d¡S)Né)r´)r-rrrÚ_is_IP30Zr3zIRIXCPUInfo._is_IP30cCs | d¡S)Né )r´)r-rrrÚ_is_IP32[r3zIRIXCPUInfo._is_IP32cCs| d¡o| ¡S)NrÊ)r´rª)r-rrrÚ _is_IP32_5k\r3zIRIXCPUInfo._is_IP32_5kcCs| d¡o| ¡S)NrÊ)r´r­)r-rrrÚ _is_IP32_10k]r3zIRIXCPUInfo._is_IP32_10k))rHrIrJrrVrWr‹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Ë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)rrr*rR)r-rrrrrVcs  zDarwinCPUInfo.__init__cCsdS)Nr)r-rrrrWkr3zDarwinCPUInfo._not_implcCst|jd dd¡ƒS)NrÒzhw.ncpur)rrrœ)r-rrrr=mszDarwinCPUInfo._getNCPUscCs|jdddkS)NrÒz hw.machinezPower Macintosh)r)r-rrrÚ_is_Power_Macintoshpsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)NrÏÚi386)r)r-rrrr–sszDarwinCPUInfo._is_i386cCs|jddkS)NrÏÚppc)r)r-rrrÚ_is_ppcuszDarwinCPUInfo._is_ppccCs|jdd|kS)NrÐzppc%s)r)r-rŸrrrr²xszDarwinCPUInfo.__machinecCs | d¡S)NiY)Ú_DarwinCPUInfo__machine)r-rrrÚ _is_ppc601zr3zDarwinCPUInfo._is_ppc601cCs | d¡S)NiZ)r×)r-rrrÚ _is_ppc602{r3zDarwinCPUInfo._is_ppc602cCs | d¡S)Ni[)r×)r-rrrÚ _is_ppc603|r3zDarwinCPUInfo._is_ppc603cCs | d¡S)NZ603e)r×)r-rrrÚ _is_ppc603e}r3zDarwinCPUInfo._is_ppc603ecCs | d¡S)Ni\)r×)r-rrrÚ _is_ppc604~r3zDarwinCPUInfo._is_ppc604cCs | d¡S)NZ604e)r×)r-rrrÚ _is_ppc604er3zDarwinCPUInfo._is_ppc604ecCs | d¡S)Nil)r×)r-rrrÚ _is_ppc620€r3zDarwinCPUInfo._is_ppc620cCs | d¡S)Niv)r×)r-rrrÚ _is_ppc630r3zDarwinCPUInfo._is_ppc630cCs | d¡S)Niä)r×)r-rrrÚ _is_ppc740‚r3zDarwinCPUInfo._is_ppc740cCs | d¡S)Niè)r×)r-rrrÚ _is_ppc7400ƒr3zDarwinCPUInfo._is_ppc7400cCs | d¡S)Ni)r×)r-rrrÚ _is_ppc7450„r3zDarwinCPUInfo._is_ppc7450cCs | d¡S)Niî)r×)r-rrrÚ _is_ppc750…r3zDarwinCPUInfo._is_ppc750cCs | d¡S)Ni“)r×)r-rrrÚ _is_ppc403†r3zDarwinCPUInfo._is_ppc403cCs | d¡S)Niù)r×)r-rrrÚ _is_ppc505‡r3zDarwinCPUInfo._is_ppc505cCs | d¡S)Ni!)r×)r-rrrÚ _is_ppc801ˆr3zDarwinCPUInfo._is_ppc801cCs | d¡S)Ni5)r×)r-rrrÚ _is_ppc821‰r3zDarwinCPUInfo._is_ppc821cCs | d¡S)Ni7)r×)r-rrrÚ _is_ppc823Šr3zDarwinCPUInfo._is_ppc823cCs | d¡S)Ni\)r×)r-rrrÚ _is_ppc860‹r3zDarwinCPUInfo._is_ppc860)rHrIrJrrVrWr=rÓr–rÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérrrrrÎ`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Ú 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)rrr*r r@r`rCrR)r-rrÚmrrrrV’s  zSunOSCPUInfo.__init__cCsdS)Nr)r-rrrrW£r3zSunOSCPUInfo._not_implcCs|jddkS)NrírÔ)r)r-rrrr–¥szSunOSCPUInfo._is_i386cCs|jddkS)NríZsparc)r)r-rrrÚ _is_sparc§szSunOSCPUInfo._is_sparccCs|jddkS)NríÚsparcv9)r)r-rrrÚ _is_sparcv9©szSunOSCPUInfo._is_sparcv9cCst|jd dd¡ƒS)NrîZNumCPUr)rrrœ)r-rrrr=¬szSunOSCPUInfo._getNCPUscCs|jddkS)NrÏZsun4)r)r-rrrÚ_is_sun4¯szSunOSCPUInfo._is_sun4cCst d|jd¡dk S)NZSUNWrì)r@r`r)r-rrrÚ_is_SUNW²szSunOSCPUInfo._is_SUNWcCst d|jd¡dk S)Nz.*SPARCstation-5rì)r@r`r)r-rrrÚ_is_sparcstation5´szSunOSCPUInfo._is_sparcstation5cCst d|jd¡dk S)Nz .*Ultra-1rì)r@r`r)r-rrrÚ _is_ultra1¶szSunOSCPUInfo._is_ultra1cCst d|jd¡dk S)Nz .*Ultra-250rì)r@r`r)r-rrrÚ _is_ultra250¸szSunOSCPUInfo._is_ultra250cCst d|jd¡dk S)Nz .*Ultra-2rì)r@r`r)r-rrrÚ _is_ultra2ºszSunOSCPUInfo._is_ultra2cCst d|jd¡dk S)Nz .*Ultra-30rì)r@r`r)r-rrrÚ _is_ultra30¼szSunOSCPUInfo._is_ultra30cCst d|jd¡dk S)Nz .*Ultra-4rì)r@r`r)r-rrrÚ _is_ultra4¾szSunOSCPUInfo._is_ultra4cCst d|jd¡dk S)Nz .*Ultra-5_10rì)r@r`r)r-rrrÚ _is_ultra5_10ÀszSunOSCPUInfo._is_ultra5_10cCst d|jd¡dk S)Nz .*Ultra-5rì)r@r`r)r-rrrÚ _is_ultra5ÂszSunOSCPUInfo._is_ultra5cCst d|jd¡dk S)Nz .*Ultra-60rì)r@r`r)r-rrrÚ _is_ultra60ÄszSunOSCPUInfo._is_ultra60cCst d|jd¡dk S)Nz .*Ultra-80rì)r@r`r)r-rrrÚ _is_ultra80ÆszSunOSCPUInfo._is_ultra80cCst d|jd¡dk S)Nz.*Ultra-Enterpriserì)r@r`r)r-rrrÚ_is_ultraenterpriceÈsz SunOSCPUInfo._is_ultraenterpricecCst d|jd¡dk S)Nz.*Ultra-Enterprise-10000rì)r@r`r)r-rrrÚ_is_ultraenterprice10kÊsz#SunOSCPUInfo._is_ultraenterprice10kcCst d|jd¡dk S)Nz .*Sun-Firerì)r@r`r)r-rrrÚ _is_sunfireÌszSunOSCPUInfo._is_sunfirecCst d|jd¡dk S)Nz.*Ultrarì)r@r`r)r-rrrÚ _is_ultraÎszSunOSCPUInfo._is_ultracCs|jddkS)NrðZsparcv7)r)r-rrrÚ_is_cpusparcv7ÑszSunOSCPUInfo._is_cpusparcv7cCs|jddkS)NrðZsparcv8)r)r-rrrÚ_is_cpusparcv8ÓszSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nrðró)r)r-rrrÚ_is_cpusparcv9ÕszSunOSCPUInfo._is_cpusparcv9)rHrIrJrrVrWr–ròrôr=rõrör÷rørùrúrûrürýrþrÿrrrrrrrrrrrrrêŽ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 Csv|jdk rdSg}y&ddl}t dtj¡}| |j|j¡}d}xöy| ||¡}Wn|j k rjPYqBX|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”WqBWWn.tk rh} zt| d ƒWdd} ~ XYnX||j_dS)NrzFfamily\s+(?P\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)rZ ProcessorrNZ IdentifierZFMLÚFamilyZMDLÚModelZSTPZSteppingz (ignoring))rÚwinregr@rAr‰ÚOpenKeyÚHKEY_LOCAL_MACHINEÚpkeyÚEnumKeyÚerrorrPZ EnumValuerBrrCr,ÚprintrR)r-rr ZprgxZchndZpnumÚprocZphndZpidxr;rUZvtpeZsrchrrrrrVàsD    "zWin32CPUInfo.__init__cCsdS)Nr)r-rrrrWr3zWin32CPUInfo._not_implcCs|jdddkS)NrÚVendorIdentifierrY)r)r-rrrrZ szWin32CPUInfo._is_AMDcCs| ¡o|jdddkS)Nrr é)rfr)r-rrrÚ _is_Am486szWin32CPUInfo._is_Am486cCs| ¡o|jdddkS)Nrr r)rfr)r-rrrÚ _is_Am5x86szWin32CPUInfo._is_Am5x86cCs,| ¡o*|jdddko*|jdddkS)Nrr ér )rrr$é)rfr)r-rrrÚ _is_AMDK5szWin32CPUInfo._is_AMDK5cCs,| ¡o*|jdddko*|jdddkS)Nrr rr )éé)rfr)r-rrrÚ _is_AMDK6szWin32CPUInfo._is_AMDK6cCs,| ¡o*|jdddko*|jdddkS)Nrr rr é)rfr)r-rrrÚ _is_AMDK6_2szWin32CPUInfo._is_AMDK6_2cCs,| ¡o*|jdddko*|jdddkS)Nrr rr é )rfr)r-rrrÚ _is_AMDK6_3!szWin32CPUInfo._is_AMDK6_3cCs| ¡o|jdddkS)Nrr r)rfr)r-rrrÚ _is_AMDK7%szWin32CPUInfo._is_AMDK7cCs| ¡o|jdddkS)Nrr é)rfr)r-rrrrg,szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrrrs)r)r-rrrrt1szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr r)r)r-rrrr–4szWin32CPUInfo._is_i386cCs|jdddkS)Nrr r)r)r-rrrru7szWin32CPUInfo._is_i486cCs| ¡o|jdddkS)Nrr r)rwr)r-rrrrx:szWin32CPUInfo._is_i586cCs| ¡o|jdddkS)Nrr r)rwr)r-rrrrz=szWin32CPUInfo._is_i686cCs| ¡o|jdddkS)Nrr r)rwr)r-rrrr|@szWin32CPUInfo._is_PentiumcCs,| ¡o*|jdddko*|jdddkS)Nrr rr r)rwr)r-rrrrCszWin32CPUInfo._is_PentiumMMXcCs,| ¡o*|jdddko*|jdddkS)Nrr rr r)rwr)r-rrrr~GszWin32CPUInfo._is_PentiumProcCs,| ¡o*|jdddko*|jdddkS)Nrr rr )rrr)rwr)r-rrrr}KszWin32CPUInfo._is_PentiumIIcCs,| ¡o*|jdddko*|jdddkS)Nrr rr )rrré é )rwr)r-rrrr€OszWin32CPUInfo._is_PentiumIIIcCs| ¡o|jdddkS)Nrr r")rwr)r-rrrrSszWin32CPUInfo._is_PentiumIVcCs,| ¡o*|jdddko*|jdddkS)Nrr rr )ré é)rwr)r-rrrr‚VszWin32CPUInfo._is_PentiumMcCs,| ¡o*|jdddko*|jdddkS)Nrr rr )r"éé)rwr)r-rrrr‡ZszWin32CPUInfo._is_Core2cCst|jƒdkS)Nr)r&r)r-rrrr‹`szWin32CPUInfo._is_singleCPUcCs t|jƒS)N)r&r)r-rrrr=cszWin32CPUInfo._getNCPUscCs`| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡rX|jdddkSdSdS) Nrr rr r)rr")rrr"F)rwrrf)r-rrrrfs $zWin32CPUInfo._has_mmxcCs„| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡r||jdddkrj|jdddkpz|jdddkSdSdS) Nrr rr )rrrr#r$r")rrrr#F)rwrrf)r-rrrroszWin32CPUInfo._has_ssecCs8| ¡r | ¡p| ¡p| ¡S| ¡r0| ¡SdSdS)NF)rwZ is_Pentium4Z is_PentiumMZis_Core2rfZis_AMD64)r-rrrr‘{s zWin32CPUInfo._has_sse2cCs| ¡o|jdddkS)Nrr )rrr")rfr)r-rrrr”„szWin32CPUInfo._has_3dnowcCs| ¡o|jdddkS)Nrr )rr")rfr)r-rrrr•‡szWin32CPUInfo._has_3dnowext)$rHrIrJrrrVrWrZrrrrrr r!rgrtr–rurxrzr|rr~r}r€rr‚r‡r‹r=rrr‘r”r•rrrrrØsB(   rÚlinuxZirixÚdarwinÚsunosÚwin32Úcygwin)rr)rr)rr)rr)rKÚ__all__r r>r@Úsysr8r Ú subprocessrrrr r*r+rLr—rÎrêrr4ZcpuinforrrrrÚsF   #D:.J3