U Dx`X@sNdZdgZddlZddlZddlZddlZddlZddlZddlm Z d!ddZ d"d d Z d#d d Z d$d dZ GdddZGdddeZGdddeZGdddeZGdddeZGdddeZejdreZnfejdreZnRejdkreZn@ejdreZn,ejdr,eZnejd r@eZneZeZdS)%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 cpuN)getstatusoutputrc Csvzt|\}}Wn<tk rL}ztjt|t|dWYdSd}~XYnXt|rnt||krnd|fSd|fS)N stacklevel)FTF) rEnvironmentErrorwarningswarnstr UserWarningos WIFEXITED WEXITSTATUS)cmdsuccessful_statusrstatusoutputer>/tmp/pip-target-zr53vnty/lib/python/numpy/distutils/cpuinfo.py getoutputsrcKs<i}|D].}t||||dd\}}|r|||<q|SNrrr)rstrip)rrkwinfokeyokrrrr command_info%s  r ccs:t|||dd\}}|sdS|D]}|Vq&dSr)r splitlinesr)rrrrrlinerrrcommand_by_line.s  r#cCsRi}t|||ddD]6}dd||dD}t|dkr|d||d<q|S)NrrcSsg|] }|qSrr.0srrr ;sz*key_value_from_command..r)r#splitlen)rseprrdr"lrrrkey_value_from_command6s  r/c@s@eZdZdZddZddZddZdd Zd d Zd d Z dS) CPUInfoBasezkHolds CPU information and provides methods for requiring the availability of various CPU features. cCs"z|WStk rYnXdSN) Exception)selffuncrrr _try_callEszCPUInfoBase._try_callcCsX|dsLt|d|rDt|d|}t|tjrL|j|fddSnddSt|dS)N_cSs||Sr1r)r4attrrrrPz)CPUInfoBase.__getattr__..cSsdSr1rrrrrr8Rr9) startswithhasattrgetattr isinstancetypes MethodTyper5AttributeError)r3namer7rrr __getattr__Ks  zCPUInfoBase.__getattr__cCsdSNrrr3rrr _getNCPUsUszCPUInfoBase._getNCPUscCs&td}td|d}|S)Nrz(\d+)bitr)platform architecturerecompilesearchgroup)r3ZabitsnbitsrrrZ __get_nbitsXs zCPUInfoBase.__get_nbitscCs |dkS)NZ32_CPUInfoBase__get_nbitsrDrrr _is_32bit]szCPUInfoBase._is_32bitcCs |dkS)NZ64rMrDrrr _is_64bit`szCPUInfoBase._is_64bitN) __name__ __module__ __qualname____doc__r5rBrErNrOrPrrrrr0@s r0c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%ZeZd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Z d:d;Z!dd?Z#d@dAZ$dBdCZ%dDdEZ&dFdGZ'e'Z(dHdIZ)dJdKZ*dLdMZ+dNdOZ,dPdQZ-dRdSZ.dTdUZ/dVdWZ0dXdYZ1dZd[Z2d\d]Z3dS)^ LinuxCPUInfoNc Cs|jdk rdSig}td\}}|r4||dd<z td}Wn6tk rv}ztjt|tddW5d}~XYnfX|D]V}dd| d d D}t |dkrq||\}} |r||d kr| i| |d |<q|| ||j _dS) Nzuname -mrZuname_mz /proc/cpuinfor)rcSsg|] }|qSrr$r%rrrr(tsz)LinuxCPUInfo.__init__..:r)rrropenr r r r r r*r+appendclose __class__) r3rrrforr" name_valuerAvaluerrr__init__gs(   &  zLinuxCPUInfo.__init__cCsdSr1rrDrrr _not_impl~r9zLinuxCPUInfo._not_implcCs|jdddkS)Nr vendor_id AuthenticAMDrrDrrr_is_AMDszLinuxCPUInfo._is_AMDcCs|o|jdddkS)Nrmodel2rdrrDrrr_is_AthlonK6_2szLinuxCPUInfo._is_AthlonK6_2cCs|o|jdddkS)Nrre3rgrDrrr_is_AthlonK6_3szLinuxCPUInfo._is_AthlonK6_3cCstd|jdddk S)Nz .*?AMD-K6r model namerHmatchrrDrrr _is_AthlonK6szLinuxCPUInfo._is_AthlonK6cCstd|jdddk S)Nz .*?AMD-K7rrkrlrDrrr _is_AthlonK7szLinuxCPUInfo._is_AthlonK7cCstd|jdddk S)Nz.*?Athlon\(tm\) MP\brrkrlrDrrr _is_AthlonMPs  zLinuxCPUInfo._is_AthlonMPcCs|o|jdddkS)Nrfamily15is_AMDrrDrrr _is_AMD64szLinuxCPUInfo._is_AMD64cCstd|jdddk S)Nz.*?Athlon\(tm\) 64\brrkrlrDrrr _is_Athlon64s  zLinuxCPUInfo._is_Athlon64cCstd|jdddk S)Nz.*?Athlon HX\brrkrlrDrrr _is_AthlonHXs  zLinuxCPUInfo._is_AthlonHXcCstd|jdddk S)Nz .*?Opteron\brrkrlrDrrr _is_Opterons  zLinuxCPUInfo._is_OpteroncCstd|jdddk S)Nz .*?Hammer\brrkrlrDrrr _is_Hammers  zLinuxCPUInfo._is_HammercCs|jdddkS)NrrAlpharcrDrrr _is_AlphaszLinuxCPUInfo._is_AlphacCs|o|jdddkS)Nr cpu modelZEV4Zis_AlpharrDrrr_is_EV4szLinuxCPUInfo._is_EV4cCs|o|jdddkS)Nrr|ZEV5r}rDrrr_is_EV5szLinuxCPUInfo._is_EV5cCs|o|jdddkS)Nrr|ZEV56r}rDrrr_is_EV56szLinuxCPUInfo._is_EV56cCs|o|jdddkS)Nrr|ZPCA56r}rDrrr _is_PCA56szLinuxCPUInfo._is_PCA56cCs|jdddkS)Nrra GenuineIntelrcrDrrr _is_IntelszLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486rcrDrrr_is_i486szLinuxCPUInfo._is_i486cCs|o|jdddkS)Nr cpu family5is_IntelrrDrrr_is_i586szLinuxCPUInfo._is_i586cCs|o|jdddkS)Nrr6rrDrrr_is_i686szLinuxCPUInfo._is_i686cCstd|jdddk S)Nz .*?CeleronrrkrlrDrrr _is_Celerons  zLinuxCPUInfo._is_CeleroncCstd|jdddk S)Nz .*?PentiumrrkrlrDrrr _is_Pentiums  zLinuxCPUInfo._is_PentiumcCstd|jdddk S)Nz.*?Pentium.*?II\brrkrlrDrrr _is_PentiumIIs  zLinuxCPUInfo._is_PentiumIIcCstd|jdddk S)Nz.*?PentiumPro\brrkrlrDrrr_is_PentiumPros  zLinuxCPUInfo._is_PentiumProcCstd|jdddk S)Nz.*?Pentium.*?MMX\brrkrlrDrrr_is_PentiumMMXs  zLinuxCPUInfo._is_PentiumMMXcCstd|jdddk S)Nz.*?Pentium.*?III\brrkrlrDrrr_is_PentiumIIIs  zLinuxCPUInfo._is_PentiumIIIcCstd|jdddk S)Nz.*?Pentium.*?(IV|4)\brrkrlrDrrr _is_PentiumIVs  zLinuxCPUInfo._is_PentiumIVcCstd|jdddk S)Nz.*?Pentium.*?M\brrkrlrDrrr _is_PentiumMs  zLinuxCPUInfo._is_PentiumMcCs|o|Sr1)Z is_PentiumIVhas_sse3rDrrr _is_PrescottszLinuxCPUInfo._is_PrescottcCsX|oV|jdddks,|jdddkoV|oV| oVtd|jdddk S)Nrrrrrz .*?\blm\bflags)rrrZ has_ssse3rHrmrDrrr _is_NoconaszLinuxCPUInfo._is_NoconacCs*|o(|o(td|jdddk S)Nz.*?Core\(TM\)2\brrk)Zis_64bitrrHrmrrDrrr _is_Core2s zLinuxCPUInfo._is_Core2cCstd|jdddk S)Nz .*?Itanium\brrqrlrDrrr _is_Itaniums  zLinuxCPUInfo._is_ItaniumcCstd|jddtjdk S)Nz .*?XEON\brrk)rHrmr IGNORECASErDrrr_is_XEONs  zLinuxCPUInfo._is_XEONcCst|jdkSrCr+rrDrrr _is_singleCPUszLinuxCPUInfo._is_singleCPUcCs t|jSr1rrDrrrrEszLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bugyesrcrDrrr _has_fdiv_bug szLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugrrcrDrrr _has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCstd|jdddk S)Nz .*?\bmmx\brrrlrDrrr_has_mmxszLinuxCPUInfo._has_mmxcCstd|jdddk S)Nz .*?\bsse\brrrlrDrrr_has_sseszLinuxCPUInfo._has_ssecCstd|jdddk S)Nz .*?\bsse2\brrrlrDrrr _has_sse2szLinuxCPUInfo._has_sse2cCstd|jdddk S)Nz .*?\bpni\brrrlrDrrr _has_sse3szLinuxCPUInfo._has_sse3cCstd|jdddk S)Nz .*?\bssse3\brrrlrDrrr _has_ssse3szLinuxCPUInfo._has_ssse3cCstd|jdddk S)Nz .*?\b3dnow\brrrlrDrrr _has_3dnow szLinuxCPUInfo._has_3dnowcCstd|jdddk S)Nz.*?\b3dnowext\brrrlrDrrr _has_3dnowext#szLinuxCPUInfo._has_3dnowext)4rQrRrSrr_r`rdrhrjrnrorprurvrwrxryr{r~rrr_is_i386rrrrrrrrrrrrrrrrrZ_is_XeonrrErrrrrrrrrrrrrrUcsbrUc@s8eZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dJdKZ(dS)L IRIXCPUInfoNcCs(|jdk rdStdddd}||j_dS)Nsysconf )rr)r,r)rr/r[r3rrrrr_)s  zIRIXCPUInfo.__init__cCsdSr1rrDrrrr`0r9zIRIXCPUInfo._not_implcCs|jddkS)NNUM_PROCESSORS1)rgetrDrrrr2szIRIXCPUInfo._is_singleCPUcCst|jddS)NrrintrrrDrrrrE5szIRIXCPUInfo._getNCPUscCs |jddd|kS)NZ PROCESSORSrzr%s)rrr*lowerr3nrrrZ __cputype8szIRIXCPUInfo.__cputypecCs |dS)Ni_IRIXCPUInfo__cputyperDrrr _is_r2000:r9zIRIXCPUInfo._is_r2000cCs |dS)Ni rrDrrr _is_r3000;r9zIRIXCPUInfo._is_r3000cCs |dS)Ni<rrDrrr _is_r3900<r9zIRIXCPUInfo._is_r3900cCs |dS)NirrDrrr _is_r4000=r9zIRIXCPUInfo._is_r4000cCs |dS)NirrDrrr _is_r4100>r9zIRIXCPUInfo._is_r4100cCs |dS)NirrDrrr _is_r4300?r9zIRIXCPUInfo._is_r4300cCs |dS)Ni0rrDrrr _is_r4400@r9zIRIXCPUInfo._is_r4400cCs |dS)NirrDrrr _is_r4600Ar9zIRIXCPUInfo._is_r4600cCs |dS)Ni*rrDrrr _is_r4650Br9zIRIXCPUInfo._is_r4650cCs |dS)NirrDrrr _is_r5000Cr9zIRIXCPUInfo._is_r5000cCs |dS)NiprrDrrr _is_r6000Dr9zIRIXCPUInfo._is_r6000cCs |dS)Ni@rrDrrr _is_r8000Er9zIRIXCPUInfo._is_r8000cCs |dS)Ni'rrDrrr _is_r10000Fr9zIRIXCPUInfo._is_r10000cCs |dS)Ni.rrDrrr _is_r12000Gr9zIRIXCPUInfo._is_r12000cCs |dS)NZorionrrDrrr _is_rorionHr9zIRIXCPUInfo._is_rorioncCs(z|jdWStk r"YnXdS)NMACHINE)rrr2rDrrrget_ipJszIRIXCPUInfo.get_ipcCs|jdd|kS)Nrzip%s)rrrrrrr __machineMszIRIXCPUInfo.__machinecCs |dS)N_IRIXCPUInfo__machinerDrrr_is_IP19Or9zIRIXCPUInfo._is_IP19cCs |dS)NrrDrrr_is_IP20Pr9zIRIXCPUInfo._is_IP20cCs |dS)NrrDrrr_is_IP21Qr9zIRIXCPUInfo._is_IP21cCs |dSNrrDrrr_is_IP22Rr9zIRIXCPUInfo._is_IP22cCs|do|Sr)rrrDrrr _is_IP22_4kSr9zIRIXCPUInfo._is_IP22_4kcCs|do|SrrrrDrrr _is_IP22_5kTr9zIRIXCPUInfo._is_IP22_5kcCs |dS)NrrDrrr_is_IP24Ur9zIRIXCPUInfo._is_IP24cCs |dS)NrrDrrr_is_IP25Vr9zIRIXCPUInfo._is_IP25cCs |dS)NrrDrrr_is_IP26Wr9zIRIXCPUInfo._is_IP26cCs |dS)NrrDrrr_is_IP27Xr9zIRIXCPUInfo._is_IP27cCs |dS)NrrDrrr_is_IP28Yr9zIRIXCPUInfo._is_IP28cCs |dS)NrrDrrr_is_IP30Zr9zIRIXCPUInfo._is_IP30cCs |dSN rrDrrr_is_IP32[r9zIRIXCPUInfo._is_IP32cCs|do|SrrrDrrr _is_IP32_5k\r9zIRIXCPUInfo._is_IP32_5kcCs|do|Sr)rrrDrrr _is_IP32_10k]r9zIRIXCPUInfo._is_IP32_10k))rQrRrSrr_r`rrErrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr&sLrc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)4 DarwinCPUInfoNcCs6|jdk rdStddd}tddd|d<||j_dS)Narchmachine)rrz sysctl hw=r, sysctl_hw)rr r/r[rrrrr_cs zDarwinCPUInfo.__init__cCsdSr1rrDrrrr`kr9zDarwinCPUInfo._not_implcCst|jdddS)Nrzhw.ncpurrrDrrrrEmszDarwinCPUInfo._getNCPUscCs|jdddkS)Nrz hw.machinezPower MacintoshrcrDrrr_is_Power_Macintoshpsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)Nri386rcrDrrrrsszDarwinCPUInfo._is_i386cCs|jddkS)NrppcrcrDrrr_is_ppcuszDarwinCPUInfo._is_ppccCs|jdd|kS)Nrzppc%srcrrrrrxszDarwinCPUInfo.__machinecCs |dS)NiY_DarwinCPUInfo__machinerDrrr _is_ppc601zr9zDarwinCPUInfo._is_ppc601cCs |dS)NiZrrDrrr _is_ppc602{r9zDarwinCPUInfo._is_ppc602cCs |dS)Ni[rrDrrr _is_ppc603|r9zDarwinCPUInfo._is_ppc603cCs |dS)NZ603errDrrr _is_ppc603e}r9zDarwinCPUInfo._is_ppc603ecCs |dS)Ni\rrDrrr _is_ppc604~r9zDarwinCPUInfo._is_ppc604cCs |dS)NZ604errDrrr _is_ppc604er9zDarwinCPUInfo._is_ppc604ecCs |dS)NilrrDrrr _is_ppc620r9zDarwinCPUInfo._is_ppc620cCs |dS)NivrrDrrr _is_ppc630r9zDarwinCPUInfo._is_ppc630cCs |dS)NirrDrrr _is_ppc740r9zDarwinCPUInfo._is_ppc740cCs |dS)NirrDrrr _is_ppc7400r9zDarwinCPUInfo._is_ppc7400cCs |dS)NirrDrrr _is_ppc7450r9zDarwinCPUInfo._is_ppc7450cCs |dS)NirrDrrr _is_ppc750r9zDarwinCPUInfo._is_ppc750cCs |dS)NirrDrrr _is_ppc403r9zDarwinCPUInfo._is_ppc403cCs |dS)NirrDrrr _is_ppc505r9zDarwinCPUInfo._is_ppc505cCs |dS)Ni!rrDrrr _is_ppc801r9zDarwinCPUInfo._is_ppc801cCs |dS)Ni5rrDrrr _is_ppc821r9zDarwinCPUInfo._is_ppc821cCs |dS)Ni7rrDrrr _is_ppc823r9zDarwinCPUInfo._is_ppc823cCs |dS)Ni\rrDrrr _is_ppc860r9zDarwinCPUInfo._is_ppc860)rQrRrSrr_r`rErrrrrrrrrrrrrrrrrrrrrrrrrrr`s4rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3ZdS)4 SunOSCPUInfoNcCsl|jdk rdStdddddd}tddd |d <td D]&}td |}|r8|d |d<q`q8||j_dS)Nrmachuname_iz isainfo -bz isainfo -n)rrrZ isainfo_b isainfo_nzuname -Xrruname_Xz psrinfo -v 0z+\s*The (?P

