????

Your IP : 3.15.190.254


Current Path : /lib/python3.6/site-packages/glances/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/glances/__pycache__/compat.cpython-36.pyc

3

Eo�c�&�@sZdZddlmZmZddlZddlZddlZddlZddlZddl	Z	ddl
m
Z
ddlmZej
ddkZe�r�ddlZddlmZmZmZddlmZdd	lmZmZmZmZmZdd
lmZmZddlm Z m!Z!m"Z"ddl#m$Z$m%Z%dd
l&m'Z'ddl(m)Z)e)�e*Z*e+Z+e,Z,e-Z.e/Z0e1Z2e3Z4e5Z6ej7d�Z8ej7d�Z9ej7d�Z:dd�Z;dd�Z<dd�Z=dd�Z>dd�Z?dd�Z@dd�ZAd d!�ZBdXd#d$�ZCdYd%d&�ZDd'd(�ZEdZd)d*�ZFd+d,�ZG�nLdd-lHmIZEddlJZdd.lKmLZ,dd/lmMZmZmZdd
lmZmZdd	lNmZmZmZmZmZdd0lOm Z m!Z!m$Z$m%Z%m"Z"dd
l'm'Z'ddl(m)Z)e)�ePZ*eQZ+ejRe_SeTZ.e-Z0ejUZ2e4Z4e5Z6ej7d1�Z8ej7d2�Z9ej7d3�Z:d4d�Z;d5d6�Zd7d�Z<d8d�Z=d9d�Z>d:d�Z?d;d�Z@d<d�ZAd=d!�ZBd[d>d$�ZCd\d?d&�ZDd]d@d*�ZFdAd,�ZGdBdC�ZVdDdE�ZWdFdG�ZXdHdI�ZYdJdK�ZZd^dMdN�Z[dOdP�Z\dQdR�Z]d_dTdU�Z^dVdW�Z_dS)`zPython 2/3 compatibility shims.�)�print_function�unicode_literalsN)�datetime)�logger�)�ConfigParser�
NoOptionError�NoSectionError)�mean)�Fault�
ProtocolError�ServerProxy�	Transport�Server)�SimpleXMLRPCRequestHandler�SimpleXMLRPCServer)�Request�urlopen�base64)�	HTTPError�URLError)�urlparse)�monkey_patch�keys�values�itemscCst|dd�dS)z1Print and flush (used by stdout* outputs modules)T)�flushN)�print)�string�r�/usr/lib/python3.6/compat.py�
printandflush:sr!cCs"t|t�r|j�S|jdd�j�S)zaConvert the bytes string to a ASCII string

        Useful to remove accent (diacritics)
        �ascii�ignore)�
isinstance�binary_type�decode�encode)�srrr �to_ascii>s
r)cCst|j��S)N)�listr)�drrr �	listitemsGsr,cCst|j��S)N)r*r)r+rrr �listkeysJsr-cCst|j��S)N)r*r)r+rrr �
listvaluesMsr.cCst|j��S)N)�iterr)r+rrr �	iteritemsPsr0cCst|j��S)N)r/r)r+rrr �iterkeysSsr1cCst|j��S)N)r/r)r+rrr �
itervaluesVsr2�replacecCst|t�r|S|jd|d�S)Nzutf-8)�errors)r$�	text_typer&)r(r4rrr �uYs
r6cCst|t�r|S|jd|d�S)Nzutf-8)r4)r$r%r')r(r4rrr �b^s
r7cCs|S)zVOnly in Python 2...
        from future.utils import bytes_to_native_str as n
        r)r(rrr �ncsr8cCs6t|t�r|St|ttf�r$|j�S|jd|d�SdS)Nzutf-8)r4)r$r5�int�float�__str__r&)r(r4rrr �	nativestris

r<cCsdy"tj|jd�tjd�jjd�}Wn8tk
rZ}ztjdj	||��d}WYdd}~XnX|j
�S)z7Execute a system command and return the result as a str� )�stdoutzutf-8z Can not evaluate command {} ({})�N)�
subprocessZrun�split�PIPEr>r&�	Exceptionr�debug�format�rstrip)�command�res�errr �system_execqs"rJ)�bytes_to_native_str)�imap)�SafeConfigParserrr	)rrrrr�viewkeys�
viewvalues�	viewitemscCst|�tjj�dS)z1Print and flush (used by stdout* outputs modules)N)r�sysr>r)rrrr r!�scCstt|��tt|�d�S)N�)r:�sum�max�len)Znumbersrrr r
�sr
cCs"t|t�r|Stjd|�jdd�S)z`Convert the unicode 's' to a ASCII string

        Useful to remove accent (diacritics)
        ZNFKDr"r#)r$r%�unicodedataZ	normalizer')r(rrr r)�s
cCs|j�S)N)r)r+rrr r,�scCs|j�S)N)r)r+rrr r-�scCs|j�S)N)r)r+rrr r.�scCs|j�S)N)r0)r+rrr r0�scCs|j�S)N)r1)r+rrr r1�scCs|j�S)N)r2)r+rrr r2�scCs&t|t�r|jd|d�S|jd|d�S)Nzutf-8)r4)r$r5r'r&)r(r4rrr r6�s
cCst|t�r|S|jd|d�S)Nzutf-8)r4)r$r%r')r(r4rrr r7�s
cCs6t|t�r|St|ttf�r$|j�S|jd|d�SdS)Nzutf-8)r4)r$r%r9r:r;r')r(r4rrr r<�s

