HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/distutils/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/distutils/__pycache__/cpuinfo.cpython-36.pyc
3

���h�X�@sNdZdgZddlZddlZddlZddlZddlZddlZddlm	Z	d!dd�Z
d#dd	�Zd%d
d�Zd'dd
�Z
Gdd�d�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Zejjd�r�eZnfejjd��r�eZnRejdk�reZn@ejjd��reZn,ejjd��r,eZnejjd��r@eZneZe�ZdS)(aa
cpuinfo

Copyright 2002 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@cens.ioc.ee>
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�cCsnyt|�\}}Wn4tk
rD}ztjt|�t|d�dSd}~XnXtj|�rftj|�|krfd|fSd|fS)N)�
stacklevelF�T)Fr)	r�EnvironmentError�warnings�warn�str�UserWarning�os�	WIFEXITED�WEXITSTATUS)�cmd�successful_statusr�status�output�e�r�8/tmp/pip-build-5_djhm0z/numpy/numpy/distutils/cpuinfo.py�	getoutputsrcKs@i}x6|D].}t||||dd�\}}|r
|j�||<q
W|S)Nr)rr)r�strip)rr�kw�info�key�okrrrr�command_info%s

rccs>t|||dd�\}}|sdSx|j�D]}|j�Vq(WdS)Nr)rr)r�
splitlinesr)rrrrr�linerrr�command_by_line.srcCsVi}xLt|||dd�D]6}dd�|j|d�D�}t|�dkr|d||d<qW|S)Nr)rrcSsg|]}|j��qSr)r)�.0�srrr�
<listcomp>;sz*key_value_from_command.<locals>.<listcomp>�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|jd�sLt|d|�rDt|d|�}t|tj�rL|j|fdd�Sndd�St|��dS)N�_cSs||�S)Nr)r-�attrrrr�<lambda>Psz)CPUInfoBase.__getattr__.<locals>.<lambda>cSsdS)Nrrrrrr1Rs)�
startswith�hasattr�getattr�
isinstance�types�
MethodTyper.�AttributeError)r,�namer0rrr�__getattr__Ks
zCPUInfoBase.__getattr__cCsdS)Nrr)r,rrr�	_getNCPUsUszCPUInfoBase._getNCPUscCs&tj�d}tjd�j|�jd�}|S)Nrz(\d+)bitr)�platform�architecture�re�compile�search�group)r,Zabits�nbitsrrrZ__get_nbitsXszCPUInfoBase.__get_nbitscCs|j�dkS)NZ32)�_CPUInfoBase__get_nbits)r,rrr�	_is_32bit]szCPUInfoBase._is_32bitcCs|j�dkS)NZ64)rC)r,rrr�	_is_64bit`szCPUInfoBase._is_64bitN)
�__name__�
__module__�__qualname__�__doc__r.r:r;rCrDrErrrrr*@s
r*c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�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!d<d=�Z"d>d?�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|j�|dd<ytd�}Wn6tk
rv}ztjt|�tdd�WYdd}~XnlXx`|D]X}dd�|j	d	d
�D�}t
|�dkr�q~|\}}	|s�||dkr�|ji�|	|d|<q~W|j�||j
_dS)
Nzuname -mrZuname_mz
/proc/cpuinfor#)rcSsg|]}|j��qSr)r)r r!rrrr"tsz)LinuxCPUInfo.__init__.<locals>.<listcomp>�:r���rL)rrr�openrrr	r
rr$r%�append�close�	__class__)
r,rrr�forr�
name_valuer9�valuerrr�__init__gs(
&

zLinuxCPUInfo.__init__cCsdS)Nr)r,rrr�	_not_impl~szLinuxCPUInfo._not_implcCs|jdddkS)Nr�	vendor_id�AuthenticAMD)r)r,rrr�_is_AMD�szLinuxCPUInfo._is_AMDcCs|j�o|jdddkS)Nr�model�2)rXr)r,rrr�_is_AthlonK6_2�szLinuxCPUInfo._is_AthlonK6_2cCs|j�o|jdddkS)NrrY�3)rXr)r,rrr�_is_AthlonK6_3�szLinuxCPUInfo._is_AthlonK6_3cCstjd|jdd�dk	S)Nz	.*?AMD-K6rz
model name)r>�matchr)r,rrr�_is_AthlonK6�szLinuxCPUInfo._is_AthlonK6cCstjd|jdd�dk	S)Nz	.*?AMD-K7rz
model name)r>r^r)r,rrr�_is_AthlonK7�szLinuxCPUInfo._is_AthlonK7cCstjd|jdd�dk	S)Nz.*?Athlon\(tm\) MP\brz
model name)r>r^r)r,rrr�_is_AthlonMP�szLinuxCPUInfo._is_AthlonMPcCs|j�o|jdddkS)Nr�family�15)�is_AMDr)r,rrr�	_is_AMD64�szLinuxCPUInfo._is_AMD64cCstjd|jdd�dk	S)Nz.*?Athlon\(tm\) 64\brz
model name)r>r^r)r,rrr�_is_Athlon64�szLinuxCPUInfo._is_Athlon64cCstjd|jdd�dk	S)Nz.*?Athlon HX\brz
model name)r>r^r)r,rrr�_is_AthlonHX�szLinuxCPUInfo._is_AthlonHXcCstjd|jdd�dk	S)Nz.*?Opteron\brz
model name)r>r^r)r,rrr�_is_Opteron�szLinuxCPUInfo._is_OpteroncCstjd|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|j�o|jdddkS)Nrz	cpu modelZEV4)�is_Alphar)r,rrr�_is_EV4�szLinuxCPUInfo._is_EV4cCs|j�o|jdddkS)Nrz	cpu modelZEV5)rlr)r,rrr�_is_EV5�szLinuxCPUInfo._is_EV5cCs|j�o|jdddkS)Nrz	cpu modelZEV56)rlr)r,rrr�_is_EV56�szLinuxCPUInfo._is_EV56cCs|j�o|jdddkS)Nrz	cpu modelZPCA56)rlr)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|j�o|jdddkS)Nrz
cpu family�5)�is_Intelr)r,rrr�_is_i586�szLinuxCPUInfo._is_i586cCs|j�o|jdddkS)Nrz
cpu family�6)rur)r,rrr�_is_i686�szLinuxCPUInfo._is_i686cCstjd|jdd�dk	S)Nz
.*?Celeronrz
model name)r>r^r)r,rrr�_is_Celeron�szLinuxCPUInfo._is_CeleroncCstjd|jdd�dk	S)Nz
.*?Pentiumrz
model name)r>r^r)r,rrr�_is_Pentium�szLinuxCPUInfo._is_PentiumcCstjd|jdd�dk	S)Nz.*?Pentium.*?II\brz
model name)r>r^r)r,rrr�
_is_PentiumII�szLinuxCPUInfo._is_PentiumIIcCstjd|jdd�dk	S)Nz.*?PentiumPro\brz
model name)r>r^r)r,rrr�_is_PentiumPro�szLinuxCPUInfo._is_PentiumProcCstjd|jdd�dk	S)Nz.*?Pentium.*?MMX\brz
model name)r>r^r)r,rrr�_is_PentiumMMX�szLinuxCPUInfo._is_PentiumMMXcCstjd|jdd�dk	S)Nz.*?Pentium.*?III\brz
model name)r>r^r)r,rrr�_is_PentiumIII�szLinuxCPUInfo._is_PentiumIIIcCstjd|jdd�dk	S)Nz.*?Pentium.*?(IV|4)\brz
model name)r>r^r)r,rrr�
_is_PentiumIV�szLinuxCPUInfo._is_PentiumIVcCstjd|jdd�dk	S)Nz.*?Pentium.*?M\brz
model name)r>r^r)r,rrr�_is_PentiumM�szLinuxCPUInfo._is_PentiumMcCs|j�o|j�S)N)Zis_PentiumIV�has_sse3)r,rrr�_is_Prescott�szLinuxCPUInfo._is_PrescottcCsX|j�oV|jdddks,|jdddkoV|j�oV|j�oVtjd|jdd�dk	S)Nrz
cpu familyrwrcz	.*?\blm\b�flags)rurr�Z	has_ssse3r>r^)r,rrr�
_is_Nocona�s
zLinuxCPUInfo._is_NoconacCs*|j�o(|j�o(tjd|jdd�dk	S)Nz.*?Core\(TM\)2\brz
model name)Zis_64bitrur>r^r)r,rrr�	_is_Core2�szLinuxCPUInfo._is_Core2cCstjd|jdd�dk	S)Nz.*?Itanium\brrb)r>r^r)r,rrr�_is_Itanium�szLinuxCPUInfo._is_ItaniumcCstjd|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_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugr�)r)r,rrr�
_has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCstjd|jdd�dk	S)Nz
.*?\bmmx\brr�)r>r^r)r,rrr�_has_mmxszLinuxCPUInfo._has_mmxcCstjd|jdd�dk	S)Nz
.*?\bsse\brr�)r>r^r)r,rrr�_has_sseszLinuxCPUInfo._has_ssecCstjd|jdd�dk	S)Nz.*?\bsse2\brr�)r>r^r)r,rrr�	_has_sse2szLinuxCPUInfo._has_sse2cCstjd|jdd�dk	S)Nz
.*?\bpni\brr�)r>r^r)r,rrr�	_has_sse3szLinuxCPUInfo._has_sse3cCstjd|jdd�dk	S)Nz.*?\bssse3\brr�)r>r^r)r,rrr�
_has_ssse3szLinuxCPUInfo._has_ssse3cCstjd|jdd�dk	S)Nz.*?\b3dnow\brr�)r>r^r)r,rrr�
_has_3dnow szLinuxCPUInfo._has_3dnowcCstjd|jdd�dk	S)Nz.*?\b3dnowext\brr�)r>r^r)r,rrr�
_has_3dnowext#szLinuxCPUInfo._has_3dnowext)4rFrGrHrrTrUrXr[r]r_r`rarerfrgrhrirkrmrnrorp�_is_i386rrrsrvrxryrzr{r|r}r~rr�r�r�r�r�r�Z_is_Xeonr�r;r�r�r�r�r�r�r�r�r�rrrrrJcsbrJc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�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 d<d=�Z!d>d?�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)rP)r,rrrrrT)s

