2[c@`s+dZddlmZmZmZdgZddlZddlZddlZddl Z ej ddkrddl m Z nddl m Z ddlZddlZddlmZddd Zd dd Zd!dd Zd"dd Zd efdYZdefdYZdefdYZdefdYZdefdYZdefdYZejjdreZnejjdreZnoejdkreZnWejjdreZn<ejjdreZn!ejjdreZneZeZdS(#sa 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 i(tdivisiontabsolute_importtprint_functiontcpuNi(tgetstatusoutput(t get_exceptionicC`syt|\}}Wn=tk rUt}tjt|td|tdfSXtj |rtj ||krt |fSt|fS(Nt stacklevelt( RtEnvironmentErrorRtwarningstwarntstrt UserWarningtFalsetost WIFEXITEDt WEXITSTATUStTrue(tcmdtsuccessful_statusRtstatustoutputte((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt getoutput s   $ cK`sZi}xM|D]E}t||d|d|d\}}|r |j||VscS`sdS(N(tNone(((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR/Xs(t startswiththasattrtgetattrt isinstancettypest MethodTypeR,tAttributeError(R*tnameR.((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt __getattr__Qs cC`sdS(Ni((R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _getNCPUs[scC`s5tjd}tjdj|jd}|S(Nis(\d+)biti(tplatformt architecturetretcompiletsearchtgroup(R*tabitstnbits((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt __get_nbits^s!cC`s|jdkS(Nt32(t_CPUInfoBase__get_nbits(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_32bitcscC`s|jdkS(Nt64(RE(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_64bitfs( t__name__t __module__t__doc__R,R9R:RERFRH(((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR(Fs    t LinuxCPUInfocB`seZd.ZdZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZeZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'e'Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3RS(/c C`sC|jdk rdSig}td\}}|rK|j|dd[\w\d]+) processor operates attpt processor( RR0RR'R R=R`R@RR(R*RRtm((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRVs  cC`sdS(N((R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRWscC`s|jddkS(NRR(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRscC`s|jddkS(NRtsparc(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_sparcscC`s|jddkS(NRtsparcv9(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_sparcv9scC`st|jdjddS(NRtNumCPUi(RRR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR:scC`s|jddkS(NRtsun4(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_sun4scC`stjd|jddk S(NtSUNWR(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_SUNWscC`stjd|jddk S(Ns.*SPARCstation-5R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_sparcstation5scC`stjd|jddk S(Ns .*Ultra-1R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra1scC`stjd|jddk S(Ns .*Ultra-250R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra250scC`stjd|jddk S(Ns .*Ultra-2R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra2scC`stjd|jddk S(Ns .*Ultra-30R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra30scC`stjd|jddk S(Ns .*Ultra-4R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra4scC`stjd|jddk S(Ns .*Ultra-5_10R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra5_10scC`stjd|jddk S(Ns .*Ultra-5R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra5scC`stjd|jddk S(Ns .*Ultra-60R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra60scC`stjd|jddk S(Ns .*Ultra-80R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultra80scC`stjd|jddk S(Ns.*Ultra-EnterpriseR(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_ultraenterpricescC`stjd|jddk S(Ns.*Ultra-Enterprise-10000R(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_ultraenterprice10kscC`stjd|jddk S(Ns .*Sun-FireR(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_sunfirescC`stjd|jddk S(Ns.*UltraR(R=R`RR0(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_ultrascC`s|jddkS(NRtsparcv7(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_cpusparcv7scC`s|jddkS(NRtsparcv8(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_cpusparcv8scC`s|jddkS(NRR(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt_is_cpusparcv9sN(RIRJR0RRVRWRRRR:RRRRRRRRRRR R R R R RRRR(((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRs4                        t Win32CPUInfocB`s+eZd ZdZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#RS(!s,HARDWARE\DESCRIPTION\System\CentralProcessorc C`s|jdk rdSg}ytjddkr>ddl}n ddl}tjdtj}|j |j |j }d}xHt ry|j ||}Wn|jk rPqX|d7}|ji|d6|j ||}d}xt ry|j||\} } } Wn|jk r)PqX|d}| |d| <| dkr|j| } | rt| jd|dd \d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)it Processorit IdentifiertFMLtFamilytMDLtModeltSTPtSteppings (ignoring)(RR0tsyst version_infotwinregt_winregR=R>RtOpenKeytHKEY_LOCAL_MACHINEtpkeyRtEnumKeyterrorRPt EnumValueR?RR@R)tprinttexc_infoRR( R*RRtprgxtchndtpnumtproctphndtpidxR8RUtvtpetsrch((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRVsH        / cC`sdS(N((R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRWscC`s|jdddkS(NitVendorIdentifierRY(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRZscC`s!|jo |jdddkS(NiRi(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_Am486scC`s!|jo |jdddkS(NiRi(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_Am5x86scC`s8|jo7|jdddko7|jdddkS( NiRiRiii(iiii(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_AMDK5s#cC`s8|jo7|jdddko7|jdddkS(NiRiRii(ii(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_AMDK6#s#cC`s8|jo7|jdddko7|jdddkS(NiRiRi(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_AMDK6_2's#cC`s8|jo7|jdddko7|jdddkS(NiRiRi (RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_AMDK6_3+s#cC`s!|jo |jdddkS(NiRi(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyt _is_AMDK7/scC`s!|jo |jdddkS(NiRi(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRg6scC`s|jdddkS(NiR1Rw(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRx;scC`s|jdddkS(NiRi(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR>scC`s|jdddkS(NiRi(R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRzAscC`s!|jo |jdddkS(NiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR}DscC`s!|jo |jdddkS(NiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRGscC`s!|jo |jdddkS(NiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRJscC`s8|jo7|jdddko7|jdddkS(NiRiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRMs#cC`s8|jo7|jdddko7|jdddkS(NiRiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRQs#cC`s8|jo7|jdddko7|jdddkS(NiRiRii(iii(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRUs#cC`s8|jo7|jdddko7|jddd kS( NiRiRiii i i (iii i i (R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRYs#cC`s!|jo |jdddkS(NiRi(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR]scC`s8|jo7|jdddko7|jdddkS( NiRiRi i i(i i i(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR`s#cC`s8|jo7|jdddko7|jdddkS( NiRiRiii(iii(R|R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRds#cC`st|jdkS(Ni(R"R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRjscC`s t|jS(N(R"R(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyR:mscC`sx|jrO|jdddkr:|jdddkpN|jdddkS|jrp|jddd kStSdS( NiRiRiii(ii(iii(R|RRfR (R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRps  . cC`s|jrO|jdddkr:|jddd kpN|jddd kS|jr|jdddkr|jddd kp|jddd kStSdS( NiRiRiii i i i(iii i i (iiii (R|RRfR (R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRys  cC`sL|jr.|jp-|jp-|jS|jrD|jStSdS(N(R|t is_Pentium4t is_PentiumMtis_Core2Rftis_AMD64R (R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRs     cC`s!|jo |jdddkS(NiRiii(iii(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRscC`s!|jo |jdddkS(NiRii(ii(RfR(R*((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRsN($RIRJR0RR#RVRWRZR2R3R4R5R6R7R8RgRxRRzR}RRRRRRRRRRR:RRRRR(((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pyRsB +                          tlinuxtirixtdarwintsunostwin32tcygwin(i(i(i(i( RKt __future__RRRt__all__RR=R5RRt subprocessRtcommandsR R;tnumpy.distutils.compatRRRR R'tobjectR(RLRRRRR1tcpuinfoR(((s6/tmp/pip-build-fiC0ax/numpy/numpy/distutils/cpuinfo.pytsF $      #:.J