Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/numpy/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/numpy/distutils/__pycache__/cpuinfo.cpython-35.pyc



(��^�Y�@s7dZddlmZmZmZdgZddlZddlZddlZddl	Z	ej
ddkr�ddlmZnddl
mZddlZddlZddlmZd#dd	d
�Zd$ddd�Zd%dd
d�Zd&ddd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Zejjd�r�eZn�ejjd�r�eZnoejdkr�eZnWejjd �r�eZn<ejjd!�r	eZn!ejjd"�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

�)�division�absolute_import�print_function�cpuN�)�getstatusoutput)�
get_exception�cCs�yt|�\}}WnAtk
rYt�}tjt|�td|�d|fSYnXtj|�r�tj	|�|kr�d|fSd|fS)N�
stacklevelFT)
r�EnvironmentErrorr�warnings�warn�str�UserWarning�os�	WIFEXITED�WEXITSTATUS)�cmd�successful_statusr
�status�output�e�r�J/opt/alt/python35/lib64/python3.5/site-packages/numpy/distutils/cpuinfo.py�	getoutputs
	$
rcKsWi}xJ|D]B}t||d|d|d�\}}|r
|j�||<q
W|S)Nrr
r	)r�strip)rr
�kw�info�key�okrrrr�command_info*s
r ccsRt|d|d|d�\}}|s,dSx|j�D]}|j�Vq9WdS)Nrr
r	)r�
splitlinesr)rrr
rr�linerrr�command_by_line3sr#cCsti}xgt|d|d|d�D]I}dd�|j|d�D�}t|�dkr#|d||d<q#W|S)Nrr
r	cSsg|]}|j��qSr)r)�.0�srrr�
<listcomp>@s	z*key_value_from_command.<locals>.<listcomp>�r)r#�split�len)r�seprr
�dr"�lrrr�key_value_from_command;sr-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.
    c	Csy|�SWnYnXdS)Nr)�self�funcrrr�	_try_callJszCPUInfoBase._try_callcCsw|jd�sgt|d|�r]t|d|�}t|tj�rg|j|dd�Sn