zIRIXCPUInfo.__init__cCsdS)Nr)r,rrrrU0szIRIXCPUInfo._not_implcCs|jjd�dkS)N�NUM_PROCESSORS�1)r�get)r,rrrr�2szIRIXCPUInfo._is_singleCPUcCst|jjdd��S)Nr�r)�intrr�)r,rrrr;5szIRIXCPUInfo._getNCPUscCs |jjd�j�dj�d|kS)NZ
PROCESSORSrzr%s)rr�r$�lower)r,�nrrrZ	__cputype8szIRIXCPUInfo.__cputypecCs
|jd�S)Ni�)�_IRIXCPUInfo__cputype)r,rrr�	_is_r2000:szIRIXCPUInfo._is_r2000cCs
|jd�S)Ni�)r�)r,rrr�	_is_r3000;szIRIXCPUInfo._is_r3000cCs
|jd�S)Ni<)r�)r,rrr�	_is_r3900<szIRIXCPUInfo._is_r3900cCs
|jd�S)Ni�)r�)r,rrr�	_is_r4000=szIRIXCPUInfo._is_r4000cCs
|jd�S)Ni)r�)r,rrr�	_is_r4100>szIRIXCPUInfo._is_r4100cCs
|jd�S)Ni�)r�)r,rrr�	_is_r4300?szIRIXCPUInfo._is_r4300cCs
|jd�S)Ni0)r�)r,rrr�	_is_r4400@szIRIXCPUInfo._is_r4400cCs
|jd�S)Ni�)r�)r,rrr�	_is_r4600AszIRIXCPUInfo._is_r4600cCs
|jd�S)Ni*)r�)r,rrr�	_is_r4650BszIRIXCPUInfo._is_r4650cCs
|jd�S)Ni�)r�)r,rrr�	_is_r5000CszIRIXCPUInfo._is_r5000cCs
|jd�S)Nip)r�)r,rrr�	_is_r6000DszIRIXCPUInfo._is_r6000cCs
|jd�S)Ni@)r�)r,rrr�	_is_r8000EszIRIXCPUInfo._is_r8000cCs
|jd�S)Ni')r�)r,rrr�
_is_r10000FszIRIXCPUInfo._is_r10000cCs
|jd�S)Ni�.)r�)r,rrr�
_is_r12000GszIRIXCPUInfo._is_r12000cCs
|jd�S)NZorion)r�)r,rrr�
_is_rorionHszIRIXCPUInfo._is_rorioncCs&y|jjd�Stk
r YnXdS)N�MACHINE)rr�r+)r,rrr�get_ipJszIRIXCPUInfo.get_ipcCs|jjd�j�d|kS)Nr�zip%s)rr�r�)r,r�rrr�	__machineMszIRIXCPUInfo.__machinecCs
|jd�S)N�)�_IRIXCPUInfo__machine)r,rrr�_is_IP19OszIRIXCPUInfo._is_IP19cCs
|jd�S)N�)r�)r,rrr�_is_IP20PszIRIXCPUInfo._is_IP20cCs
|jd�S)N�)r�)r,rrr�_is_IP21QszIRIXCPUInfo._is_IP21cCs
|jd�S)N�)r�)r,rrr�_is_IP22RszIRIXCPUInfo._is_IP22cCs|jd�o|j�S)Nr�)r�r�)r,rrr�_is_IP22_4kSszIRIXCPUInfo._is_IP22_4kcCs|jd�o|j�S)Nr�)r�r�)r,rrr�_is_IP22_5kTszIRIXCPUInfo._is_IP22_5kcCs
|jd�S)N�)r�)r,rrr�_is_IP24UszIRIXCPUInfo._is_IP24cCs
|jd�S)N�)r�)r,rrr�_is_IP25VszIRIXCPUInfo._is_IP25cCs
|jd�S)N�)r�)r,rrr�_is_IP26WszIRIXCPUInfo._is_IP26cCs
|jd�S)N�)r�)r,rrr�_is_IP27XszIRIXCPUInfo._is_IP27cCs
|jd�S)N�)r�)r,rrr�_is_IP28YszIRIXCPUInfo._is_IP28cCs
|jd�S)N�)r�)r,rrr�_is_IP30ZszIRIXCPUInfo._is_IP30cCs
|jd�S)N� )r�)r,rrr�_is_IP32[szIRIXCPUInfo._is_IP32cCs|jd�o|j�S)Nr�)r�r�)r,rrr�_is_IP32_5k\szIRIXCPUInfo._is_IP32_5kcCs|jd�o|j�S)Nr�)r�r�)r,rrr�_is_IP32_10k]szIRIXCPUInfo._is_IP32_10k))rFrGrHrrTrUr�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�Zdd�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)rP)r,rrrrrTcs
zDarwinCPUInfo.__init__cCsdS)Nr)r,rrrrUkszDarwinCPUInfo._not_implcCst|jdjdd��S)Nr�zhw.ncpur)r�rr�)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
|jd�S)NiY)�_DarwinCPUInfo__machine)r,rrr�
_is_ppc601zszDarwinCPUInfo._is_ppc601cCs
|jd�S)NiZ)r�)r,rrr�
_is_ppc602{szDarwinCPUInfo._is_ppc602cCs
|jd�S)Ni[)r�)r,rrr�
_is_ppc603|szDarwinCPUInfo._is_ppc603cCs
|jd�S)NZ603e)r�)r,rrr�_is_ppc603e}szDarwinCPUInfo._is_ppc603ecCs
|jd�S)Ni\)r�)r,rrr�
_is_ppc604~szDarwinCPUInfo._is_ppc604cCs
|jd�S)NZ604e)r�)r,rrr�_is_ppc604eszDarwinCPUInfo._is_ppc604ecCs
|jd�S)Nil)r�)r,rrr�
_is_ppc620�szDarwinCPUInfo._is_ppc620cCs
|jd�S)Niv)r�)r,rrr�
_is_ppc630�szDarwinCPUInfo._is_ppc630cCs
|jd�S)Ni�)r�)r,rrr�
_is_ppc740�szDarwinCPUInfo._is_ppc740cCs
|jd�S)Ni�)r�)r,rrr�_is_ppc7400�szDarwinCPUInfo._is_ppc7400cCs
|jd�S)Ni)r�)r,rrr�_is_ppc7450�szDarwinCPUInfo._is_ppc7450cCs
|jd�S)Ni�)r�)r,rrr�
_is_ppc750�szDarwinCPUInfo._is_ppc750cCs
|jd�S)Ni�)r�)r,rrr�
_is_ppc403�szDarwinCPUInfo._is_ppc403cCs
|jd�S)Ni�)r�)r,rrr�
_is_ppc505�szDarwinCPUInfo._is_ppc505cCs
|jd�S)Ni!)r�)r,rrr�
_is_ppc801�szDarwinCPUInfo._is_ppc801cCs
|jd�S)Ni5)r�)r,rrr�
_is_ppc821�szDarwinCPUInfo._is_ppc821cCs
|jd�S)Ni7)r�)r,rrr�
_is_ppc823�szDarwinCPUInfo._is_ppc823cCs
|jd�S)Ni\)r�)r,rrr�
_is_ppc860�szDarwinCPUInfo._is_ppc860)rFrGrHrrTrUr;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�Zdd�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]$}tjd|�}|r:|jd
�|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<p>[\w\d]+) processor operates at�p�	processor)rrr)rr>r^rArP)r,rr�mrrrrT�s
zSunOSCPUInfo.__init__cCsdS)Nr)r,rrrrU�szSunOSCPUInfo._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|jdjdd��S)Nr�ZNumCPUr)r�rr�)r,rrrr;�szSunOSCPUInfo._getNCPUscCs|jddkS)Nr�Zsun4)r)r,rrr�_is_sun4�szSunOSCPUInfo._is_sun4cCstjd|jd�dk	S)NZSUNWr�)r>r^r)r,rrr�_is_SUNW�szSunOSCPUInfo._is_SUNWcCstjd|jd�dk	S)Nz.*SPARCstation-5r�)r>r^r)r,rrr�_is_sparcstation5�szSunOSCPUInfo._is_sparcstation5cCstjd|jd�dk	S)Nz	.*Ultra-1r�)r>r^r)r,rrr�
_is_ultra1�szSunOSCPUInfo._is_ultra1cCstjd|jd�dk	S)Nz.*Ultra-250r�)r>r^r)r,rrr�_is_ultra250�szSunOSCPUInfo._is_ultra250cCstjd|jd�dk	S)Nz	.*Ultra-2r�)r>r^r)r,rrr�
_is_ultra2�szSunOSCPUInfo._is_ultra2cCstjd|jd�dk	S)Nz
.*Ultra-30r�)r>r^r)r,rrr�_is_ultra30�szSunOSCPUInfo._is_ultra30cCstjd|jd�dk	S)Nz	.*Ultra-4r�)r>r^r)r,rrr�
_is_ultra4�szSunOSCPUInfo._is_ultra4cCstjd|jd�dk	S)Nz.*Ultra-5_10r�)r>r^r)r,rrr�
_is_ultra5_10�szSunOSCPUInfo._is_ultra5_10cCstjd|jd�dk	S)Nz	.*Ultra-5r�)r>r^r)r,rrr�
_is_ultra5�szSunOSCPUInfo._is_ultra5cCstjd|jd�dk	S)Nz
.*Ultra-60r�)r>r^r)r,rrr�_is_ultra60�szSunOSCPUInfo._is_ultra60cCstjd|jd�dk	S)Nz
.*Ultra-80r�)r>r^r)r,rrr�_is_ultra80�szSunOSCPUInfo._is_ultra80cCstjd|jd�dk	S)Nz.*Ultra-Enterpriser�)r>r^r)r,rrr�_is_ultraenterprice�sz SunOSCPUInfo._is_ultraenterpricecCstjd|jd�dk	S)Nz.*Ultra-Enterprise-10000r�)r>r^r)r,rrr�_is_ultraenterprice10k�sz#SunOSCPUInfo._is_ultraenterprice10kcCstjd|jd�dk	S)Nz
.*Sun-Firer�)r>r^r)r,rrr�_is_sunfire�szSunOSCPUInfo._is_sunfirecCstjd|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)rFrGrHrrTrUr�r�r�r;r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrr��s4r�c@seZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�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\CentralProcessorcCsx|jdk	rdSg}�y(ddl}tjdtj�}|j|j|j�}d}�x�y|j||�}Wn|j	k
rlPYqDX|d7}|j
d|i�|j||�}d}x�y|j||�\}	}
}Wn|j	k
r�PYq�X|d}|
|d
|	<|	dkr�|j|
�}|r�t
|jd��|dd<t
|jd��|dd	<t
|jd
��|dd<q�WqDWWn.tk
�rj}
zt|
d�WYdd}
~
XnX||j_dS)NrzFfamily\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)\s+stepping\s+(?P<STP>\d+)rZ	ProcessorZ
IdentifierZFML�FamilyZMDL�ModelZSTPZSteppingz
(ignoring)rLrLrLrL)r�winregr>r?r��OpenKey�HKEY_LOCAL_MACHINE�pkey�EnumKey�errorrNZ	EnumValuer@r�rAr+�printrP)r,rr	ZprgxZchndZpnum�procZphndZpidxr9rSZvtpeZsrchrrrrrT�sD

