%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib64/python3.9/site-packages/numpy/distutils/__pycache__/
Upload File :
Create Path :
Current File : //lib64/python3.9/site-packages/numpy/distutils/__pycache__/cpuinfo.cpython-39.pyc

a

z[ycoX�@sNdZdgZddlZddlZddlZddlZddlZddlZddlm	Z	d!dd�Z
d"d	d
�Zd#dd�Zd$d
d�Z
Gdd�d�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Zej�d�r�eZnfej�d��r�eZnRejdk�reZn@ej�d��reZn,ej�d��r,eZnej�d ��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�r�c
Cstzt|�\}}Wn:tyJ}z"tjt|�t|d�WYd}~dSd}~00t�|�rlt�|�|vrld|fSd|fS)N��
stacklevel)F�TF)	r�OSError�warnings�warn�str�UserWarning�os�	WIFEXITED�WEXITSTATUS)�cmd�successful_statusr�status�output�e�r�=/usr/lib64/python3.9/site-packages/numpy/distutils/cpuinfo.py�	getoutputsrcKs<i}|D].}t||||dd�\}}|r|��||<q|S�Nr�rr)r�strip)rr�kw�info�key�okrrrr�command_info%s
�
r ccs:t|||dd�\}}|sdS|��D]}|��Vq&dSr)r�
splitlinesr)rrrrr�linerrr�command_by_line.s�
r#cCsRi}t|||dd�D]6}dd�|�|d�D�}t|�dkr|d||d<q|S)NrrcSsg|]}|���qSr�r��.0�srrr�
<listcomp>;�z*key_value_from_command.<locals>.<listcomp>�r)r#�split�len)r�seprr�dr"�lrrr�key_value_from_command6s�
r0c@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 z|�WStyYn0dS�N)�	Exception)�self�funcrrr�	_try_callEszCPUInfoBase._try_callcCsX|�d�sLt|d|�rDt|d|�}t|tj�rL|j|fdd�Sndd�St|��dS)N�_cSs||�Sr2r)r5�attrrrr�<lambda>Pr)z)CPUInfoBase.__getattr__.<locals>.<lambda>cSsdSr2rrrrrr9Rr))�
startswith�hasattr�getattr�
isinstance�types�
MethodTyper6�AttributeError)r4�namer8rrr�__getattr__Ks
zCPUInfoBase.__getattr__cCsdS�Nrr�r4rrr�	_getNCPUsUszCPUInfoBase._getNCPUscCs&t��d}t�d��|��d�}|S)Nrz(\d+)bitr)�platformZarchitecture�re�compile�search�group)r4Zabits�nbitsrrrZ__get_nbitsXszCPUInfoBase.__get_nbitscCs|��dkS)NZ32��_CPUInfoBase__get_nbitsrDrrr�	_is_32bit]szCPUInfoBase._is_32bitcCs|��dkS)NZ64rLrDrrr�	_is_64bit`szCPUInfoBase._is_64bitN)
�__name__�
__module__�__qualname__�__doc__r6rBrErMrNrOrrrrr1@s
r1c@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�|jdurdSig}td�\}}|r4|��|dd<ztd�}Wn8tyx}z tjt|�tdd�WYd}~nnd}~00|D]V}dd�|�	d	d
�D�}t
|�dkr�q~|\}}	|r�||dvr�|�i�|	|d|<q~|��||j
_dS)Nzuname -mrZuname_mz
/proc/cpuinfor*rcSsg|]}|���qSrr$r%rrrr(tr)z)LinuxCPUInfo.__init__.<locals>.<listcomp>�:r���)rrr�openr	r
rrr
r+r,�append�close�	__class__)
r4rrr�forr"�
name_valuerA�valuerrr�__init__gs(
*
zLinuxCPUInfo.__init__cCsdSr2rrDrrr�	_not_impl~r)zLinuxCPUInfo._not_implcCs|jdddkS)Nr�	vendor_id�AuthenticAMD�rrDrrr�_is_AMD�szLinuxCPUInfo._is_AMDcCs|��o|jdddkS)Nr�model�2�rcrrDrrr�_is_AthlonK6_2�szLinuxCPUInfo._is_AthlonK6_2cCs|��o|jdddkS)Nrrd�3rfrDrrr�_is_AthlonK6_3�szLinuxCPUInfo._is_AthlonK6_3cCst�d|jdd�duS)Nz	.*?AMD-K6r�
model name�rG�matchrrDrrr�_is_AthlonK6�szLinuxCPUInfo._is_AthlonK6cCst�d|jdd�duS)Nz	.*?AMD-K7rrjrkrDrrr�_is_AthlonK7�szLinuxCPUInfo._is_AthlonK7cCst�d|jdd�duS)Nz.*?Athlon\(tm\) MP\brrjrkrDrrr�_is_AthlonMP�s
��zLinuxCPUInfo._is_AthlonMPcCs|��o|jdddkS)Nr�family�15��is_AMDrrDrrr�	_is_AMD64�szLinuxCPUInfo._is_AMD64cCst�d|jdd�duS)Nz.*?Athlon\(tm\) 64\brrjrkrDrrr�_is_Athlon64�s
��zLinuxCPUInfo._is_Athlon64cCst�d|jdd�duS)Nz.*?Athlon HX\brrjrkrDrrr�_is_AthlonHX�s
��zLinuxCPUInfo._is_AthlonHXcCst�d|jdd�duS)Nz.*?Opteron\brrjrkrDrrr�_is_Opteron�s
��zLinuxCPUInfo._is_OpteroncCst�d|jdd�duS)Nz.*?Hammer\brrjrkrDrrr�
_is_Hammer�s
��zLinuxCPUInfo._is_HammercCs|jdddkS)NrrZAlpharbrDrrr�	_is_Alpha�szLinuxCPUInfo._is_AlphacCs|��o|jdddkS)Nr�	cpu modelZEV4�Zis_AlpharrDrrr�_is_EV4�szLinuxCPUInfo._is_EV4cCs|��o|jdddkS)NrrzZEV5r{rDrrr�_is_EV5�szLinuxCPUInfo._is_EV5cCs|��o|jdddkS)NrrzZEV56r{rDrrr�_is_EV56�szLinuxCPUInfo._is_EV56cCs|��o|jdddkS)NrrzZPCA56r{rDrrr�	_is_PCA56�szLinuxCPUInfo._is_PCA56cCs|jdddkS)Nrr`�GenuineIntelrbrDrrr�	_is_Intel�szLinuxCPUInfo._is_IntelcCs|jdddkS)NrrZi486rbrDrrr�_is_i486�szLinuxCPUInfo._is_i486cCs|��o|jdddkS)Nr�
cpu family�5��is_IntelrrDrrr�_is_i586�szLinuxCPUInfo._is_i586cCs|��o|jdddkS)Nrr��6r�rDrrr�_is_i686�szLinuxCPUInfo._is_i686cCst�d|jdd�duS)Nz
.*?CeleronrrjrkrDrrr�_is_Celeron�s
��zLinuxCPUInfo._is_CeleroncCst�d|jdd�duS)Nz
.*?PentiumrrjrkrDrrr�_is_Pentium�s
��zLinuxCPUInfo._is_PentiumcCst�d|jdd�duS)Nz.*?Pentium.*?II\brrjrkrDrrr�
_is_PentiumII�s
��zLinuxCPUInfo._is_PentiumIIcCst�d|jdd�duS)Nz.*?PentiumPro\brrjrkrDrrr�_is_PentiumPro�s
��zLinuxCPUInfo._is_PentiumProcCst�d|jdd�duS)Nz.*?Pentium.*?MMX\brrjrkrDrrr�_is_PentiumMMX�s
��zLinuxCPUInfo._is_PentiumMMXcCst�d|jdd�duS)Nz.*?Pentium.*?III\brrjrkrDrrr�_is_PentiumIII�s
��zLinuxCPUInfo._is_PentiumIIIcCst�d|jdd�duS)Nz.*?Pentium.*?(IV|4)\brrjrkrDrrr�
_is_PentiumIV�s
��zLinuxCPUInfo._is_PentiumIVcCst�d|jdd�duS)Nz.*?Pentium.*?M\brrjrkrDrrr�_is_PentiumM�s
��zLinuxCPUInfo._is_PentiumMcCs|��o|��Sr2)Zis_PentiumIV�has_sse3rDrrr�_is_Prescott�szLinuxCPUInfo._is_PrescottcCsX|��oV|jdddks,|jdddkoV|��oV|��oVt�d|jdd�duS)Nrr�r�rqz	.*?\blm\b�flags)r�rr�Z	has_ssse3rGrlrDrrr�
_is_Nocona�s���zLinuxCPUInfo._is_NoconacCs*|��o(|��o(t�d|jdd�duS)Nz.*?Core\(TM\)2\brrj)Zis_64bitr�rGrlrrDrrr�	_is_Core2�s���zLinuxCPUInfo._is_Core2cCst�d|jdd�duS)Nz.*?Itanium\brrprkrDrrr�_is_Itanium�s
��zLinuxCPUInfo._is_ItaniumcCst�d|jddtj�duS)Nz	.*?XEON\brrj)rGrlr�
IGNORECASErDrrr�_is_XEON�s
��zLinuxCPUInfo._is_XEONcCst|j�dkSrC�r,rrDrrr�
_is_singleCPUszLinuxCPUInfo._is_singleCPUcCs
t|j�Sr2r�rDrrrrEszLinuxCPUInfo._getNCPUscCs|jdddkS)NrZfdiv_bug�yesrbrDrrr�
_has_fdiv_bugszLinuxCPUInfo._has_fdiv_bugcCs|jdddkS)NrZf00f_bugr�rbrDrrr�
_has_f00f_bugszLinuxCPUInfo._has_f00f_bugcCst�d|jdd�duS)Nz
.*?\bmmx\brr�rkrDrrr�_has_mmxszLinuxCPUInfo._has_mmxcCst�d|jdd�duS)Nz
.*?\bsse\brr�rkrDrrr�_has_sseszLinuxCPUInfo._has_ssecCst�d|jdd�duS)Nz.*?\bsse2\brr�rkrDrrr�	_has_sse2szLinuxCPUInfo._has_sse2cCst�d|jdd�duS)Nz
.*?\bpni\brr�rkrDrrr�	_has_sse3szLinuxCPUInfo._has_sse3cCst�d|jdd�duS)Nz.*?\bssse3\brr�rkrDrrr�
_has_ssse3szLinuxCPUInfo._has_ssse3cCst�d|jdd�duS)Nz.*?\b3dnow\brr�rkrDrrr�
_has_3dnow szLinuxCPUInfo._has_3dnowcCst�d|jdd�duS)Nz.*?\b3dnowext\brr�rkrDrrr�
_has_3dnowext#szLinuxCPUInfo._has_3dnowext)4rPrQrRrr^r_rcrgrirmrnrortrurvrwrxryr|r}r~r�_is_i386r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Z_is_Xeonr�rEr�r�r�r�r�r�r�r�r�rrrrrTcsbrTc@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(|jdurdStdddd�}||j_dS)N�sysconf� )rr)r-r)rr0rZ�r4rrrrr^)s
�zIRIXCPUInfo.__init__cCsdSr2rrDrrrr_0r)zIRIXCPUInfo._not_implcCs|j�d�dkS)N�NUM_PROCESSORS�1)r�getrDrrrr�2szIRIXCPUInfo._is_singleCPUcCst|j�dd��S)Nr�r��intrr�rDrrrrE5szIRIXCPUInfo._getNCPUscCs |j�d���d��d|kS)NZ
PROCESSORSrzr%s)rr�r+�lower�r4�nrrrZ	__cputype8szIRIXCPUInfo.__cputypecCs
|�d�S)Ni���_IRIXCPUInfo__cputyperDrrr�	_is_r2000:r)zIRIXCPUInfo._is_r2000cCs
|�d�S)Ni�r�rDrrr�	_is_r3000;r)zIRIXCPUInfo._is_r3000cCs
|�d�S)Ni<r�rDrrr�	_is_r3900<r)zIRIXCPUInfo._is_r3900cCs
|�d�S)Ni�r�rDrrr�	_is_r4000=r)zIRIXCPUInfo._is_r4000cCs
|�d�S)Nir�rDrrr�	_is_r4100>r)zIRIXCPUInfo._is_r4100cCs
|�d�S)Ni�r�rDrrr�	_is_r4300?r)zIRIXCPUInfo._is_r4300cCs
|�d�S)Ni0r�rDrrr�	_is_r4400@r)zIRIXCPUInfo._is_r4400cCs
|�d�S)Ni�r�rDrrr�	_is_r4600Ar)zIRIXCPUInfo._is_r4600cCs
|�d�S)Ni*r�rDrrr�	_is_r4650Br)zIRIXCPUInfo._is_r4650cCs
|�d�S)Ni�r�rDrrr�	_is_r5000Cr)zIRIXCPUInfo._is_r5000cCs
|�d�S)Nipr�rDrrr�	_is_r6000Dr)zIRIXCPUInfo._is_r6000cCs
|�d�S)Ni@r�rDrrr�	_is_r8000Er)zIRIXCPUInfo._is_r8000cCs
|�d�S)Ni'r�rDrrr�
_is_r10000Fr)zIRIXCPUInfo._is_r10000cCs
|�d�S)Ni�.r�rDrrr�
_is_r12000Gr)zIRIXCPUInfo._is_r12000cCs
|�d�S)NZorionr�rDrrr�
_is_rorionHr)zIRIXCPUInfo._is_rorioncCs&z|j�d�WSty Yn0dS)N�MACHINE)rr�r3rDrrr�get_ipJszIRIXCPUInfo.get_ipcCs|j�d���d|kS)Nr�zip%s)rr�r�r�rrr�	__machineMszIRIXCPUInfo.__machinecCs
|�d�S)N���_IRIXCPUInfo__machinerDrrr�_is_IP19Or)zIRIXCPUInfo._is_IP19cCs
|�d�S)N�r�rDrrr�_is_IP20Pr)zIRIXCPUInfo._is_IP20cCs
|�d�S)N�r�rDrrr�_is_IP21Qr)zIRIXCPUInfo._is_IP21cCs
|�d�S�N�r�rDrrr�_is_IP22Rr)zIRIXCPUInfo._is_IP22cCs|�d�o|��Sr�)r�r�rDrrr�_is_IP22_4kSr)zIRIXCPUInfo._is_IP22_4kcCs|�d�o|��Sr��r�r�rDrrr�_is_IP22_5kTr)zIRIXCPUInfo._is_IP22_5kcCs
|�d�S)N�r�rDrrr�_is_IP24Ur)zIRIXCPUInfo._is_IP24cCs
|�d�S)N�r�rDrrr�_is_IP25Vr)zIRIXCPUInfo._is_IP25cCs
|�d�S)N�r�rDrrr�_is_IP26Wr)zIRIXCPUInfo._is_IP26cCs
|�d�S)N�r�rDrrr�_is_IP27Xr)zIRIXCPUInfo._is_IP27cCs
|�d�S)N�r�rDrrr�_is_IP28Yr)zIRIXCPUInfo._is_IP28cCs
|�d�S)N�r�rDrrr�_is_IP30Zr)zIRIXCPUInfo._is_IP30cCs
|�d�S�N� r�rDrrr�_is_IP32[r)zIRIXCPUInfo._is_IP32cCs|�d�o|��Sr�r�rDrrr�_is_IP32_5k\r)zIRIXCPUInfo._is_IP32_5kcCs|�d�o|��Sr�)r�r�rDrrr�_is_IP32_10k]r)zIRIXCPUInfo._is_IP32_10k))rPrQrRrr^r_r�rEr�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|jdurdStddd�}tddd�|d<||j_dS)N�arch�machine)r�r�z	sysctl hw�=�r-�	sysctl_hw)rr r0rZr�rrrr^cs
�zDarwinCPUInfo.__init__cCsdSr2rrDrrrr_kr)zDarwinCPUInfo._not_implcCst|jd�dd��S)Nr�zhw.ncpurr�rDrrrrEmszDarwinCPUInfo._getNCPUscCs|jdddkS)Nr�z
hw.machinezPower MacintoshrbrDrrr�_is_Power_Macintoshpsz!DarwinCPUInfo._is_Power_MacintoshcCs|jddkS)Nr��i386rbrDrrrr�sszDarwinCPUInfo._is_i386cCs|jddkS)Nr�ZppcrbrDrrr�_is_ppcuszDarwinCPUInfo._is_ppccCs|jdd|kS)Nr�zppc%srbr�rrrr�xszDarwinCPUInfo.__machinecCs
|�d�S)NiY��_DarwinCPUInfo__machinerDrrr�
_is_ppc601zr)zDarwinCPUInfo._is_ppc601cCs
|�d�S)NiZr�rDrrr�
_is_ppc602{r)zDarwinCPUInfo._is_ppc602cCs
|�d�S)Ni[r�rDrrr�
_is_ppc603|r)zDarwinCPUInfo._is_ppc603cCs
|�d�S)NZ603er�rDrrr�_is_ppc603e}r)zDarwinCPUInfo._is_ppc603ecCs
|�d�S)Ni\r�rDrrr�
_is_ppc604~r)zDarwinCPUInfo._is_ppc604cCs
|�d�S)NZ604er�rDrrr�_is_ppc604er)zDarwinCPUInfo._is_ppc604ecCs
|�d�S)Nilr�rDrrr�
_is_ppc620�r)zDarwinCPUInfo._is_ppc620cCs
|�d�S)Nivr�rDrrr�
_is_ppc630�r)zDarwinCPUInfo._is_ppc630cCs
|�d�S)Ni�r�rDrrr�
_is_ppc740�r)zDarwinCPUInfo._is_ppc740cCs
|�d�S)Ni�r�rDrrr�_is_ppc7400�r)zDarwinCPUInfo._is_ppc7400cCs
|�d�S)Nir�rDrrr�_is_ppc7450�r)zDarwinCPUInfo._is_ppc7450cCs
|�d�S)Ni�r�rDrrr�
_is_ppc750�r)zDarwinCPUInfo._is_ppc750cCs
|�d�S)Ni�r�rDrrr�
_is_ppc403�r)zDarwinCPUInfo._is_ppc403cCs
|�d�S)Ni�r�rDrrr�
_is_ppc505�r)zDarwinCPUInfo._is_ppc505cCs
|�d�S)Ni!r�rDrrr�
_is_ppc801�r)zDarwinCPUInfo._is_ppc801cCs
|�d�S)Ni5r�rDrrr�
_is_ppc821�r)zDarwinCPUInfo._is_ppc821cCs
|�d�S)Ni7r�rDrrr�
_is_ppc823�r)zDarwinCPUInfo._is_ppc823cCs
|�d�S)Ni\r�rDrrr�
_is_ppc860�r)zDarwinCPUInfo._is_ppc860)rPrQrRrr^r_rEr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr�`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�SunOSCPUInfoNcCsl|jdurdStdddddd�}tddd	�|d
<td�D]&}t�d|�}|r8|�d
�|d<q`q8||j_dS)Nr��mach�uname_iz
isainfo -bz
isainfo -n)r�rrZ	isainfo_b�	isainfo_nzuname -Xr�r��uname_Xzpsrinfo -v 0z+\s*The (?P<p>[\w\d]+) processor operates at�p�	processor)rr r0r#rGrlrJrZ)r4rr"�mrrrr^�s
�zSunOSCPUInfo.__init__cCsdSr2rrDrrrr_�r)zSunOSCPUInfo._not_implcCs|jddkS)Nrr�rbrDrrrr��szSunOSCPUInfo._is_i386cCs|jddkS)NrZsparcrbrDrrr�	_is_sparc�szSunOSCPUInfo._is_sparccCs|jddkS)Nr�sparcv9rbrDrrr�_is_sparcv9�szSunOSCPUInfo._is_sparcv9cCst|jd�dd��S)NrZNumCPUrr�rDrrrrE�szSunOSCPUInfo._getNCPUscCs|jddkS)Nr�Zsun4rbrDrrr�_is_sun4�szSunOSCPUInfo._is_sun4cCst�d|jd�duS)NZSUNWrrkrDrrr�_is_SUNW�szSunOSCPUInfo._is_SUNWcCst�d|jd�duS)Nz.*SPARCstation-5rrkrDrrr�_is_sparcstation5�szSunOSCPUInfo._is_sparcstation5cCst�d|jd�duS)Nz	.*Ultra-1rrkrDrrr�
_is_ultra1�szSunOSCPUInfo._is_ultra1cCst�d|jd�duS)Nz.*Ultra-250rrkrDrrr�_is_ultra250�szSunOSCPUInfo._is_ultra250cCst�d|jd�duS)Nz	.*Ultra-2rrkrDrrr�
_is_ultra2�szSunOSCPUInfo._is_ultra2cCst�d|jd�duS)Nz
.*Ultra-30rrkrDrrr�_is_ultra30�szSunOSCPUInfo._is_ultra30cCst�d|jd�duS)Nz	.*Ultra-4rrkrDrrr�
_is_ultra4�szSunOSCPUInfo._is_ultra4cCst�d|jd�duS)Nz.*Ultra-5_10rrkrDrrr�
_is_ultra5_10�szSunOSCPUInfo._is_ultra5_10cCst�d|jd�duS)Nz	.*Ultra-5rrkrDrrr�
_is_ultra5�szSunOSCPUInfo._is_ultra5cCst�d|jd�duS)Nz
.*Ultra-60rrkrDrrr�_is_ultra60�szSunOSCPUInfo._is_ultra60cCst�d|jd�duS)Nz
.*Ultra-80rrkrDrrr�_is_ultra80�szSunOSCPUInfo._is_ultra80cCst�d|jd�duS)Nz.*Ultra-EnterpriserrkrDrrr�_is_ultraenterprice�sz SunOSCPUInfo._is_ultraenterpricecCst�d|jd�duS)Nz.*Ultra-Enterprise-10000rrkrDrrr�_is_ultraenterprice10k�sz#SunOSCPUInfo._is_ultraenterprice10kcCst�d|jd�duS)Nz
.*Sun-FirerrkrDrrr�_is_sunfire�szSunOSCPUInfo._is_sunfirecCst�d|jd�duS)Nz.*UltrarrkrDrrr�	_is_ultra�szSunOSCPUInfo._is_ultracCs|jddkS)Nr	Zsparcv7rbrDrrr�_is_cpusparcv7�szSunOSCPUInfo._is_cpusparcv7cCs|jddkS)Nr	Zsparcv8rbrDrrr�_is_cpusparcv8�szSunOSCPUInfo._is_cpusparcv8cCs|jddkS)Nr	rrbrDrrr�_is_cpusparcv9�szSunOSCPUInfo._is_cpusparcv9)rPrQrRrr^r_r�rr
rErrrrrrrrrrrrrrrrrrr rrrrr�s4rc@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
Csr|jdurdSg}�z ddl}t�dtj�}|�|j|j�}d}z|�||�}Wn|j	yjY�q2Yq@0|d7}|�
d|i�|�||�}d}z|�||�\}	}
}Wn|j	y�Yq@Yq�0|d}|
|d|	<|	dkr�|�|
�}|r�t
|�d��|dd<t
|�d	��|dd
<t
|�d��|dd<q�q@Wn0t�yd}
zt|
d
�WYd}
~
n
d}
~
00||j_dS)NrzFfamily\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)\s+stepping\s+(?P<STP>\d+)rZ	ProcessorrVZ
IdentifierZFML�FamilyZMDL�ModelZSTPZSteppingz
(ignoring))r�winregrGrHr��OpenKey�HKEY_LOCAL_MACHINE�pkeyZEnumKey�errorrXZ	EnumValuerIr�rJr3�printrZ)r4rr$ZprgxZchndZpnum�procZphndZpidxrAr]ZvtpeZsrchrrrrr^�sB
�

 zWin32CPUInfo.__init__cCsdSr2rrDrrrr_r)zWin32CPUInfo._not_implcCs|jdddkS)Nr�VendorIdentifierrarbrDrrrrcszWin32CPUInfo._is_AMDcCs|��o|jdddkS�Nrr"�rrrDrrr�	_is_Am486szWin32CPUInfo._is_Am486cCs|��o|jdddkSr,rrrDrrr�
