bgoXldZdgZddlZddlZddlZddlZddlZddlZddlm Z ddZ ddZ dd Z dd Z Gd d ZGd deZGddeZGddeZGddeZGddeZejdreZnejdreZngejdkreZnYejdreZn 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 t|\}}nA#t$r4}tjt |t |Yd}~dSd}~wwxYwt j|rt j||vrd|fSd|fS)N stacklevel)FTF) rOSErrorwarningswarnstr UserWarningos WIFEXITED WEXITSTATUS)cmdsuccessful_statusr statusoutputes j/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/distutils/cpuinfo.py getoutputrs(--  c!ffkjAAAAyyyyy |Fv 6 6:K K KV| &=s A)AAc i}|D]9}t||||dz\}}|r|||<:|SNrrr )rstrip)rr kwinfokeyokrs r command_infor"%s] D''r#w:K*4Q,888 F  ' DI Kc#Kt|||dz\}}|sdS|D]}|VdSr)r splitlinesr)rrr r!rlines rcommand_by_liner'.ss32C&0l444JB !!##jjllr#ci}t|||dzD]F}d||dD}t|dkr|d||d<G|S)Nrrc6g|]}|Sr.0ss r z*key_value_from_command..;s 3 3 31QWWYY 3 3 3r#r)r'splitlen)rseprr dr&ls rkey_value_from_commandr66sx A7H+5a<999 3 3 3 2 2 3 3 3 q66Q;;dAadG Hr#c6eZdZdZdZdZdZdZdZdZ dS) CPUInfoBasezkHolds CPU information and provides methods for requiring the availability of various CPU features. c: |S#t$rYdSwxYwN) Exception)selffuncs r _try_callzCPUInfoBase._try_callEs4 466M    DD s c|dsOt|d|zr9t|d|z}t|tjr |j|fdSndSt|)N_c||Sr:r*)r=attrs rz)CPUInfoBase.__getattr__..Ps$$t**r#cdSr:r*r*r#rrCz)CPUInfoBase.__getattr__..Rsr#) startswithhasattrgetattr isinstancetypes MethodTyper>AttributeError)r<namerBs r __getattr__zCPUInfoBase.__getattr__Kss## %tSX&& %tSX..dE$455M'+~4LLLLM%}$T"""r#cdSNrr*r<s r _getNCPUszCPUInfoBase._getNCPUsUsqr#ctjd}tjd|d}|S)Nrz(\d+)bitr)platform architecturerecompilesearchgroup)r<abitsnbitss r __get_nbitszCPUInfoBase.__get_nbitsXsE%''* ;''..u55;;A>> r#c2|dkS)N32_CPUInfoBase__get_nbitsrPs r _is_32bitzCPUInfoBase._is_32bit]!!T))r#c2|dkS)N64r^rPs r _is_64bitzCPUInfoBase._is_64bit`rar#N) __name__ __module__ __qualname____doc__r>rMrQr_r`rdr*r#rr8r8@sx ### ********r#r8c.eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZeZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$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/Z3dS)0 LinuxCPUInfoNc6|jdSig}td\}}|r||dd< td}|D]g}d|ddD}t |dkr6|\}}|r ||d vr|i||d |<h|n@#t$r3} tj t| td Yd} ~ nd} ~ wwxYw||j _dS) Nzuname -mruname_mz /proc/cpuinfoc6g|]}|Sr*r+r,s rr/z)LinuxCPUInfo.__init__..ts DDDAaggiiDDDr#:rr0r)rrropenr1r2appendcloser r r rr __class__) r<rr!rfor& name_valuerLvaluers r__init__zLinuxCPUInfo.__init__gsH 9 Fvz** F  0!'DGI  o&&B ' 'DDC1C1CDDD z??a''( e$ttBx//KKOOO!&R HHJJJJ = = = M#a&&+! < < < < < < < < < =#sC D )DD cdSr:r*rPs r _not_implzLinuxCPUInfo._not_impl~r#c0|jdddkS)Nr vendor_id AuthenticAMDrrPs r_is_AMDzLinuxCPUInfo._is_AMDy|K(.88r#cX|o|jdddkS)Nrmodel2rrrPs r_is_AthlonK6_2zLinuxCPUInfo._is_AthlonK6_2%||~~>$)A,w"73">>r#cX|o|jdddkS)Nrr3rrPs r_is_AthlonK6_3zLinuxCPUInfo._is_AthlonK6_3rr#cRtjd|jddduS)Nz .*?AMD-K6r model namerUmatchrrPs r _is_AthlonK6zLinuxCPUInfo._is_AthlonK6$x dil<&@AAMMr#cRtjd|jddduS)Nz .*?AMD-K7rrrrPs r _is_AthlonK7zLinuxCPUInfo._is_AthlonK7rr#cRtjd|jddduS)Nz.*?Athlon\(tm\) MP\brrrrPs r _is_AthlonMPzLinuxCPUInfo._is_AthlonMP1x/ ! \244;?@ @r#cX|o|jdddkS)Nrfamily15is_AMDrrPs r _is_AMD64zLinuxCPUInfo._is_AMD64s%{{}}?1h!74!??r#cRtjd|jddduS)Nz.*?Athlon\(tm\) 64\brrrrPs r _is_Athlon64zLinuxCPUInfo._is_Athlon64rr#cRtjd|jddduS)Nz.*?Athlon HX\brrrrPs r _is_AthlonHXzLinuxCPUInfo._is_AthlonHXs1x) ! \244;?@ @r#cRtjd|jddduS)Nz .*?Opteron\brrrrPs r _is_OpteronzLinuxCPUInfo._is_Opterons0x ! \244;?@ @r#cRtjd|jddduS)Nz .*?Hammer\brrrrPs r _is_HammerzLinuxCPUInfo._is_Hammers0x ! \244;?@ @r#c0|jdddkS)NrrAlphar~rPs r _is_AlphazLinuxCPUInfo._is_Alphasy|E"G++r#cX|o|jdddkS)Nr cpu modelEV4is_AlpharrPs r_is_EV4zLinuxCPUInfo._is_EV4%}}E49Q< #<#EEr#cX|o|jdddkS)NrrEV5rrPs r_is_EV5zLinuxCPUInfo._is_EV5rr#cX|o|jdddkS)NrrEV56rrPs r_is_EV56zLinuxCPUInfo._is_EV56s%}}F49Q< #<#FFr#cX|o|jdddkS)NrrPCA56rrPs r _is_PCA56zLinuxCPUInfo._is_PCA56s%}}G49Q< #<#GGr#c0|jdddkS)Nrr| GenuineIntelr~rPs r _is_IntelzLinuxCPUInfo._is_Intelrr#c0|jdddkS)Nrri486r~rPs r_is_i486zLinuxCPUInfo._is_i486sy|E"F**r#cX|o|jdddkS)Nr cpu family5is_IntelrrPs r_is_i586zLinuxCPUInfo._is_i586%}}D49Q< #=#DDr#cX|o|jdddkS)Nrr6rrPs r_is_i686zLinuxCPUInfo._is_i686rr#cRtjd|jddduS)Nz .*?CeleronrrrrPs r _is_CeleronzLinuxCPUInfo._is_Celeron0x  ! \244;?@ @r#cRtjd|jddduS)Nz .*?PentiumrrrrPs r _is_PentiumzLinuxCPUInfo._is_Pentiumrr#cRtjd|jddduS)Nz.*?Pentium.*?II\brrrrPs r _is_PentiumIIzLinuxCPUInfo._is_PentiumIIs1x, ! \244;?@ @r#cRtjd|jddduS)Nz.*?PentiumPro\brrrrPs r_is_PentiumProzLinuxCPUInfo._is_PentiumPros1x* ! \244;?@ @r#cRtjd|jddduS)Nz.*?Pentium.*?MMX\brrrrPs r_is_PentiumMMXzLinuxCPUInfo._is_PentiumMMX1x- ! \244;?@ @r#cRtjd|jddduS)Nz.*?Pentium.*?III\brrrrPs r_is_PentiumIIIzLinuxCPUInfo._is_PentiumIIIrr#cRtjd|jddduS)Nz.*?Pentium.*?(IV|4)\brrrrPs r _is_PentiumIVzLinuxCPUInfo._is_PentiumIVs1x0 ! \244;?@ @r#cRtjd|jddduS)Nz.*?Pentium.*?M\brrrrPs r _is_PentiumMzLinuxCPUInfo._is_PentiumMs1x+ ! \244;?@ @r#cR|o|Sr:) is_PentiumIVhas_sse3rPs r _is_PrescottzLinuxCPUInfo._is_Prescotts!  ""6t}}6r#c(|o~|jdddkp|jdddkoP|o| o't jd|jddduS)Nrrrrz .*?\blm\bflags)rrr has_ssse3rUrrPs r _is_NoconazLinuxCPUInfo._is_Noconas NYq\,/36; ! \2d:N]]__=T^^-=-=)=NH\49Q<+@AAM  Or#c|o;|o'tjd|jddduS)Nz.*?Core\(TM\)2\brr)is_64bitrrUrrrPs r _is_Core2zLinuxCPUInfo._is_Core2sR ADMMOOA,1l355<@A Br#cRtjd|jddduS)Nz .*?Itanium\brrrrPs r _is_ItaniumzLinuxCPUInfo._is_Itaniums.x ! X.007;< >dJJr#cRtjd|jddduS)Nz .*?\bpni\brrrrPs r _has_sse3zLinuxCPUInfo._has_sse3rr#cRtjd|jddduS)Nz .*?\bssse3\brrrrPs r _has_ssse3zLinuxCPUInfo._has_ssse3$x1g)>??tKKr#cRtjd|jddduS)Nz .*?\b3dnow\brrrrPs r _has_3dnowzLinuxCPUInfo._has_3dnow rr#cRtjd|jddduS)Nz.*?\b3dnowext\brrrrPs r _has_3dnowextzLinuxCPUInfo._has_3dnowext#s%x*DIaL,ABB$NNr#)4rerfrgrrwryrrrrrrrrrrrrrrrr_is_i386rrrrrrrrrrrrrrrrr_is_XeonrrQrrrrrrrrrr*r#rrjrjcs7 D###.999??????NNNNNN@@@@@@@@@@@@@@@@@@ ,,,FFFFFFGGGHHH H999+++EEEEEE@@@@@@@@@@@@@@@@@@@@@@@@777OOOBBB <<<OOOH###//////JJJJJJKKKJJJLLLLLLOOOOOr#rjceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(dS)' IRIXCPUInfoNcT|jdStddd}||j_dS)Nsysconf )rr)r3r)rr6rsr<rs rrwzIRIXCPUInfo.__init__)s= 9 F%iS8>@@@"r#cdSr:r*rPs rryzIRIXCPUInfo._not_impl0rzr#c>|jddkS)NNUM_PROCESSORS1)rgetrPs rrzIRIXCPUInfo._is_singleCPU2sy}}-..#55r#cRt|jddS)NrrintrrrPs rrQzIRIXCPUInfo._getNCPUs5s!49==!1155666r#c|jddd|zkS)N PROCESSORSrzr%s)rrr1lowerr<ns r __cputypezIRIXCPUInfo.__cputype8s<y}}\**002215;;==!LLr#c,|dS)Ni_IRIXCPUInfo__cputyperPs r _is_r2000zIRIXCPUInfo._is_r2000:t 4 44r#c,|dS)Ni rrPs r _is_r3000zIRIXCPUInfo._is_r3000;r r#c,|dS)Ni<rrPs r _is_r3900zIRIXCPUInfo._is_r3900<r r#c,|dS)NirrPs r _is_r4000zIRIXCPUInfo._is_r4000=r r#c,|dS)NirrPs r _is_r4100zIRIXCPUInfo._is_r4100>r r#c,|dS)NirrPs r _is_r4300zIRIXCPUInfo._is_r4300?r r#c,|dS)Ni0rrPs r _is_r4400zIRIXCPUInfo._is_r4400@r r#c,|dS)NirrPs r _is_r4600zIRIXCPUInfo._is_r4600Ar r#c,|dS)Ni*rrPs r _is_r4650zIRIXCPUInfo._is_r4650Br r#c,|dS)NirrPs r _is_r5000zIRIXCPUInfo._is_r5000Cr r#c,|dS)NiprrPs r _is_r6000zIRIXCPUInfo._is_r6000Dr r#c,|dS)Ni@rrPs r _is_r8000zIRIXCPUInfo._is_r8000Er r#c,|dS)Ni'rrPs r _is_r10000zIRIXCPUInfo._is_r10000F!6!66r#c,|dS)Ni.rrPs r _is_r12000zIRIXCPUInfo._is_r12000Gr9r#c,|dS)NorionrrPs r _is_rorionzIRIXCPUInfo._is_rorionHs!8!88r#cX|jdS#t$rYdSwxYw)NMACHINE)rrr;rPs rget_ipzIRIXCPUInfo.get_ipJs/IMM),, ,$$$s  ))ch|jdd|zkS)Nr@zip%s)rrrrs r __machinezIRIXCPUInfo.__machineMs+y}}Y''--//6Q<??r#c,|dS)N_IRIXCPUInfo__machinerPs r_is_IP19zIRIXCPUInfo._is_IP19Ot~~b111r#c,|dS)NrFrPs r_is_IP20zIRIXCPUInfo._is_IP20PrIr#c,|dS)NrFrPs r_is_IP21zIRIXCPUInfo._is_IP21QrIr#c,|dSNrFrPs r_is_IP22zIRIXCPUInfo._is_IP22RrIr#cT|do|SrQ)rGr&rPs r _is_IP22_4kzIRIXCPUInfo._is_IP22_4kS"$.."4"4"I9I9IIr#cT|do|SrQrGr2rPs r _is_IP22_5kzIRIXCPUInfo._is_IP22_5kTs"$.."4"4"J$..:J:JJr#c,|dS)NrFrPs r_is_IP24zIRIXCPUInfo._is_IP24UrIr#c,|dS)NrFrPs r_is_IP25zIRIXCPUInfo._is_IP25VrIr#c,|dS)NrFrPs r_is_IP26zIRIXCPUInfo._is_IP26WrIr#c,|dS)NrFrPs r_is_IP27zIRIXCPUInfo._is_IP27XrIr#c,|dS)NrFrPs r_is_IP28zIRIXCPUInfo._is_IP28YrIr#c,|dS)NrFrPs r_is_IP30zIRIXCPUInfo._is_IP30ZrIr#c,|dSN rFrPs r_is_IP32zIRIXCPUInfo._is_IP32[rIr#cT|do|SrmrXrPs r _is_IP32_5kzIRIXCPUInfo._is_IP32_5k\rVr#cT|do|Srm)rGr8rPs r _is_IP32_10kzIRIXCPUInfo._is_IP32_10k]s"4>>"#5#5#K$//:K:KKr#))rerfrgrrwryrrQrrr"r$r&r(r*r,r.r0r2r4r6r8r;r>rArGrHrLrOrSrUrYr\r_rbrerhrkrorqrsr*r#rr r &s D###666777MMM444444444444444444444444444444444444666666888@@@111111111111IIIJJJ111111111111111111111IIIKKKKKr#r ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdS) DarwinCPUInfoNcz|jdStdd}tdd|d<||j_dS)Narchmachine)rwrxz sysctl hw=r3 sysctl_hw)rr"r6rsr s rrwzDarwinCPUInfo.__init__csO 9 F$-///2;CHHH["r#cdSr:r*rPs rryzDarwinCPUInfo._not_implkrzr#c^t|jdddS)Nr{zhw.ncpurrrPs rrQzDarwinCPUInfo._getNCPUsms'49[)--i;;<<[\w\d]+) processor operates atp processor)rr"r6r'rUrrXrs)r<rr&ms rrwzSunOSCPUInfo.__init__s 9 F!'$-&2&2  1EEEY#N33  DGNNA $%GGCLL[! #r#cdSr:r*rPs rryzSunOSCPUInfo._not_implrzr#c$|jddkS)Nrrr~rPs rrzSunOSCPUInfo._is_i386sy%v--r#c$|jddkS)Nrsparcr~rPs r _is_sparczSunOSCPUInfo._is_sparcsy%w..r#c$|jddkS)Nrsparcv9r~rPs r _is_sparcv9zSunOSCPUInfo._is_sparcv9y%y00r#c^t|jdddS)NrNumCPUrrrPs rrQzSunOSCPUInfo._getNCPUss'49Y'++Ha88999r#c$|jddkS)Nrwsun4r~rPs r_is_sun4zSunOSCPUInfo._is_sun4rr#cFtjd|jdduS)NSUNWrrrPs r_is_SUNWzSunOSCPUInfo._is_SUNWs x9!566dBBr#cFtjd|jdduS)Nz.*SPARCstation-5rrrPs r_is_sparcstation5zSunOSCPUInfo._is_sparcstation5s!x+TYy-ABB$NNr#cFtjd|jdduS)Nz .*Ultra-1rrrPs r _is_ultra1zSunOSCPUInfo._is_ultra1 x di &:;;4GGr#cFtjd|jdduS)Nz .*Ultra-250rrrPs r _is_ultra250zSunOSCPUInfo._is_ultra250s x )(<==TIIr#cFtjd|jdduS)Nz .*Ultra-2rrrPs r _is_ultra2zSunOSCPUInfo._is_ultra2rr#cFtjd|jdduS)Nz .*Ultra-30rrrPs r _is_ultra30zSunOSCPUInfo._is_ultra30 x ty';<>dJJr#cFtjd|jdduS)Nz .*Ultra-5rrrPs r _is_ultra5zSunOSCPUInfo._is_ultra5rr#cFtjd|jdduS)Nz .*Ultra-60rrrPs r _is_ultra60zSunOSCPUInfo._is_ultra60rr#cFtjd|jdduS)Nz .*Ultra-80rrrPs r _is_ultra80zSunOSCPUInfo._is_ultra80rr#cFtjd|jdduS)Nz.*Ultra-EnterpriserrrPs r_is_ultraenterpricez SunOSCPUInfo._is_ultraenterprices!x-ty/CDDDPPr#cFtjd|jdduS)Nz.*Ultra-Enterprise-10000rrrPs r_is_ultraenterprice10kz#SunOSCPUInfo._is_ultraenterprice10ks"x3TYy5IJJRVVVr#cFtjd|jdduS)Nz .*Sun-FirerrrPs r _is_sunfirezSunOSCPUInfo._is_sunfirerr#cFtjd|jdduS)Nz.*UltrarrrPs r _is_ultrazSunOSCPUInfo._is_ultras x DIi$899EEr#c$|jddkS)Nrsparcv7r~rPs r_is_cpusparcv7zSunOSCPUInfo._is_cpusparcv7rr#c$|jddkS)Nrsparcv8r~rPs r_is_cpusparcv8zSunOSCPUInfo._is_cpusparcv8rr#c$|jddkS)Nrrr~rPs r_is_cpusparcv9zSunOSCPUInfo._is_cpusparcv9rr#)rerfrgrrwryrrrrQrrrrrrrrrrrrrrrrrrrr*r#rrrs D###"...///111:::)))CCCOOOHHHJJJHHHIIIHHHKKKHHHIIIIIIQQQWWWIIIFFF11111111111r#rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#dS)" Win32CPUInfoNz,HARDWARE\DESCRIPTION\System\CentralProcessorc|jdSg} ddl}tjdtj}||j|j}d} |||}|dz }| d|i|||}d} | ||\} } } |dz}| |d| <| dkr| | } | rt| d|dd <t| d |dd <t| d |dd <n#|j$rYnwxYwn#|j$rYnwxYw:n'#t$r} t!| dYd} ~ nd} ~ wwxYw||j_dS)NrzFfamily\s+(?P\d+)\s+model\s+(?P\d+)\s+stepping\s+(?P\d+)Tr Processorro IdentifierFMLFamilyMDLModelSTPSteppingz (ignoring))rwinregrUrVrOpenKeyHKEY_LOCAL_MACHINEpkeyEnumKeyrq EnumValuerWrrXerrorr;printrs)r<rrprgxchndpnumprocphndpidxrLrvvtpesrchrs rrwzWin32CPUInfo.__init__s/ 9 F! # MMM:<=?]LLD 949EEDD PPd33D!GDKKT 2333d33DD P P.4.>.>tT.J.J-D%"&aD+0DHTN#\11%)[[%7%7#'!P7:4::e;L;L7M7MDHX$669$**U:K:K6L6LDHW$5949Q<#91#<>9Q<(,== >r#cX|o|jdddkSr-rrPs rrzWin32CPUInfo._is_PentiumIVSs%}}=49Q<#92#==r#c|o+|jdddko|jdddvS)Nrrrr)r' rrPs rrzWin32CPUInfo._is_PentiumMVsA}}849Q<#9Q#>89Q<(K7 8r#c|o+|jdddko|jdddvS)Nrrrr)r.rrPs rrzWin32CPUInfo._is_Core2ZsA}}949Q<#9Q#>99Q<(L8 9r#c2t|jdkSrOrrPs rrzWin32CPUInfo._is_singleCPU`rr#c*t|jSr:rrPs rrQzWin32CPUInfo._getNCPUscrr#c|rC|jdddkr|jdddkp|jdddvS|r|jdddvSdS) Nrrrrrrr.rrr.FrrrrPs rrzWin32CPUInfo._has_mmxfs ==?? IaL*A-J$)A,w2G2J:y|H-8 : [[]] 9Q<)Z7 75r#cb|rC|jdddkr|jdddvp|jdddkS|rC|jdddkr|jdddvp|jdddkSdS) Nrrrrr=r.)rr r#r>FrLrPs rrzWin32CPUInfo._has_sseos ==?? Yq\(+Q.@Yq\'*.??3 ! X.2 4[[]] Yq\(+Q.<Yq\'*m;3 ! X.2 45r#c|r<|p'|p|S|r|SdS)NF)r is_Pentium4 is_PentiumMis_Core2ris_AMD64rPs rrzWin32CPUInfo._has_sse2{sl ==?? ##%%&)9)9););&mmoo & [[]] ==?? "5r#cT|o|jdddvS)NrrrKrrPs rrzWin32CPUInfo._has_3dnows%{{}}E1h!7:!EEr#cT|o|jdddvS)NrrrJrrPs rrzWin32CPUInfo._has_3dnowexts%{{}}B1h!77!BBr#)$rerfrgrrrwryrrrrr!r$r(r+rrrrrrrrrrrrrrrrQrrrrrr*r#rrrs D :D &#&#&#P@@@;;;;;;999333,,,,,,===>>> @@@))))))=========,,,,,,666>>>>>>888999 ###   FFFCCCCCr#rlinuxirixdarwinsunoswin32cygwin)rr)rh__all__rrSrUsysrIr subprocessrrr"r'r6r8rjr rurrrEcpuinforr*r#rr_s   '  &&&&&&8<&'    !*!*!*!*!*!*!*!*FAOAOAOAOAO;AOAOAOF7L7L7L7L7L+7L7L7Lt+5+5+5+5+5K+5+5+5\H1H1H1H1H1;H1H1H1TpCpCpCpCpC;pCpCpCd<7##GG\V$$ GG\XGG\W%%GG\W%%GG\X&&GGG giir#