"zWin32CPUInfo.__init__cCsdS)Nr)r,rrrrUszWin32CPUInfo._not_implcCs|jdddkS)Nr�VendorIdentifierrW)r)r,rrrrXszWin32CPUInfo._is_AMDcCs|j�o|jdddkS)Nrr�)rdr)r,rrr�	_is_Am486szWin32CPUInfo._is_Am486cCs|j�o|jdddkS)Nrrr)rdr)r,rrr�
_is_Am5x86szWin32CPUInfo._is_Am5x86cCs,|j�o*|jdddko*|jdddkS)	Nrr�rrr#�)rrr#r)rdr)r,rrr�	_is_AMDK5szWin32CPUInfo._is_AMDK5cCs,|j�o*|jdddko*|jdddkS)Nrrrr��)rr)rdr)r,rrr�	_is_AMDK6szWin32CPUInfo._is_AMDK6cCs,|j�o*|jdddko*|jdddkS)Nrrrr�)rdr)r,rrr�_is_AMDK6_2szWin32CPUInfo._is_AMDK6_2cCs,|j�o*|jdddko*|jdddkS)Nrrrr�	)rdr)r,rrr�_is_AMDK6_3!szWin32CPUInfo._is_AMDK6_3cCs|j�o|jdddkS)Nrrr)rdr)r,rrr�	_is_AMDK7%szWin32CPUInfo._is_AMDK7cCs|j�o|jdddkS)Nrr�)rdr)r,rrrre,szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrrrq)r)r,rrrrr1szWin32CPUInfo._is_IntelcCs|jdddkS)Nrrr)r)r,rrrr�4szWin32CPUInfo._is_i386cCs|jdddkS)Nrrr)r)r,rrrrs7szWin32CPUInfo._is_i486cCs|j�o|jdddkS)Nrrr)rur)r,rrrrv:szWin32CPUInfo._is_i586cCs|j�o|jdddkS)Nrrr)rur)r,rrrrx=szWin32CPUInfo._is_i686cCs|j�o|jdddkS)Nrrr)rur)r,rrrrz@szWin32CPUInfo._is_PentiumcCs,|j�o*|jdddko*|jdddkS)Nrrrrr)rur)r,rrrr}CszWin32CPUInfo._is_PentiumMMXcCs,|j�o*|jdddko*|jdddkS)Nrrrrr)rur)r,rrrr|GszWin32CPUInfo._is_PentiumProcCs,|j�o*|jdddko*|jdddkS)Nrrrrrr)rrr)rur)r,rrrr{KszWin32CPUInfo._is_PentiumIIcCs,|j�o*|jdddko*|jddd
kS)Nrrrrrrr�
�)rrrr!r")rur)r,rrrr~OszWin32CPUInfo._is_PentiumIIIcCs|j�o|jdddkS)Nrrr )rur)r,rrrrSszWin32CPUInfo._is_PentiumIVcCs,|j�o*|jdddko*|jdddkS)	Nrrrrr�
�)rr#r$)rur)r,rrrr�VszWin32CPUInfo._is_PentiumMcCs,|j�o*|jdddko*|jdddkS)	Nrrrrr ��)r r%r&)rur)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`|j�r>|jdddkr,|jdddkp<|jddd	kS|j�rX|jddd
kSdSdS)Nrrrrrrr F)rr )rrr )rurrd)r,rrrr�fs$zWin32CPUInfo._has_mmxcCs�|j�r>|jdddkr,|jdddkp<|jddd
kS|j�r||jdddkrj|jddd
kpz|jddd
kSdSdS)Nrrrrrrrr!r"r F)rrrr!r")rrrr!)rurrd)r,rrrr�oszWin32CPUInfo._has_ssecCs8|j�r |j�p|j�p|j�S|j�r0|j�SdSdS)NF)ruZis_Pentium4Zis_PentiumMZis_Core2rdZis_AMD64)r,rrrr�{szWin32CPUInfo._has_sse2cCs|j�o|jdddkS)Nrrrrr )rrr )rdr)r,rrrr��szWin32CPUInfo._has_3dnowcCs|j�o|jdddkS)Nrrrr )rr )rdr)r,rrrr��szWin32CPUInfo._has_3dnowext)$rFrGrHrrrTrUrXrrrrrrrrerrr�rsrvrxrzr}r|r{r~rr�r�r�r;r�r�r�r�r�rrrrr�sB(		r�linux�irix�darwin�sunos�win32�cygwin�r)r-r�r)r.r�r)r/r�r)r0r)rI�__all__rr<r>�sysr6r�
subprocessrrrrr)r*rJr�r�r�rr2Zcpuinforrrrr�<module>sF


	

	#D:.J3