[\w\d]+) processor operates atp processor)rr r/r#rHrmrKr[)r3rr"mrrrr_s   zSunOSCPUInfo.__init__cCsdSr1rrDrrrr`r9zSunOSCPUInfo._not_implcCs|jddkS)Nr rrcrDrrrrszSunOSCPUInfo._is_i386cCs|jddkS)Nr ZsparcrcrDrrr _is_sparcszSunOSCPUInfo._is_sparccCs|jddkS)Nr sparcv9rcrDrrr _is_sparcv9szSunOSCPUInfo._is_sparcv9cCst|jdddS)Nr ZNumCPUrrrDrrrrEszSunOSCPUInfo._getNCPUscCs|jddkS)NrZsun4rcrDrrr_is_sun4szSunOSCPUInfo._is_sun4cCstd|jddk S)NZSUNWrrlrDrrr_is_SUNWszSunOSCPUInfo._is_SUNWcCstd|jddk S)Nz.*SPARCstation-5rrlrDrrr_is_sparcstation5szSunOSCPUInfo._is_sparcstation5cCstd|jddk S)Nz .*Ultra-1rrlrDrrr _is_ultra1szSunOSCPUInfo._is_ultra1cCstd|jddk S)Nz .*Ultra-250rrlrDrrr _is_ultra250szSunOSCPUInfo._is_ultra250cCstd|jddk S)Nz .*Ultra-2rrlrDrrr _is_ultra2szSunOSCPUInfo._is_ultra2cCstd|jddk S)Nz .*Ultra-30rrlrDrrr _is_ultra30szSunOSCPUInfo._is_ultra30cCstd|jddk S)Nz .*Ultra-4rrlrDrrr _is_ultra4szSunOSCPUInfo._is_ultra4cCstd|jddk S)Nz .*Ultra-5_10rrlrDrrr _is_ultra5_10szSunOSCPUInfo._is_ultra5_10cCstd|jddk S)Nz .*Ultra-5rrlrDrrr _is_ultra5szSunOSCPUInfo._is_ultra5cCstd|jddk S)Nz .*Ultra-60rrlrDrrr _is_ultra60szSunOSCPUInfo._is_ultra60cCstd|jddk S)Nz .*Ultra-80rrlrDrrr _is_ultra80szSunOSCPUInfo._is_ultra80cCstd|jddk S)Nz.*Ultra-EnterpriserrlrDrrr_is_ultraenterpricesz SunOSCPUInfo._is_ultraenterpricecCstd|jddk S)Nz.*Ultra-Enterprise-10000rrlrDrrr_is_ultraenterprice10ksz#SunOSCPUInfo._is_ultraenterprice10kcCstd|jddk S)Nz .*Sun-FirerrlrDrrr _is_sunfireszSunOSCPUInfo._is_sunfirecCstd|jddk S)Nz.*UltrarrlrDrrr _is_ultraszSunOSCPUInfo._is_ultracCs|jddkS)Nr Zsparcv7rcrDrrr_is_cpusparcv7szSunOSCPUInfo._is_cpusparcv7cCs|jddkS)Nr Zsparcv8rcrDrrr_is_cpusparcv8szSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nr rrcrDrrr_is_cpusparcv9szSunOSCPUInfo._is_cpusparcv9)rQrRrSrr_r`rrrrErrrrrrrrrrrrrrrr r!r"r#rrrrrs4rc@s eZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dS)A Win32CPUInfoNz,HARDWARE\DESCRIPTION\System\CentralProcessorc Cst|jdk rdSg}z$ddl}tdtj}||j|j}d}z|||}Wn|j k rlYq6Yq@X|d7}| d|i|||}d}z| ||\} } } Wn|j k rYq@YqX|d}| |d| <| dkr| | } | rt | d|dd<t | d |dd <t | d |dd <qq@Wn.tk rf} zt| d W5d} ~ XYnX||j_dS)NrzFfamily\s+(?P\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)rZ ProcessorrWZ IdentifierZFMLFamilyZMDLModelZSTPZSteppingz (ignoring))rwinregrHrIrOpenKeyHKEY_LOCAL_MACHINEpkeyEnumKeyerrorrYZ EnumValuerJrrKr2printr[)r3rr'ZprgxZchndZpnumprocZphndZpidxrAr^ZvtpeZsrchrrrrr_sB      zWin32CPUInfo.__init__cCsdSr1rrDrrrr`r9zWin32CPUInfo._not_implcCs|jdddkS)NrVendorIdentifierrbrcrDrrrrd szWin32CPUInfo._is_AMDcCs|o|jdddkSNrr%rsrDrrr _is_Am486szWin32CPUInfo._is_Am486cCs|o|jdddkSr0rsrDrrr _is_Am5x86szWin32CPUInfo._is_Am5x86cCs,|o*|jdddko*|jdddkS)Nrr%r&)rrr)rsrDrrr _is_AMDK5szWin32CPUInfo._is_AMDK5cCs,|o*|jdddko*|jdddkS)Nrr%r4r&)rsrDrrr _is_AMDK6szWin32CPUInfo._is_AMDK6cCs,|o*|jdddko*|jdddkS)Nrr%r4r&rsrDrrr _is_AMDK6_2szWin32CPUInfo._is_AMDK6_2cCs,|o*|jdddko*|jdddkS)Nrr%r4r& rsrDrrr _is_AMDK6_3!szWin32CPUInfo._is_AMDK6_3cCs|o|jdddkSNrr%r7rsrDrrr _is_AMDK7%szWin32CPUInfo._is_AMDK7cCs|o|jdddkSNrr%rsrDrrrru,szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrr/rrcrDrrrr1szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr%r5rcrDrrrr4szWin32CPUInfo._is_i386cCs|jdddkSr0rcrDrrrr7szWin32CPUInfo._is_i486cCs|o|jdddkSNrr%r4rrDrrrr:szWin32CPUInfo._is_i586cCs|o|jdddkSr>rrDrrrr=szWin32CPUInfo._is_i686cCs|o|jdddkSrBrrDrrrr@szWin32CPUInfo._is_PentiumcCs,|o*|jdddko*|jdddkS)Nrr%r4r&r1rrDrrrrCszWin32CPUInfo._is_PentiumMMXcCs,|o*|jdddko*|jdddkS)Nrr%r7r&rrrDrrrrGszWin32CPUInfo._is_PentiumProcCs,|o*|jdddko*|jdddkS)Nrr%r7r&)r5r4r7rrDrrrrKszWin32CPUInfo._is_PentiumIIcCs,|o*|jdddko*|jdddkS)Nrr%r7r&r8r:r< rrDrrrrOszWin32CPUInfo._is_PentiumIIIcCs|o|jdddkSr@rrDrrrrSszWin32CPUInfo._is_PentiumIVcCs,|o*|jdddko*|jdddkS)Nrr%r7r&)r< rrDrrrrVszWin32CPUInfo._is_PentiumMcCs,|o*|jdddko*|jdddkS)Nrr%r7r&)rArrDrrrrZszWin32CPUInfo._is_Core2cCst|jdkSrCrrDrrrr`szWin32CPUInfo._is_singleCPUcCs t|jSr1rrDrrrrEcszWin32CPUInfo._getNCPUscCs`|r>|jdddkr,|jdddkp<|jdddkS|rX|jdddkSdSdS) Nrr%r4r&r1r7rAr4r7rAFrrrtrDrrrrfs$zWin32CPUInfo._has_mmxcCs|r>|jdddkr,|jdddkp<|jdddkS|r||jdddkrj|jdddkpz|jdddkSdSdS) Nrr%r7r&rCrA)r7r8r:rDFrLrDrrrroszWin32CPUInfo._has_ssecCs8|r |p|p|S|r0|SdSdS)NF)rZ is_Pentium4Z is_PentiumMZis_Core2rtZis_AMD64rDrrrr{szWin32CPUInfo._has_sse2cCs|o|jdddkS)Nrr%rKrsrDrrrrszWin32CPUInfo._has_3dnowcCs|o|jdddkS)Nrr%rJrsrDrrrrszWin32CPUInfo._has_3dnowext)$rQrRrSrr*r_r`rdr2r3r6r9r;r=r?rurrrrrrrrrrrrrrrErrrrrrrrrr$sB(   r$linuxZirixdarwinsunoswin32cygwin)rr)rr)rr)rr)rT__all__rrFrHsysr>r subprocessrrr r#r/r0rUrrrr$r:ZcpuinforrrrrsH    #D:.J3