_is_Am5x86szWin32CPUInfo._is_Am5x86cCs,|��o*|jdddko*|jdddvS)Nrr"�r#)rrr*�rrrDrrr�	_is_AMDK5s�zWin32CPUInfo._is_AMDK5cCs,|��o*|jdddko*|jdddvS)Nrr"r0r#)��rrrDrrr�	_is_AMDK6s�zWin32CPUInfo._is_AMDK6cCs,|��o*|jdddko*|jdddkS)Nrr"r0r#�rrrDrrr�_is_AMDK6_2s�zWin32CPUInfo._is_AMDK6_2cCs,|��o*|jdddko*|jdddkS)Nrr"r0r#�	rrrDrrr�_is_AMDK6_3!s�zWin32CPUInfo._is_AMDK6_3cCs|��o|jdddkS�Nrr"r3rrrDrrr�	_is_AMDK7%szWin32CPUInfo._is_AMDK7cCs|��o|jdddkS�Nrr"�rrrDrrrrt,szWin32CPUInfo._is_AMD64cCs|jdddkS)Nrr+r�rbrDrrrr�1szWin32CPUInfo._is_IntelcCs|jdddkS)Nrr"r1rbrDrrrr�4szWin32CPUInfo._is_i386cCs|jdddkSr,rbrDrrrr�7szWin32CPUInfo._is_i486cCs|��o|jdddkS�Nrr"r0r�rDrrrr�:szWin32CPUInfo._is_i586cCs|��o|jdddkSr:r�rDrrrr�=szWin32CPUInfo._is_i686cCs|��o|jdddkSr>r�rDrrrr�@szWin32CPUInfo._is_PentiumcCs,|��o*|jdddko*|jdddkS)Nrr"r0r#r-r�rDrrrr�Cs�zWin32CPUInfo._is_PentiumMMXcCs,|��o*|jdddko*|jdddkS)Nrr"r3r#rr�rDrrrr�Gs�zWin32CPUInfo._is_PentiumProcCs,|��o*|jdddko*|jdddvS)Nrr"r3r#)r1r0r3r�rDrrrr�Ks�zWin32CPUInfo._is_PentiumIIcCs,|��o*|jdddko*|jdddvS)Nrr"r3r#�r4r6r8�
�r�rDrrrr�Os�zWin32CPUInfo._is_PentiumIIIcCs|��o|jdddkSr<r�rDrrrr�SszWin32CPUInfo._is_PentiumIVcCs,|��o*|jdddko*|jdddvS)Nrr"r3r#)r8�
�r�rDrrrr�Vs�zWin32CPUInfo._is_PentiumMcCs,|��o*|jdddko*|jdddvS)Nrr"r3r#)r=��r�rDrrrr�Zs�zWin32CPUInfo._is_Core2cCst|j�dkSrCr�rDrrrr�`szWin32CPUInfo._is_singleCPUcCs
t|j�Sr2r�rDrrrrEcszWin32CPUInfo._getNCPUscCs`|��r>|jdddkr,|jdddkp<|jdddvS|��rX|jdddvSdSdS)	Nrr"r0r#r-�r3r=�r0r3r=F�r�rrsrDrrrr�fs$�zWin32CPUInfo._has_mmxcCs�|��r>|jdddkr,|jdddvp<|jdddkS|��r||jdddkrj|jdddvpz|jdddkSdSdS)	Nrr"r3r#r?r=)r3r4r6r@FrHrDrrrr�os����zWin32CPUInfo._has_ssecCs8|��r |��p|��p|��S|��r0|��SdSdS)NF)r�Zis_Pentium4Zis_PentiumMZis_Core2rsZis_AMD64rDrrrr�{s�zWin32CPUInfo._has_sse2cCs|��o|jdddvS)Nrr"rGrrrDrrrr��szWin32CPUInfo._has_3dnowcCs|��o|jdddvS)Nrr"rFrrrDrrrr��szWin32CPUInfo._has_3dnowext)$rPrQrRrr'r^r_rcr.r/r2r5r7r9r;rtr�r�r�r�r�r�r�r�r�r�r�r�r�r�rEr�r�r�r�r�rrrrr!�sB(		r!ZlinuxZirix�darwinZsunos�win32�cygwin)rr)rr)rr)rr)rS�__all__rrFrG�sysr>r
�
subprocessrrr r#r0r1rTr�r�rr!r:Zcpuinforrrrr�<module>sH



	
�

#D:.J3

Zerion Mini Shell 1.0