cCsVytj|jd��}Wn8tk
rL}ztjdj||��d}WYdd}~XnX|j�S)z7Execute a system command and return the result as a strr=zCan not execute command {} ({})r?N)r@Zcheck_outputrArCrrDrErF)rGrHrIrrr rJ�scsBt��|kr�Sttt��t|������fdd�td|�D�S)z�Compute a simple mean subsampling.

    Data should be a list of numerical itervalues

    :return: a sub-sampled list of sampling length
    cs(g|] }t�|�|d����qS)rR)r
)�.0r()�data�sampling_lengthrr �
<listcomp>�szsubsample.<locals>.<listcomp>r)rUr9�roundr:�range)rX�samplingr)rXrYr �	subsample�sr^cs�t|�|kr|Sdd�|D��dd�|D��ttt|�t|������fdd�td|�D�}��fdd�td|�D�}tt||��S)z�Compute a simple mean subsampling.

    Data should be a list of set (time, value)

    :return: a sub-sampled list of sampling length
    cSsg|]}|d�qS)rr)rW�trrr rZ�sz(time_serie_subsample.<locals>.<listcomp>cSsg|]}|d�qS)rRr)rWr_rrr rZ�scs(g|] }�|�|d��d�qS)rRrr)rWr()rYr_rr rZ�srcs(g|] }t�|�|d����qS)rR)r
)rWr()rY�vrr rZ�s)rUr9r[r:r\r*�zip)rXr]Z
t_sub_sampledZ
v_sub_sampledr)rYr_r`r �time_serie_subsample�srbcCs|ddS)zConvert Celsius to Fahrenheit.g������?� r)Zcelsiusrrr �
to_fahrenheit�srdcCsbtjdkrRddl}ddl}y|jjj�Stk
rN}z|j�dSd}~Xq^Xntj	�dkSdS)a^Return if current user is an admin or not

    The inner function fails unless you have Windows XP SP2 or higher.
    The failure causes a traceback to be printed and this function to return False.

    https://stackoverflow.com/a/19719292

    :return: True if the current user is an 'Admin' whatever that means (root on Unix), otherwise False.
    �ntrNF)
�os�name�ctypes�	tracebackZwindllZshell32Z
IsUserAnAdminrC�	print_exc�getuid)rhrirIrrr �is_admin�s
rlcCs||ko||dk	S)Nr)�kr+rrr �key_exist_value_not_nonesrnr?cCs ||ko||dk	o|||kS)Nr)rmr+r`rrr �key_exist_value_not_none_not_vsrocCs$t|d|d�t|d|d�dS)z2Set disable_<var> to True in the class class_name.�enable_F�disable_TN)�setattr)�
class_name�varrrr �disable&srucCs$t|d|d�t|d|d�dS)z3Set disable_<var> to False in the class class_name.rpTrqFN)rr)rsrtrrr �enable,srvFcCs,tj�}t|�tkr$|tj|�}nt|t�r8||}n|s@d}|j}|j}|dkrXdS|dkr�|dkrldS|dkr�t|�dS|dkr�dS|d	kr�t|d�d
S|dkr�dS|d
kr�t|d	�dS|dkr�dS|dkr�t|�dS|dk�rt|d�dS|dk�rt|d�dSt|d�dS)z�
    Get a datetime object or a int() Epoch timestamp and return a
    pretty string like 'an hour ago', 'Yesterday', '3 months ago',
    'just now', etc
    Source: https://stackoverflow.com/questions/1551382/user-friendly-time-format-in-python
    rr?�
zjust now�<z secs�xza miniz minsi zan houri�Qz hoursrRZ	yesterday�z days�z weeksim�z monthsz years)	r�now�typer9Z
fromtimestampr$ZsecondsZdays�str)Ztimer}ZdiffZsecond_diffZday_diffrrr �pretty_date2sB



r�c	Cs.tt|ddtjd||fj��j�id��S)zOpen a url with basic authZ
AuthorizationzBasic z%s:%s)Zheaders)rrrZ	b64encoder'r&)ZurlZusernameZpasswordrrr �urlopen_auth^sr�)r3)r3)r3)r3)r3)r3)r?)F)`�__doc__Z
__future__rr�operatorrQrV�typesr@rfrZglances.loggerr�version_infoZPY3ZqueueZconfigparserrrr	Z
statisticsr
Z
xmlrpc.clientrrr
rrZ
xmlrpc.serverrrZurllib.requestrrrZurllib.errorrrZurllib.parserZdefusedxml.xmlrpcr�inputr\�maprr5�bytesr%�boolZ	bool_typer9Zlong�OSError�PermissionError�methodcallerrNrOrPr!r)r,r-r.r0r1r2r6r7r8r<rJZfuture.utilsrKZQueue�	itertoolsrLrMZ	xmlrpclibZurllib2Z	raw_inputZxrangeZreadfpZ	read_fileZunicodeZBooleanTyper^rbrdrlrnrorurvr�r�rrrr �<module>s�


	






	






,