dd�St|��dS)N�_cSs
||�S)Nr)r0�attrrrr�<lambda>Usz)CPUInfoBase.__getattr__.<locals>.<lambda>cSsdS)Nrrrrrr4Ws)�
startswith�hasattr�getattr�
isinstance�types�
MethodTyper1�AttributeError)r/�namer3rrr�__getattr__Ps
zCPUInfoBase.__getattr__cCsdS)Nr	r)r/rrr�	_getNCPUsZszCPUInfoBase._getNCPUscCs5tj�d}tjd�j|�jd�}|S)Nrz(\d+)bitr	)�platform�architecture�re�compile�search�group)r/�abits�nbitsrrr�__get_nbits]s!zCPUInfoBase.__get_nbitscCs|j�dkS)N�32)�_CPUInfoBase__get_nbits)r/rrr�	_is_32bitbszCPUInfoBase._is_32bitcCs|j�dkS)N�64)rI)r/rrr�	_is_64biteszCPUInfoBase._is_64bitN)
�__name__�
__module__�__qualname__�__doc__r1r=r>rIrJrLrrrrr.Es
r.c@sJeZdZdZdd�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�\}}|rH|j�|dd<ytd�}Wn7tk
r�t�}tjt|�t	dd�Yn�Xx�|D]x}dd�|j
d	d
�D�}t|�dkr�q�|\}}	|s�||dkr|ji�|	|d|<q�W|j
�||j_dS)
Nzuname -mr�uname_mz
/proc/cpuinfor
r'cSsg|]}|j��qSr)r)r$r%rrrr&zs	z)LinuxCPUInfo.__init__.<locals>.<listcomp>�:r	���rT)rrr�openrrrr
rrr(r)�append�close�	__class__)
r/rrr�forr"�
name_valuer<�valuerrr�__init__ls*	
	!


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)r`r)r/rrr�_is_AthlonK6_2�szLinuxCPUInfo._is_AthlonK6_2cCs!|j�o |jdddkS)Nrra�3)r`r)r/rrr�_is_AthlonK6_3�szLinuxCPUInfo._is_AthlonK6_3cCs!tjd|jdd�dk	S)Nz	.*?AMD-K6rz
model name)rA�matchr)r/rrr�_is_AthlonK6�szLinuxCPUInfo._is_AthlonK6cCs!tjd|jdd�dk	S)Nz	.*?AMD-K7rz
model name)rArfr)r/rrr�_is_AthlonK7�szLinuxCPUInfo._is_AthlonK7cCs!tjd|jdd�dk	S)Nz.*?Athlon\(tm\) MP\brz
model name)rArfr)r/rrr�_is_AthlonMP�s	zLinuxCPUInfo._is_AthlonMPcCs!|j�o |jdddkS)Nr�family�15)�is_AMDr)r/rrr�	_is_AMD64�szLinuxCPUInfo._is_AMD64cCs!tjd|jdd�dk	S)Nz.*?Athlon\(tm\) 64\brz
model name)rArfr)r/rrr�_is_Athlon64�s	zLinuxCPUInfo._is_Athlon64cCs!tjd|jdd�dk	S)Nz.*?Athlon HX\brz
model name)rArfr)r/rrr�_is_AthlonHX�s	zLinuxCPUInfo._is_AthlonHXcCs!tjd|jdd�dk	S)Nz.*?Opteron\brz
model name)rArfr)r/rrr�_is_Opteron�s	zLinuxCPUInfo._is_OpteroncCs!tjd|jdd�dk	S)Nz.*?Hammer\brz
model name)rArfr)r/rrr�
_is_Hammer�s	zLinuxCPUInfo._is_HammercCs|jdddkS)Nrr�Alpha)r)r/rrr�	_is_Alpha�szLinuxCPUInfo._is_AlphacCs!|j�o |jdddkS)Nrz	cpu model�EV4)�is_Alphar)r/rrr�_is_EV4�szLinuxCPUInfo._is_EV4cCs!|j�o |jdddkS)Nrz	cpu model�EV5)rur)r/rrr�_is_EV5�szLinuxCPUInfo._is_EV5cCs!|j�o |jdddkS)Nrz	cpu model�EV56)rur)r/rrr�_is_EV56�szLinuxCPUInfo._is_EV56cCs!|j�o |jdddkS)Nrz	cpu model�PCA56)rur)r/rrr�	_is_PCA56�szLinuxCPUInfo._is_PCA56cCs|jdddkS)Nrr^�GenuineIntel)r)r/rrr�	_is_Intel�szLinuxCPUInfo._is_IntelcCs|jdddkS)Nrr�i486)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)r�r)r/rrr�_is_i686�szLinuxCPUInfo._is_i686cCs!tjd|jdd�dk	S)Nz
.*?Celeronrz
model name)rArfr)r/rrr�_is_Celeron�s	zLinuxCPUInfo._is_CeleroncCs!tjd|jdd�dk	S)Nz
.*?Pentiumrz
model name)rArfr)r/rrr�_is_Pentium�s	zLinuxCPUInfo._is_PentiumcCs!tjd|jdd�dk	S)Nz.*?Pentium.*?II\brz
model name)rArfr)r/rrr�
_is_PentiumII�s	zLinuxCPUInfo._is_PentiumIIcCs!tjd|jdd�dk	S)Nz.*?PentiumPro\brz
model name)rArfr)r/rrr�_is_PentiumPro�s	zLinuxCPUInfo._is_PentiumProcCs!tjd|jdd�dk	S)Nz.*?Pentium.*?MMX\brz
model name)rArfr)r/rrr�_is_PentiumMMX�s	zLinuxCPUInfo._is_PentiumMMXcCs!tjd|jdd�dk	S)Nz.*?Pentium.*?III\brz
model name)rArfr)r/rrr�_is_PentiumIII�s	zLinuxCPUInfo._is_PentiumIIIcCs!tjd|jdd�dk	S)Nz.*?Pentium.*?(IV|4)\brz
model name)rArfr)r/rrr�
_is_PentiumIV�s	zLinuxCPUInfo._is_PentiumIVcCs!tjd|jdd�dk	S)Nz.*?Pentium.*?M\brz
model name)rArfr)r/rrr�_is_PentiumM�s	zLinuxCPUInfo._is_PentiumMcCs|j�o|j�S)N)�is_PentiumIV�has_sse3)r/rrr�_is_Prescott�szLinuxCPUInfo._is_PrescottcCst|j�os|jdddks:|jdddkos|j�os|j�ostjd|jdd�dk	S)Nrz
cpu familyr�rkz	.*?\blm\b�flags)r�rr��	has_ssse3rArf)r/rrr�
_is_Nocona�s
zLinuxCPUInfo._is_NoconacCs9|j�o8|j�o8tjd|jdd�dk	S)Nz.*?Core\(TM\)2\brz
model name)�is_64bitr�rArfr)r/rrr�	_is_Core2�s	zLinuxCPUInfo._is_Core2cCs!tjd|jdd�dk	S)Nz.*?Itanium\brrj)rArfr)r/rrr�_is_Itanium�s	zLinuxCPUInfo._is_ItaniumcCs'tjd|jddtj�dk	S)Nz	.*?XEON\brz
model name)rArfr�
IGNORECASE)r/rrr�_is_XEONs	zLinuxCPUInfo._is_XEONcCst|j�dkS)Nr	)r)r)r/rrr�
_is_singleCPUszLinuxCPUInfo._is_singleCPUcCs
t|j�S)N)r)r)r/rrrr>szLinuxCPUInfo._getNCPUscCs|jdddkS)Nr�fdiv_bug�yes)r)r/rrr�
_has_fdiv_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)Nr�f00f_bugr�)r)r/rrr�
_has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCs!tjd|jdd�dk	S)Nz
.*?\bmmx\brr�)rArfr)r/rrr�_has_mmxszLinuxCPUInfo._has_mmxcCs!tjd|jdd�dk	S)Nz
.*?\bsse\brr�)rArfr)r/rrr�_has_sseszLinuxCPUInfo._has_ssecCs!tjd|jdd�dk	S)Nz.*?\bsse2\brr�)rArfr)r/rrr�	_has_sse2szLinuxCPUInfo._has_sse2cCs!tjd|jdd�dk	S)Nz
.*?\bpni\brr�)rArfr)r/rrr�	_has_sse3 szLinuxCPUInfo._has_sse3cCs!tjd|jdd�dk	S)Nz.*?\bssse3\brr�)rArfr)r/rrr�
_has_ssse3#szLinuxCPUInfo._has_ssse3cCs!tjd|jdd�dk	S)Nz.*?\b3dnow\brr�)rArfr)r/rrr�
_has_3dnow&szLinuxCPUInfo._has_3dnowcCs!tjd|jdd�dk	S)Nz.*?\b3dnowext\brr�)rArfr)r/rrr�
_has_3dnowext)szLinuxCPUInfo._has_3dnowext)4rMrNrOrr\r]r`rcrergrhrirmrnrorprqrsrvrxrzr|�_is_i386r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��_is_Xeonr�r>r�r�r�r�r�r�r�r�r�rrrrrQhsbrQc@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�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	rdStddddd�}||j_dS)N�sysconfr*� rrr	)rr	)rr-rX)r/rrrrr\/s
	zIRIXCPUInfo.__init__cCsdS)Nr)r/rrrr]6szIRIXCPUInfo._not_implcCs|jjd�dkS)N�NUM_PROCESSORS�1)r�get)r/rrrr�8szIRIXCPUInfo._is_singleCPUcCst|jjdd��S)Nr�r	)�intrr�)r/rrrr>;szIRIXCPUInfo._getNCPUscCs*|jjd�j�dj�d|kS)N�
PROCESSORSrzr%s)rr�r(�lower)r/�nrrr�	__cputype>szIRIXCPUInfo.__cputypecCs
|jd�S)Ni�)�_IRIXCPUInfo__cputype)r/rrr�	_is_r2000@szIRIXCPUInfo._is_r2000cCs
|jd�S)Ni�)r�)r/rrr�	_is_r3000AszIRIXCPUInfo._is_r3000cCs
|jd�S)Ni<)r�)r/rrr�	_is_r3900BszIRIXCPUInfo._is_r3900cCs
|jd�S)Ni�)r�)r/rrr�	_is_r4000CszIRIXCPUInfo._is_r4000cCs
|jd�S)Ni)r�)r/rrr�	_is_r4100DszIRIXCPUInfo._is_r4100cCs
|jd�S)Ni�)r�)r/rrr�	_is_r4300EszIRIXCPUInfo._is_r4300cCs
|jd�S)Ni0)r�)r/rrr�	_is_r4400FszIRIXCPUInfo._is_r4400cCs
|jd�S)Ni�)r�)r/rrr�	_is_r4600GszIRIXCPUInfo._is_r4600cCs
|jd�S)Ni*)r�)r/rrr�	_is_r4650HszIRIXCPUInfo._is_r4650cCs
|jd�S)Ni�)r�)r/rrr�	_is_r5000IszIRIXCPUInfo._is_r5000cCs
|jd�S)Nip)r�)r/rrr�	_is_r6000JszIRIXCPUInfo._is_r6000cCs
|jd�S)Ni@)r�)r/rrr�	_is_r8000KszIRIXCPUInfo._is_r8000cCs
|jd�S)Ni')r�)r/rrr�
_is_r10000LszIRIXCPUInfo._is_r10000cCs
|jd�S)Ni�.)r�)r/rrr�
_is_r12000MszIRIXCPUInfo._is_r12000cCs
|jd�S)N�orion)r�)r/rrr�
_is_rorionNszIRIXCPUInfo._is_rorionc	Cs#y|jjd�SWnYnXdS)N�MACHINE)rr�)r/rrr�get_ipPszIRIXCPUInfo.get_ipcCs |jjd�j�d|kS)Nr�zip%s)rr�r�)r/r�rrr�	__machineSszIRIXCPUInfo.__machinecCs
|jd�S)N�)�_IRIXCPUInfo__machine)r/rrr�_is_IP19UszIRIXCPUInfo._is_IP19cCs
|jd�S)N�)r�)r/rrr�_is_IP20VszIRIXCPUInfo._is_IP20cCs
|jd�S)N�)r�)r/rrr�_is_IP21WszIRIXCPUInfo._is_IP21cCs
|jd�S)N�)r�)r/rrr�_is_IP22XszIRIXCPUInfo._is_IP22cCs|jd�o|j�S)Nr�)r�r�)r/rrr�_is_IP22_4kYszIRIXCPUInfo._is_IP22_4kcCs|jd�o|j�S)Nr�)r�r�)r/rrr�_is_IP22_5kZszIRIXCPUInfo._is_IP22_5kcCs
|jd�S)N�)r�)r/rrr�_is_IP24[szIRIXCPUInfo._is_IP24cCs
|jd�S)N�)r�)r/rrr�_is_IP25\szIRIXCPUInfo._is_IP25cCs
|jd�S)N�)r�)r/rrr�_is_IP26]szIRIXCPUInfo._is_IP26cCs
|jd�S)N�)r�)r/rrr�_is_IP27^szIRIXCPUInfo._is_IP27cCs
|jd�S)N�)r�)r/rrr�_is_IP28_szIRIXCPUInfo._is_IP28cCs
|jd�S)N�)r�)r/rrr�_is_IP30`szIRIXCPUInfo._is_IP30cCs
|jd�S)N� )r�)r/rrr�_is_IP32aszIRIXCPUInfo._is_IP32cCs|jd�o|j�S)Nr�)r�r�)r/rrr�_is_IP32_5kbszIRIXCPUInfo._is_IP32_5kcCs|jd�o|j�S)Nr�)r�r�)r/rrr�_is_IP32_10kcszIRIXCPUInfo._is_IP32_10k))rMrNrOrr\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�r�r�rrrrr�,sLr�c@sBeZdZdZdd�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�
DarwinCPUInfoNcCsN|jdk	rdStdddd�}tddd�|d<||j_dS)N�arch�machinez	sysctl hwr*�=�	sysctl_hw)rr r-rX)r/rrrrr\is	zDarwinCPUInfo.__init__cCsdS)Nr)r/rrrr]qszDarwinCPUInfo._not_implcCst|jdjdd��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��ppc)r)r/rrr�_is_ppc{szDarwinCPUInfo._is_ppccCs|jdd|kS)Nr�zppc%s)r)r/r�rrrr�~szDarwinCPUInfo.__machinecCs
|jd�S)NiY)�_DarwinCPUInfo__machine)r/rrr�
_is_ppc601�szDarwinCPUInfo._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)N�603e)r�)r/rrr�_is_ppc603e�szDarwinCPUInfo._is_ppc603ecCs
|jd�S)Ni\)r�)r/rrr�
_is_ppc604�szDarwinCPUInfo._is_ppc604cCs
|jd�S)N�604e)r�)r/rrr�_is_ppc604e�szDarwinCPUInfo._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)rMrNrOrr\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�fs4r�c@sBeZdZdZdd�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�SunOSCPUInfoNcCs�|jdk	rdStdddddddddd�}tdd	d
�|d<x@td�D]2}tjd
|�}|r]|jd�|d<Pq]W||j_dS)Nr��mach�uname_i�	isainfo_bz
isainfo -b�	isainfo_nz
isainfo -nzuname -Xr*r��uname_Xzpsrinfo -v 0z+\s*The (?P<p>[\w\d]+) processor operates at�p�	processor)rr r-r#rArfrDrX)r/rr"�mrrrr\�s	zSunOSCPUInfo.__init__cCsdS)Nr)r/rrrr]�szSunOSCPUInfo._not_implcCs|jddkS)Nrr�)r)r/rrrr��szSunOSCPUInfo._is_i386cCs|jddkS)Nr�sparc)r)r/rrr�	_is_sparc�szSunOSCPUInfo._is_sparccCs|jddkS)Nr�sparcv9)r)r/rrr�_is_sparcv9�szSunOSCPUInfo._is_sparcv9cCst|jdjdd��S)Nr�NumCPUr	)r�rr�)r/rrrr>�szSunOSCPUInfo._getNCPUscCs|jddkS)Nr��sun4)r)r/rrr�_is_sun4�szSunOSCPUInfo._is_sun4cCstjd|jd�dk	S)N�SUNWr)rArfr)r/rrr�_is_SUNW�szSunOSCPUInfo._is_SUNWcCstjd|jd�dk	S)Nz.*SPARCstation-5r)rArfr)r/rrr�_is_sparcstation5�szSunOSCPUInfo._is_sparcstation5cCstjd|jd�dk	S)Nz	.*Ultra-1r)rArfr)r/rrr�
_is_ultra1�szSunOSCPUInfo._is_ultra1cCstjd|jd�dk	S)Nz.*Ultra-250r)rArfr)r/rrr�_is_ultra250�szSunOSCPUInfo._is_ultra250cCstjd|jd�dk	S)Nz	.*Ultra-2r)rArfr)r/rrr�
_is_ultra2�szSunOSCPUInfo._is_ultra2cCstjd|jd�dk	S)Nz
.*Ultra-30r)rArfr)r/rrr�_is_ultra30�szSunOSCPUInfo._is_ultra30cCstjd|jd�dk	S)Nz	.*Ultra-4r)rArfr)r/rrr�
_is_ultra4�szSunOSCPUInfo._is_ultra4cCstjd|jd�dk	S)Nz.*Ultra-5_10r)rArfr)r/rrr�
_is_ultra5_10�szSunOSCPUInfo._is_ultra5_10cCstjd|jd�dk	S)Nz	.*Ultra-5r)rArfr)r/rrr�
_is_ultra5�szSunOSCPUInfo._is_ultra5cCstjd|jd�dk	S)Nz
.*Ultra-60r)rArfr)r/rrr�_is_ultra60�szSunOSCPUInfo._is_ultra60cCstjd|jd�dk	S)Nz
.*Ultra-80r)rArfr)r/rrr�_is_ultra80�szSunOSCPUInfo._is_ultra80cCstjd|jd�dk	S)Nz.*Ultra-Enterpriser)rArfr)r/rrr�_is_ultraenterprice�sz SunOSCPUInfo._is_ultraenterpricecCstjd|jd�dk	S)Nz.*Ultra-Enterprise-10000r)rArfr)r/rrr�_is_ultraenterprice10k�sz#SunOSCPUInfo._is_ultraenterprice10kcCstjd|jd�dk	S)Nz
.*Sun-Firer)rArfr)r/rrr�_is_sunfire�szSunOSCPUInfo._is_sunfirecCstjd|jd�dk	S)Nz.*Ultrar)rArfr)r/rrr�	_is_ultra�szSunOSCPUInfo._is_ultracCs|jddkS)Nr�sparcv7)r)r/rrr�_is_cpusparcv7�szSunOSCPUInfo._is_cpusparcv7cCs|jddkS)Nr�sparcv8)r)r/rrr�_is_cpusparcv8�szSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nrr)r)r/rrr�_is_cpusparcv9�szSunOSCPUInfo._is_cpusparcv9)rMrNrOrr\r]r�r
rr>rrrrrrrrrrrrrrrrr!r#r$rrrrr�s4rc@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\CentralProcessorc
Cs�|jdk	rdSg}y�tjddkr>ddl}nddl}tjdtj�}|j|j	|j
�}d}x7y|j||�}Wn|jk
r�PYq�X|d7}|j
d|i�|j||�}d}x�y|j||�\}	}
}Wn|jk
rPYq�X|d}|
|d|	<|	dkr�|j|
�}|r�t|jd��|dd<t|jd	��|dd
<t|jd��|dd<q�Wq�WWnttj�dd
�YnX||j_dS)NrrzFfamily\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)\s+stepping\s+(?P<STP>\d+)r	�	Processor�
Identifier�FML�Family�MDL�Model�STP�Steppingz
(ignoring)rTrTrTrT)r�sys�version_info�winreg�_winregrArBr��OpenKey�HKEY_LOCAL_MACHINE�pkey�EnumKey�errorrV�	EnumValuerCr�rD�print�exc_inforX)
r/rr0�prgx�chnd�pnum�proc�phnd�pidxr<r[�vtpe�srchrrrr\�sH	

)zWin32CPUInfo.__init__cCsdS)Nr)r/rrrr]szWin32CPUInfo._not_implcCs|jdddkS)Nr�VendorIdentifierr_)r)r/rrrr`szWin32CPUInfo._is_AMDcCs!|j�o |jdddkS)Nrr)�)rlr)r/rrr�	_is_Am486szWin32CPUInfo._is_Am486cCs!|j�o |jdddkS)Nrr)rC)rlr)r/rrr�
_is_Am5x86szWin32CPUInfo._is_Am5x86cCs8|j�o7|jdddko7|jdddkS)	Nrr)�r+r	r'r)rr	r'r)rlr)r/rrr�	_is_AMDK5s#zWin32CPUInfo._is_AMDK5cCs8|j�o7|jdddko7|jdddkS)Nrr)rFr+��)rHrI)rlr)r/rrr�	_is_AMDK6"s#zWin32CPUInfo._is_AMDK6cCs8|j�o7|jdddko7|jdddkS)Nrr)rFr+�)rlr)r/rrr�_is_AMDK6_2&s#zWin32CPUInfo._is_AMDK6_2cCs8|j�o7|jdddko7|jdddkS)Nrr)rFr+�	)rlr)r/rrr�_is_AMDK6_3*s#zWin32CPUInfo._is_AMDK6_3cCs!|j�o |jdddkS)Nrr)rH)rlr)r/rrr�	_is_AMDK7.szWin32CPUInfo._is_AMDK7cCs!|j�o |jdddkS)Nrr)�)rlr)r/rrrrm5szWin32CPUInfo._is_AMD64cCs|jdddkS)NrrBr})r)r/rrrr~:szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr)r)r)r/rrrr�=szWin32CPUInfo._is_i386cCs|jdddkS)Nrr)rC)r)r/rrrr�@szWin32CPUInfo._is_i486cCs!|j�o |jdddkS)Nrr)rF)r�r)r/rrrr�CszWin32CPUInfo._is_i586cCs!|j�o |jdddkS)Nrr)rH)r�r)r/rrrr�FszWin32CPUInfo._is_i686cCs!|j�o |jdddkS)Nrr)rF)r�r)r/rrrr�IszWin32CPUInfo._is_PentiumcCs8|j�o7|jdddko7|jdddkS)Nrr)rFr+rC)r�r)r/rrrr�Ls#zWin32CPUInfo._is_PentiumMMXcCs8|j�o7|jdddko7|jdddkS)Nrr)rHr+r	)r�r)r/rrrr�Ps#zWin32CPUInfo._is_PentiumProcCs8|j�o7|jdddko7|jdddkS)Nrr)rHr+rrF)rrFrH)r�r)r/rrrr�Ts#zWin32CPUInfo._is_PentiumIIcCs8|j�o7|jdddko7|jddd
kS)Nrr)rHr+rIrKrM�
�)rIrKrMrQrR)r�r)r/rrrr�Xs#zWin32CPUInfo._is_PentiumIIIcCs!|j�o |jdddkS)Nrr)rP)r�r)r/rrrr�\szWin32CPUInfo._is_PentiumIVcCs8|j�o7|jdddko7|jdddkS)	Nrr)rHr+rM�
�)rMrSrT)r�r)r/rrrr�_s#zWin32CPUInfo._is_PentiumMcCs8|j�o7|jdddko7|jdddkS)	Nrr)rHr+rP��)rPrUrV)r�r)r/rrrr�cs#zWin32CPUInfo._is_Core2cCst|j�dkS)Nr	)r)r)r/rrrr�iszWin32CPUInfo._is_singleCPUcCs
t|j�S)N)r)r)r/rrrr>lszWin32CPUInfo._getNCPUscCsx|j�rO|jdddkr:|jdddkpN|jddd	kS|j�rp|jddd
kSdSdS)Nrr)rFr+rCrHrPF)rHrP)rFrHrP)r�rrl)r/rrrr�os.zWin32CPUInfo._has_mmxcCs�|j�rO|jdddkr:|jdddkpN|jddd
kS|j�r�|jdddkr�|jddd
kp�|jddd
kSdSdS)Nrr)rHr+rIrKrMrQrRrPF)rIrKrMrQrR)rHrIrKrQ)r�rrl)r/rrrr�xszWin32CPUInfo._has_ssecCsL|j�r.|j�p-|j�p-|j�S|j�rD|j�SdSdS)NF)r��is_Pentium4�is_PentiumM�is_Core2rl�is_AMD64)r/rrrr��s

zWin32CPUInfo._has_sse2cCs!|j�o |jdddkS)Nrr)rFrHrP)rFrHrP)rlr)r/rrrr��szWin32CPUInfo._has_3dnowcCs!|j�o |jdddkS)Nrr)rHrP)rHrP)rlr)r/rrrr��szWin32CPUInfo._has_3dnowext)$rMrNrOrr4r\r]r`rDrErGrJrLrNrOrmr~r�r�r�r�r�r�r�r�r�r�r�r�r�r>r�r�r�r�r�rrrrr%�sB+		r%�linux�irix�darwin�sunos�win32�cygwin)r)r)r)r) rP�
__future__rrr�__all__r.rAr9rr/�
subprocessr�commandsrr?�numpy.distutils.compatrrr r#r-�objectr.rQr�r�rr%r5�cpuinforrrrr�<module>
sF	$		#�:.J