B <ÓFd·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écCslyt|ƒ\}}Wn2tk rBtƒ}tjt|ƒt|dd|fSXt |¡rdt  |¡|krdd|fSd|fS)N)Ú stacklevelFT) rÚEnvironmentErrorrÚwarningsÚwarnÚstrÚ UserWarningÚosÚ WIFEXITEDÚ WEXITSTATUS)ÚcmdÚsuccessful_statusr ZstatusÚoutputÚe©rúJ/opt/alt/python37/lib64/python3.7/site-packages/numpy/distutils/cpuinfo.pyÚ getoutputs rcKs@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 rrÚlinerrrÚcommand_by_line3s r#cCsVi}xLt|||ddD]6}dd„| |d¡Dƒ}t|ƒdkr|d||d<qW|S)Nr )rr cSsg|] }| ¡‘qSr)r)Ú.0Úsrrrú @sz*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. cCsy|ƒSYnXdS)Nr)ÚselfÚfuncrrrÚ _try_callJszCPUInfoBase._try_callcCsX| d¡sLt|d|ƒrDt|d|ƒ}t|tjƒrL|j|fdd„Sndd„St|ƒ‚dS)NÚ_cSs||ƒS)Nr)r0ÚattrrrrÚUóz)CPUInfoBase.__getattr__..cSsdS)Nrrrrrr4Wr5)Ú startswithÚhasattrÚgetattrÚ isinstanceÚtypesÚ MethodTyper1ÚAttributeError)r/Únamer3rrrÚ __getattr__Ps  zCPUInfoBase.__getattr__cCsdS)Nr r)r/rrrÚ _getNCPUsZszCPUInfoBase._getNCPUscCs&t ¡d}t d¡ |¡ d¡}|S)Nrz(\d+)bitr )ÚplatformZ architectureÚreÚcompileÚsearchÚgroup)r/ZabitsZnbitsrrrZ __get_nbits]s zCPUInfoBase.__get_nbitscCs | ¡dkS)NZ32)Ú_CPUInfoBase__get_nbits)r/rrrÚ _is_32bitbszCPUInfoBase._is_32bitcCs | ¡dkS)NZ64)rE)r/rrrÚ _is_64biteszCPUInfoBase._is_64bitN) Ú__name__Ú __module__Ú __qualname__Ú__doc__r1r>r?rErFrGrrrrr.Es 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ƒ}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&zsz)LinuxCPUInfo.__init__..ú:r éÿÿÿÿ)rrrÚopenr rr rrrr(r)ÚappendÚcloseÚ __class__) r/rrrZforr"Z name_valuer=ÚvaluerrrÚ__init__ls*      zLinuxCPUInfo.__init__cCsdS)Nr)r/rrrÚ _not_impl„r5zLinuxCPUInfo._not_implcCs|jdddkS)NrÚ vendor_idÚ AuthenticAMD)r)r/rrrÚ_is_AMDˆszLinuxCPUInfo._is_AMDcCs| ¡o|jdddkS)NrÚmodelÚ2)rXr)r/rrrÚ_is_AthlonK6_2‹szLinuxCPUInfo._is_AthlonK6_2cCs| ¡o|jdddkS)NrrYÚ3)rXr)r/rrrÚ_is_AthlonK6_3ŽszLinuxCPUInfo._is_AthlonK6_3cCst d|jdd¡dk S)Nz .*?AMD-K6rz model name)rAÚmatchr)r/rrrÚ _is_AthlonK6‘szLinuxCPUInfo._is_AthlonK6cCst d|jdd¡dk S)Nz .*?AMD-K7rz model name)rAr^r)r/rrrÚ _is_AthlonK7”szLinuxCPUInfo._is_AthlonK7cCst d|jdd¡dk S)Nz.*?Athlon\(tm\) MP\brz model name)rAr^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)rAr^r)r/rrrÚ _is_Athlon64žszLinuxCPUInfo._is_Athlon64cCst d|jdd¡dk S)Nz.*?Athlon HX\brz model name)rAr^r)r/rrrÚ _is_AthlonHX¢szLinuxCPUInfo._is_AthlonHXcCst d|jdd¡dk S)Nz .*?Opteron\brz model name)rAr^r)r/rrrÚ _is_Opteron¦szLinuxCPUInfo._is_OpteroncCst d|jdd¡dk S)Nz .*?Hammer\brz model name)rAr^r)r/rrrÚ _is_HammerªszLinuxCPUInfo._is_HammercCs|jdddkS)NrrZAlpha)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)rkr)r/rrrÚ_is_EV5¶szLinuxCPUInfo._is_EV5cCs| ¡o|jdddkS)Nrz cpu modelZEV56)rkr)r/rrrÚ_is_EV56¹szLinuxCPUInfo._is_EV56cCs| ¡o|jdddkS)Nrz cpu modelZPCA56)rkr)r/rrrÚ _is_PCA56¼szLinuxCPUInfo._is_PCA56cCs|jdddkS)NrrVÚ 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)rtr)r/rrrÚ_is_i686ÍszLinuxCPUInfo._is_i686cCst d|jdd¡dk S)Nz .*?Celeronrz model name)rAr^r)r/rrrÚ _is_CeleronÐszLinuxCPUInfo._is_CeleroncCst d|jdd¡dk S)Nz .*?Pentiumrz model name)rAr^r)r/rrrÚ _is_PentiumÔszLinuxCPUInfo._is_PentiumcCst d|jdd¡dk S)Nz.*?Pentium.*?II\brz model name)rAr^r)r/rrrÚ _is_PentiumIIØszLinuxCPUInfo._is_PentiumIIcCst d|jdd¡dk S)Nz.*?PentiumPro\brz model name)rAr^r)r/rrrÚ_is_PentiumProÜszLinuxCPUInfo._is_PentiumProcCst d|jdd¡dk S)Nz.*?Pentium.*?MMX\brz model name)rAr^r)r/rrrÚ_is_PentiumMMXàszLinuxCPUInfo._is_PentiumMMXcCst d|jdd¡dk S)Nz.*?Pentium.*?III\brz model name)rAr^r)r/rrrÚ_is_PentiumIIIäszLinuxCPUInfo._is_PentiumIIIcCst d|jdd¡dk S)Nz.*?Pentium.*?(IV|4)\brz model name)rAr^r)r/rrrÚ _is_PentiumIVèszLinuxCPUInfo._is_PentiumIVcCst d|jdd¡dk S)Nz.*?Pentium.*?M\brz model name)rAr^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 familyrvrcz .*?\blm\bÚflags)rtrr€Z has_ssse3rAr^)r/rrrÚ _is_Noconaós zLinuxCPUInfo._is_NoconacCs*| ¡o(| ¡o(t d|jdd¡dk S)Nz.*?Core\(TM\)2\brz model name)Zis_64bitrtrAr^r)r/rrrÚ _is_Core2úszLinuxCPUInfo._is_Core2cCst d|jdd¡dk S)Nz .*?Itanium\brrb)rAr^r)r/rrrÚ _is_ItaniumÿszLinuxCPUInfo._is_ItaniumcCst d|jddtj¡dk S)Nz .*?XEON\brz model name)rAr^rÚ IGNORECASE)r/rrrÚ_is_XEONszLinuxCPUInfo._is_XEONcCst|jƒdkS)Nr )r)r)r/rrrÚ _is_singleCPU szLinuxCPUInfo._is_singleCPUcCs t|jƒS)N)r)r)r/rrrr?szLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugÚyes)r)r/rrrÚ _has_fdiv_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugr‰)r)r/rrrÚ _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCst d|jdd¡dk S)Nz .*?\bmmx\brr‚)rAr^r)r/rrrÚ_has_mmxszLinuxCPUInfo._has_mmxcCst d|jdd¡dk S)Nz .*?\bsse\brr‚)rAr^r)r/rrrÚ_has_sseszLinuxCPUInfo._has_ssecCst d|jdd¡dk S)Nz .*?\bsse2\brr‚)rAr^r)r/rrrÚ _has_sse2szLinuxCPUInfo._has_sse2cCst d|jdd¡dk S)Nz .*?\bpni\brr‚)rAr^r)r/rrrÚ _has_sse3 szLinuxCPUInfo._has_sse3cCst d|jdd¡dk S)Nz .*?\bssse3\brr‚)rAr^r)r/rrrÚ _has_ssse3#szLinuxCPUInfo._has_ssse3cCst d|jdd¡dk S)Nz .*?\b3dnow\brr‚)rAr^r)r/rrrÚ _has_3dnow&szLinuxCPUInfo._has_3dnowcCst d|jdd¡dk S)Nz.*?\b3dnowext\brr‚)rAr^r)r/rrrÚ _has_3dnowext)szLinuxCPUInfo._has_3dnowext)4rHrIrJrrTrUrXr[r]r_r`rarerfrgrhrirjrlrmrnroÚ_is_i386rqrrrurwrxryrzr{r|r}r~rrrƒr„r…r‡Z_is_Xeonrˆr?rŠr‹rŒrrŽrrr‘r’rrrrrLhsbrLc@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/rrrrrT/s  zIRIXCPUInfo.__init__cCsdS)Nr)r/rrrrU6r5zIRIXCPUInfo._not_implcCs|j d¡dkS)NÚNUM_PROCESSORSÚ1)rÚget)r/rrrrˆ8szIRIXCPUInfo._is_singleCPUcCst|j dd¡ƒS)Nr—r )Úintrr™)r/rrrr?;szIRIXCPUInfo._getNCPUscCs |j d¡ ¡d ¡d|kS)NZ PROCESSORSrzr%s)rr™r(Úlower)r/ÚnrrrZ __cputype>szIRIXCPUInfo.__cputypecCs | d¡S)NiÐ)Ú_IRIXCPUInfo__cputype)r/rrrÚ _is_r2000@r5zIRIXCPUInfo._is_r2000cCs | d¡S)Ni¸ )r)r/rrrÚ _is_r3000Ar5zIRIXCPUInfo._is_r3000cCs | d¡S)Ni<)r)r/rrrÚ _is_r3900Br5zIRIXCPUInfo._is_r3900cCs | d¡S)Ni )r)r/rrrÚ _is_r4000Cr5zIRIXCPUInfo._is_r4000cCs | d¡S)Ni)r)r/rrrÚ _is_r4100Dr5zIRIXCPUInfo._is_r4100cCs | d¡S)NiÌ)r)r/rrrÚ _is_r4300Er5zIRIXCPUInfo._is_r4300cCs | d¡S)Ni0)r)r/rrrÚ _is_r4400Fr5zIRIXCPUInfo._is_r4400cCs | d¡S)Niø)r)r/rrrÚ _is_r4600Gr5zIRIXCPUInfo._is_r4600cCs | d¡S)Ni*)r)r/rrrÚ _is_r4650Hr5zIRIXCPUInfo._is_r4650cCs | d¡S)Niˆ)r)r/rrrÚ _is_r5000Ir5zIRIXCPUInfo._is_r5000cCs | d¡S)Nip)r)r/rrrÚ _is_r6000Jr5zIRIXCPUInfo._is_r6000cCs | d¡S)Ni@)r)r/rrrÚ _is_r8000Kr5zIRIXCPUInfo._is_r8000cCs | d¡S)Ni')r)r/rrrÚ _is_r10000Lr5zIRIXCPUInfo._is_r10000cCs | d¡S)Nià.)r)r/rrrÚ _is_r12000Mr5zIRIXCPUInfo._is_r12000cCs | d¡S)NZorion)r)r/rrrÚ _is_rorionNr5zIRIXCPUInfo._is_rorioncCsy |j d¡SYnXdS)NÚMACHINE)rr™)r/rrrÚget_ipPs zIRIXCPUInfo.get_ipcCs|j d¡ ¡d|kS)Nr­zip%s)rr™r›)r/rœrrrÚ __machineSszIRIXCPUInfo.__machinecCs | d¡S)Né)Ú_IRIXCPUInfo__machine)r/rrrÚ_is_IP19Ur5zIRIXCPUInfo._is_IP19cCs | d¡S)Né)r±)r/rrrÚ_is_IP20Vr5zIRIXCPUInfo._is_IP20cCs | d¡S)Né)r±)r/rrrÚ_is_IP21Wr5zIRIXCPUInfo._is_IP21cCs | d¡S)Né)r±)r/rrrÚ_is_IP22Xr5zIRIXCPUInfo._is_IP22cCs| d¡o| ¡S)Nr·)r±r¡)r/rrrÚ _is_IP22_4kYr5zIRIXCPUInfo._is_IP22_4kcCs| d¡o| ¡S)Nr·)r±r§)r/rrrÚ _is_IP22_5kZr5zIRIXCPUInfo._is_IP22_5kcCs | d¡S)Né)r±)r/rrrÚ_is_IP24[r5zIRIXCPUInfo._is_IP24cCs | d¡S)Né)r±)r/rrrÚ_is_IP25\r5zIRIXCPUInfo._is_IP25cCs | d¡S)Né)r±)r/rrrÚ_is_IP26]r5zIRIXCPUInfo._is_IP26cCs | d¡S)Né)r±)r/rrrÚ_is_IP27^r5zIRIXCPUInfo._is_IP27cCs | d¡S)Né)r±)r/rrrÚ_is_IP28_r5zIRIXCPUInfo._is_IP28cCs | d¡S)Né)r±)r/rrrÚ_is_IP30`r5zIRIXCPUInfo._is_IP30cCs | d¡S)Né )r±)r/rrrÚ_is_IP32ar5zIRIXCPUInfo._is_IP32cCs| d¡o| ¡S)NrÇ)r±r§)r/rrrÚ _is_IP32_5kbr5zIRIXCPUInfo._is_IP32_5kcCs| d¡o| ¡S)NrÇ)r±rª)r/rrrÚ _is_IP32_10kcr5zIRIXCPUInfo._is_IP32_10k))rHrIrJrrTrUrˆr?rrž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-rR)r/rrrrrTis  zDarwinCPUInfo.__init__cCsdS)Nr)r/rrrrUqr5zDarwinCPUInfo._not_implcCst|jd dd¡ƒS)NrÏzhw.ncpur )ršrr™)r/rrrr?sszDarwinCPUInfo._getNCPUscCs|jdddkS)NrÏz hw.machinezPower Macintosh)r)r/rrrÚ_is_Power_Macintoshvsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)NrÌÚi386)r)r/rrrr“yszDarwinCPUInfo._is_i386cCs|jddkS)NrÌZppc)r)r/rrrÚ_is_ppc{szDarwinCPUInfo._is_ppccCs|jdd|kS)NrÍzppc%s)r)r/rœrrrr¯~szDarwinCPUInfo.__machinecCs | d¡S)NiY)Ú_DarwinCPUInfo__machine)r/rrrÚ _is_ppc601€r5zDarwinCPUInfo._is_ppc601cCs | d¡S)NiZ)rÓ)r/rrrÚ _is_ppc602r5zDarwinCPUInfo._is_ppc602cCs | d¡S)Ni[)rÓ)r/rrrÚ _is_ppc603‚r5zDarwinCPUInfo._is_ppc603cCs | d¡S)NZ603e)rÓ)r/rrrÚ _is_ppc603eƒr5zDarwinCPUInfo._is_ppc603ecCs | d¡S)Ni\)rÓ)r/rrrÚ _is_ppc604„r5zDarwinCPUInfo._is_ppc604cCs | d¡S)NZ604e)rÓ)r/rrrÚ _is_ppc604e…r5zDarwinCPUInfo._is_ppc604ecCs | d¡S)Nil)rÓ)r/rrrÚ _is_ppc620†r5zDarwinCPUInfo._is_ppc620cCs | d¡S)Niv)rÓ)r/rrrÚ _is_ppc630‡r5zDarwinCPUInfo._is_ppc630cCs | d¡S)Niä)rÓ)r/rrrÚ _is_ppc740ˆr5zDarwinCPUInfo._is_ppc740cCs | d¡S)Niè)rÓ)r/rrrÚ _is_ppc7400‰r5zDarwinCPUInfo._is_ppc7400cCs | d¡S)Ni)rÓ)r/rrrÚ _is_ppc7450Šr5zDarwinCPUInfo._is_ppc7450cCs | d¡S)Niî)rÓ)r/rrrÚ _is_ppc750‹r5zDarwinCPUInfo._is_ppc750cCs | d¡S)Ni“)rÓ)r/rrrÚ _is_ppc403Œr5zDarwinCPUInfo._is_ppc403cCs | d¡S)Niù)rÓ)r/rrrÚ _is_ppc505r5zDarwinCPUInfo._is_ppc505cCs | d¡S)Ni!)rÓ)r/rrrÚ _is_ppc801Žr5zDarwinCPUInfo._is_ppc801cCs | d¡S)Ni5)rÓ)r/rrrÚ _is_ppc821r5zDarwinCPUInfo._is_ppc821cCs | d¡S)Ni7)rÓ)r/rrrÚ _is_ppc823r5zDarwinCPUInfo._is_ppc823cCs | d¡S)Ni\)rÓ)r/rrrÚ _is_ppc860‘r5zDarwinCPUInfo._is_ppc860)rHrIrJrrTrUr?rÐr“rÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårrrrrËfs4rË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#rAr^rDrR)r/rr"ÚmrrrrT˜s  zSunOSCPUInfo.__init__cCsdS)Nr)r/rrrrU©r5zSunOSCPUInfo._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 )ršrr™)r/rrrr?²szSunOSCPUInfo._getNCPUscCs|jddkS)NrÌZsun4)r)r/rrrÚ_is_sun4µszSunOSCPUInfo._is_sun4cCst d|jd¡dk S)NZSUNWrè)rAr^r)r/rrrÚ_is_SUNW¸szSunOSCPUInfo._is_SUNWcCst d|jd¡dk S)Nz.*SPARCstation-5rè)rAr^r)r/rrrÚ_is_sparcstation5ºszSunOSCPUInfo._is_sparcstation5cCst d|jd¡dk S)Nz .*Ultra-1rè)rAr^r)r/rrrÚ _is_ultra1¼szSunOSCPUInfo._is_ultra1cCst d|jd¡dk S)Nz .*Ultra-250rè)rAr^r)r/rrrÚ _is_ultra250¾szSunOSCPUInfo._is_ultra250cCst d|jd¡dk S)Nz .*Ultra-2rè)rAr^r)r/rrrÚ _is_ultra2ÀszSunOSCPUInfo._is_ultra2cCst d|jd¡dk S)Nz .*Ultra-30rè)rAr^r)r/rrrÚ _is_ultra30ÂszSunOSCPUInfo._is_ultra30cCst d|jd¡dk S)Nz .*Ultra-4rè)rAr^r)r/rrrÚ _is_ultra4ÄszSunOSCPUInfo._is_ultra4cCst d|jd¡dk S)Nz .*Ultra-5_10rè)rAr^r)r/rrrÚ _is_ultra5_10ÆszSunOSCPUInfo._is_ultra5_10cCst d|jd¡dk S)Nz .*Ultra-5rè)rAr^r)r/rrrÚ _is_ultra5ÈszSunOSCPUInfo._is_ultra5cCst d|jd¡dk S)Nz .*Ultra-60rè)rAr^r)r/rrrÚ _is_ultra60ÊszSunOSCPUInfo._is_ultra60cCst d|jd¡dk S)Nz .*Ultra-80rè)rAr^r)r/rrrÚ _is_ultra80ÌszSunOSCPUInfo._is_ultra80cCst d|jd¡dk S)Nz.*Ultra-Enterpriserè)rAr^r)r/rrrÚ_is_ultraenterpriceÎsz SunOSCPUInfo._is_ultraenterpricecCst d|jd¡dk S)Nz.*Ultra-Enterprise-10000rè)rAr^r)r/rrrÚ_is_ultraenterprice10kÐsz#SunOSCPUInfo._is_ultraenterprice10kcCst d|jd¡dk S)Nz .*Sun-Firerè)rAr^r)r/rrrÚ _is_sunfireÒszSunOSCPUInfo._is_sunfirecCst d|jd¡dk S)Nz.*Ultrarè)rAr^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)rHrIrJrrTrUr“rîrðr?rñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrræ”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¬WqZWWntt ¡ddƒYnX||j_dS)NrrzFfamily\s+(?P\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)r Z ProcessorrNZ IdentifierZFMLÚFamilyZMDLÚModelZSTPZSteppingz (ignoring))rÚsysÚ version_infoÚwinregÚ_winregrArBr†ÚOpenKeyÚHKEY_LOCAL_MACHINEÚpkeyZEnumKeyÚerrorrPZ EnumValuerCršrDÚprintÚexc_inforR) r/rr ZprgxZchndZpnumÚprocZphndZpidxr=rSZvtpeZsrchrrrrTæsH     "zWin32CPUInfo.__init__cCsdS)Nr)r/rrrrUr5zWin32CPUInfo._not_implcCs|jdddkS)NrÚVendorIdentifierrW)r)r/rrrrXszWin32CPUInfo._is_AMDcCs| ¡o|jdddkS)Nrré)rdr)r/rrrÚ _is_Am486szWin32CPUInfo._is_Am486cCs| ¡o|jdddkS)Nrrr)rdr)r/rrrÚ _is_Am5x86szWin32CPUInfo._is_Am5x86cCs,| ¡o*|jdddko*|jdddkS)Nrrér)rr r'r)rdr)r/rrrÚ _is_AMDK5szWin32CPUInfo._is_AMDK5cCs,| ¡o*|jdddko*|jdddkS)Nrrrr)éé)rdr)r/rrrÚ _is_AMDK6"szWin32CPUInfo._is_AMDK6cCs,| ¡o*|jdddko*|jdddkS)Nrrrré)rdr)r/rrrÚ _is_AMDK6_2&szWin32CPUInfo._is_AMDK6_2cCs,| ¡o*|jdddko*|jdddkS)Nrrrré )rdr)r/rrrÚ _is_AMDK6_3*szWin32CPUInfo._is_AMDK6_3cCs| ¡o|jdddkS)Nrrr)rdr)r/rrrÚ _is_AMDK7.szWin32CPUInfo._is_AMDK7cCs| ¡o|jdddkS)Nrré)rdr)r/rrrre5szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrrrp)r)r/rrrrq:szWin32CPUInfo._is_IntelcCs|jdddkS)Nrrr)r)r/rrrr“=szWin32CPUInfo._is_i386cCs|jdddkS)Nrrr)r)r/rrrrr@szWin32CPUInfo._is_i486cCs| ¡o|jdddkS)Nrrr)rtr)r/rrrruCszWin32CPUInfo._is_i586cCs| ¡o|jdddkS)Nrrr)rtr)r/rrrrwFszWin32CPUInfo._is_i686cCs| ¡o|jdddkS)Nrrr)rtr)r/rrrryIszWin32CPUInfo._is_PentiumcCs,| ¡o*|jdddko*|jdddkS)Nrrrrr)rtr)r/rrrr|LszWin32CPUInfo._is_PentiumMMXcCs,| ¡o*|jdddko*|jdddkS)Nrrrrr )rtr)r/rrrr{PszWin32CPUInfo._is_PentiumProcCs,| ¡o*|jdddko*|jdddkS)Nrrrr)rrr)rtr)r/rrrrzTszWin32CPUInfo._is_PentiumIIcCs,| ¡o*|jdddko*|jdddkS)Nrrrr)rrré é )rtr)r/rrrr}XszWin32CPUInfo._is_PentiumIIIcCs| ¡o|jdddkS)Nrrr )rtr)r/rrrr~\szWin32CPUInfo._is_PentiumIVcCs,| ¡o*|jdddko*|jdddkS)Nrrrr)ré é)rtr)r/rrrr_szWin32CPUInfo._is_PentiumMcCs,| ¡o*|jdddko*|jdddkS)Nrrrr)r éé)rtr)r/rrrr„cszWin32CPUInfo._is_Core2cCst|jƒdkS)Nr )r)r)r/rrrrˆiszWin32CPUInfo._is_singleCPUcCs t|jƒS)N)r)r)r/rrrr?lszWin32CPUInfo._getNCPUscCs`| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡rX|jdddkSdSdS) Nrrrrr)rr )rrr F)rtrrd)r/rrrrŒos $zWin32CPUInfo._has_mmxcCs„| ¡r>|jdddkr,|jdddkp<|jdddkS| ¡r||jdddkrj|jdddkpz|jdddkSdSdS) Nrrrr)rrrr!r"r )rrrr!F)rtrrd)r/rrrrxszWin32CPUInfo._has_ssecCs8| ¡r | ¡p| ¡p| ¡S| ¡r0| ¡SdSdS)NF)rtZ is_Pentium4Z is_PentiumMZis_Core2rdZis_AMD64)r/rrrrŽ„s zWin32CPUInfo._has_sse2cCs| ¡o|jdddkS)Nrr)rrr )rdr)r/rrrr‘szWin32CPUInfo._has_3dnowcCs| ¡o|jdddkS)Nrr)rr )rdr)r/rrrr’szWin32CPUInfo._has_3dnowext)$rHrIrJrr rTrUrXrrrrrrrrerqr“rrrurwryr|r{rzr}r~rr„rˆr?rŒrrŽr‘r’rrrrrÞsB+   rZlinuxZirixÚdarwinZsunosZwin32Úcygwin)r r )r r )r r )r r ) rKZ __future__rrrÚ__all__rrAr:rrÚ subprocessrZcommandsr r@Znumpy.distutils.compatrrr r#r-Úobjectr.rLr”rËrærr6ZcpuinforrrrrÚ sJ    #E:.J6