[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.149.231.194: ~ $


Cs[a��Q@s
dZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl
mZddl
mZddl
mZddl
mZddlZddlmZdd	lmZdd
lmZddlmZddl m!Z!dd
l"m#Z#ddl"m$Z$ddl"m%Z%ddl"m&Z&ej'd�krddl(Z)nddl)Z)yddl)m*Z*Wn?e+k
raej,��ej-d�ddl*Z*WdQRXYnXej'd�kr�ddl.Z.ndZ.dddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZgDZ/ej0d#�ppd[d�kZ1d^ej2kZ3er�d�ndZ4e5ej6j7d$��Z8e5ej6j7d��Z9d`Z:d�Z;e8s�e9r�dndcZ<ej0dd�s�e1rdendZ=e8se9r)e:d9Z:e<d9Z<dfZ>ej?dgkrGdhZ>ndiZ>ej@jAej@jBejC��e>�ZDeDeEejF��ZDeDdjZGeDe$dk�ZHejI�jJ�d�kZKej@jLej@jAej@jMeN�dndn��ZOej@jAeOdo�ZPej@jLej@jMeN��ZQeRejSdp�ZTeRedq�ZUeoJeZVeRejSdr�ZWeRejSds�ZXeRejSdt�ZYduejS�jZ�j[kZ\eRejSdv�Z]eRejSdw�Z^eRejSdx�Z_eRejSdy�Z`eRedz�Zaeao
e5ejb��ZceRed{�ZdeRed|�Zed}d~�Zfef�Zgehejid�Zjd�d��eke�D�Zleme
d�en��Zoeme
d�en��Zpeq�Zreq�Zseq�Ztd�d��Zuejvd�d���Zwejvd�d���ZxGd�d��d�ejy�Zzd�d��Z{e{dd�d6��Z|e{d�d8��Z}d�d7�Z~e{d�d4��Ze{d�d���Z�d�d�d5�Z�d�dI�Z�d�dH�Z�Gd�d��d�en�Z�e�d�ej�d�dd�e<d�d��d�dK��Z�e�d�e�e�fd�dd�e<d�d��d�d�d�dL��Z�e�d�e�d�dd�e<d�d��d�dJ��Z�d�dC�Z�d�d��Z�ej�d�dB��Z�dd�dD�Z�e>d[d�dG�Z�Gd�d��d�e)j��Z�e�e)_�d�d��Z�d�d>�Z�d�d?�Z�d�d=�Z�e:d�d<�Z�dd�d:�Z�dd�d;�Z�d�d�dO�Z�ej�d[d�dP��Z�eedd�dQ�Z�e
jd�dR�Z�d�d�dS�Z�d�dT�Z�ej�d�dU��Z�d�dN�Z�d�dM�Z�d�dV�Z�d�dW�Z�d�dX�Z�d�dZ�Z�er�	ej�e>d�dY��Z�nej�e>d�dY��Z�dS)�z
Test utilities.
�)�print_functionN)�AF_INET)�AF_INET6)�
SOCK_DGRAM)�SOCK_STREAM)�MACOS)�POSIX)�SUNOS)�WINDOWS)�
supports_ipv6)�PY3)�u)�unicode)�which��)�mock�ignore���APPVEYOR�DEVNULL�GLOBAL_TIMEOUT�MEMORY_TOLERANCE�
NO_RETRIES�PYPY�
PYTHON_EXE�ROOT_DIR�SCRIPTS_DIR�TESTFILE_PREFIX�TESTFN�TESTFN_UNICODE�TOX�TRAVIS�VALID_PROC_STATUSES�	VERBOSITY�HAS_CPU_AFFINITY�HAS_CPU_FREQ�HAS_ENVIRON�HAS_PROC_IO_COUNTERS�
HAS_IONICE�HAS_MEMORY_MAPS�HAS_PROC_CPU_NUM�
HAS_RLIMIT�HAS_SENSORS_BATTERY�HAS_BATTERY�HAS_SENSORS_FANS�HAS_SENSORS_TEMPERATURES�HAS_MEMORY_FULL_INFO�pyrun�
reap_children�get_test_subprocess�create_zombie_proc�create_proc_children_pairZThreadTaskunittest�skip_on_access_denied�skip_on_not_implemented�retry_before_failing�run_test_module_by_name�	get_suite�	run_suiteZinstall_pipZinstall_test_deps�chdir�safe_rmpath�
create_exeZdecode_pathZencode_path�unique_filename�
get_winver�get_kernel_version�
call_until�wait_for_pid�
wait_for_file�check_connection_ntuple�check_net_address�
get_free_port�unix_socket_path�bind_socket�bind_unix_socket�tcp_socketpair�unix_socketpair�create_sockets�
reload_module�import_module_by_path�warn�copyload_shared_lib�
is_namedtuple��1�trueZ__pypy__��
i�ig�?ZSILENT�z$testfn�javaz
$psutil-test-z
@psutil-test-z	-internalu-ƒőő�ascii�us-asciiz..�scriptsZcpu_affinityZcpu_freq�environZio_countersZioniceZuss�memory_mapsZcpu_numZrlimit�threads�sensors_batteryZsensors_fansZsensors_temperaturescCs�dd�}tr�|tj�pt|tjjtj��pt|tdtjdd���pt|tj	�j
��}|s�td��|Stjjtj�}tjj|�s�t
|��|SdS)NcSsJy)tj|dgdtjdtj�Wntk
rAdSYnX|SdS)Nz-V�stdout�stderr)�
subprocess�
check_call�PIPE�	Exception)�exe�rj�/__init__.py�attempt�s#
	z_get_py_exe.<locals>.attemptzpython%s.%srz"can't find python exe real abspath)r�sys�
executable�os�path�realpathr�version_info�psutil�Processri�
ValueError�exists�AssertionError)rlrirjrjrk�_get_py_exe�s	#rxzr+cCs.g|]$}|jd�rtt|��qS)ZSTATUS_)�
startswith�getattrrs)�.0�xrjrjrk�
<listcomp>�s	r}�AF_UNIX�SOCK_SEQPACKETcCst|dtj�dS)N�file)�printrmrd)�srjrjrk�	logstderr�sr�cCs�td�tj�x�tjtd��D]t}t|t�rNtt�}nt}|j	|�r*td|�yt
|�Wq*tk
r�tj
�Yq*Xq*WxItD]A}td|�yt
|�Wq�tk
r�tj
�Yq�Xq�WdS)Nz.executing cleanup_test_files() atexit function�.zremoving temporary test file %r)r�r�closero�listdirr
�
isinstancerrryr?rh�	traceback�	print_exc�_testfiles_created)�name�prefixrprjrjrk�cleanup_test_files�s$




r�cCstd�tdd�dS)Nz.executing cleanup_test_procs() atexit function�	recursiveT)r�r4rjrjrjrk�cleanup_test_procs�s
r�c@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
ThreadTaskz6A thread task which does nothing expect staying alive.cCs5tjj|�d|_d|_tj�|_dS)NFg����MbP?)�	threading�Thread�__init__�_running�	_interval�Event�_flag)�selfrjrjrkr�s		zThreadTask.__init__cCs&|jj}d||jt|�fS)Nz<%s running=%s at %#x>)�	__class__�__name__r��id)r�r�rjrjrk�__repr__
szThreadTask.__repr__cCs|j�|S)N)�start)r�rjrjrk�	__enter__s
zThreadTask.__enter__cOs|j�dS)N)�stop)r��args�kwargsrjrjrk�__exit__szThreadTask.__exit__cCs6|jrtd��tjj|�|jj�dS)zStart thread and keep it running until an explicit
        stop() request. Polls for shutdown every 'timeout' seconds.
        zalready startedN)r�rur�r�r�r��wait)r�rjrjrkr�s	zThreadTask.startcCs:d|_|jj�x|jr5tj|j�qWdS)NT)r�r��set�time�sleepr�)r�rjrjrk�runs	
zThreadTask.runcCs,|jstd��d|_|j�dS)z8Stop thread execution and and waits until it is stopped.zalready stoppedFN)r�ru�join)r�rjrjrkr�$s		zThreadTask.stopN)r��
__module__�__qualname__�__doc__r�r�r�r�r�r�r�rjrjrjrkr�s	r�cs%tj���fdd��}|S)Ncs4y�||�SWntk
r/t��YnXdS)N)rhr4)r�r�)�funrjrk�wrapper2s

z&_reap_children_on_err.<locals>.wrapper)�	functools�wraps)r�r�rj)r�rk�_reap_children_on_err1s!r�cKs�|jdt�|jdt�|jdtj��|jdtj�tr_|jdd�|dkr�tt�dt}td	|g}t	j
||�}tj|�t
td
ddd�n,t	j
||�}tj|�t|j�|S)
a{Creates a python subprocess which does nothing for 60 secs and
    return it as subprocess.Popen instance.
    If "cmd" is specified that is used instead of python.
    By default stdin and stdout are redirected to /dev/null.
    It also attemps to make sure the process is in a reasonably
    initialized state.
    The process is registered for cleanup on reap_children().
    �stdinrc�cwd�env�
creationflagsiNz:from time import sleep;open(r'%s', 'w').close();sleep(60);z-c�deleteT�empty)�
setdefaultrro�getcwdr_r
r?�_TESTFNrre�Popen�_subprocesses_started�addrFrE�pid)�cmd�kwdsZpylineZsprocrjrjrkr5<s$




cCs�tjjt�d}tjd|tf�}trJt|dd�}nt|�}t	j
|j�}t|dddd�}t
|�t|�}tj|�t	j
|�}||fS)aCreate a subprocess which creates another one as in:
    A (us) -> B (child) -> C (grandchild).
    Return a (child, grandchild) tuple.
    The 2 processes are fully initialized and will live for 60 secs
    and are registered for cleanup on reap_children().
    �2a        import subprocess, os, sys, time
        s = "import os, time;"
        s += "f = open('%s', 'w');"
        s += "f.write(str(os.getpid()));"
        s += "f.close();"
        s += "time.sleep(60);"
        subprocess.Popen(['%s', '-c', s])
        time.sleep(60)
        r�rr�Fr�)rorp�basenamer��textwrap�dedentrr
r3rsrtr�rFr?�int�
_pids_startedr�)Z_TESTFN2r��subpZchild1�dataZ
child2_pidZchild2rjrjrkr7]s	

cs+tjst�tr'tjdt�nt}tj	d|�}t
jtjtj
����}|jt�|j|�|jd�t|�|j�\}}zqtj|j�gggt�t|jd��}tj|�tj|��t�fdd�d�|SWd|j�XWdQRXdS)	z+Create a zombie process and return its PID.r�a        import os, sys, time, socket, contextlib
        child_pid = os.fork()
        if child_pid > 0:
            time.sleep(3000)
        else:
            # this is the zombie process
            s = socket.socket(socket.AF_UNIX)
            with contextlib.closing(s):
                s.connect('%s')
                if sys.version_info < (3, ):
                    pid = str(os.getpid())
                else:
                    pid = bytes(str(os.getpid()), 'ascii')
                s.sendall(pid)
        rZics
�j�S)N)�statusrj)�zprocrjrk�<lambda>�sz$create_zombie_proc.<locals>.<lambda>zret == psutil.STATUS_ZOMBIEN)rsrrwr�tempfile�mktemprr r�r��
contextlib�closing�socketr~�
settimeoutr�bind�listenr3�accept�select�filenor��recvr�r�rtrDr�)Z	unix_file�src�sock�conn�_Zzpidrj)r�rkr6�s$





c
Ks�|jdd�|jdd�tjdtdddd��S}tj|j�|j|�|j�t	t
|jg|�}t|j�WdQRX|S)	zeRun python 'src' code string in a separate interpreter.
    Returns a subprocess.Popen instance.
    rcNrdr��mode�wtr�F)
r�r��NamedTemporaryFilerr�r�r��write�flushr5rrEr�)r�r��fr�rjrjrkr3�s	

cKst|ttf�rdnd}tr3|r3dnd}|jd|�|jdtj�|jdtj�|jdd�|jd	|�tj||�}tj	|�|j
�\}}|jdkr�t|��|r�t
|�|jd
�r
|dd
�}|S)zUrun cmd in a subprocess and return its output.
    raises RuntimeError on error.
    TFir�shellrcrd�universal_newlinesr��
NrZ���)r��strrr
r�rergr�r�r��communicate�
returncode�RuntimeErrorrR�endswith)r�r�r��flags�prcrdrjrjrk�sh�s"!

r�Fc	'Cs�dd�}|r3ttj�jdd��}n	t�}xtr\tj�}tj|j�y|j	�WnRt
k
r�}z2tr�|jdkr�n|jtj
kr��WYdd}~XnX|jr�|jj�|jr�|jj�z|jr	|jj�Wdy|j�Wn:t
k
rW}z|jtjkrE�WYdd}~XnXXq?WxXtr�tj�}ytj|�}Wntjk
r�||�Yq`X|j|�q`W|r�x4|D],}y|j	�Wq�tjk
r�Yq�Xq�Wtj|dt�\}}xB|D]:}td|�y|j�Wqtjk
rPYqXqWtj|dt�\}}|r�x|D]}td	|�q}Wx|D]}||j�q�WdS)
a#Terminate and wait() any subprocess started by this test suite
    and ensure that no zombies stick around to hog resources and
    create problems  when looking for refleaks.

    If resursive is True it also tries to terminate and wait()
    all grandchildren started by this process.
    cSs�tj|�st|��|tj�ks:t|��y,tj|�}|j�set|��Wntjk
r}YnXds�td|��dS)Nrzpid %s is not gone)rsZ
pid_existsrwZpidsrtZ
is_running�
NoSuchProcess)r�r�rjrjrk�assert_gone�sz"reap_children.<locals>.assert_goner�TrXN�timeoutz0couldn't terminate process %r; attempting kill()zprocess %r survived kill())r�rsrt�childrenr��popr�r�r��	terminate�OSErrorr
�errnoZESRCHrcr�rdr�r�ZECHILDr�Z
wait_procsrrR�kill)	r�r�r�r��errr�r�Zgone�aliverjrjrkr4�sh!			
	
		
	
	

cCs�tstd��d}tj�d}x4|D],}|j�sM|dkrZ||7}q/Pq/W|sutd|��d}d}|jd�}t|d�}t|�dkr�t|d�}t|�dkr�t|d�}|||fS)	z"Return a tuple such as (2, 6, 36).z	not POSIXrUrr�zcan't parse %rrrZr)	r�NotImplementedErrorro�uname�isdigitru�splitr��len)r�r��c�minor�microZnums�majorrjrjrkrC0s&

cCs�tstd��tj�}t|d�r?|jp9d}n:tjd|d�}|rst|j	d��}nd}|d|d|fS)Nznot WINDOWS�service_pack_majorrz\s\d$rrZ)
r
r�rmZgetwindowsversion�hasattrr�re�searchr��group)ZwvZsp�rrjrjrkrBHsc@s[eZdZdZeddddd�dd�Zdd	�Zd
d�Zdd
�ZdS)�retryzA retry decorator.Ng����MbP?cCst|dtj�S)Nr�)r�rmrd)r�rjrjrkr�dszretry.<lambda>cCsI|r|rtd��||_||_||_||_||_dS)Nz/timeout and retries args are mutually exclusive)ru�	exceptionr��retries�interval�logfun)r�rr�r	r
rrjrjrkr�_s				zretry.__init__ccsx|jr=tj�|j}xUtj�|kr9dVqWn7|jrhx+t|j�D]}dVqVWnx	dVqkWdS)N)r�r�r	�range)r��stop_atr�rjrjrk�__iter__ns		zretry.__iter__cCs#|jdk	rtj|j�dS)N)r
r�r�)r�rjrjrkr�zszretry.sleepcs1tj����fdd��}�|_|S)Ncs�d}xy�D]q}y�||�SWq
�jk
r}}z4|}�jdk	r^�j|��j�w
WYdd}~Xq
Xq
Wtr�|�n�dS)N)rrr�r)r�r��excr�)r�r�rjrkr�s


	zretry.__call__.<locals>.wrapper)r�r��	decorator)r�r�r�rj)r�r�rk�__call__~s$	zretry.__call__)	r�r�r�r�rhr�rr�rrjrjrjrkr\s
rrrr�r
g����MbP?cCs$tj|�tr tjd�dS)z�Wait for pid to show up in the process list then return.
    Used in the test suite to give time the sub process to initialize.
    g{�G�z�?N)rsrtr
r�r�)r�rjrjrkrE�s
Tc	CsKt|d��}|j�}WdQRX|s7|s7t�|rGt|�|S)z8Wait for a file to be written on disk with some content.�rbN)�open�readrwr?)Zfnamer�r�r�r�rjrjrkrF�s
cCs|�}t|�st�|S)zVKeep calling function for timeout secs and exit if eval()
    expression is True.
    )�evalrw)r��expr�retrjrjrkrD�s	cCs�dd�}yltj|�}tj|j�rHtjtj|�}ntjtj|�}t	rm|�n
||�Wn:t
k
r�}z|jtjkr��WYdd}~XnXdS)z>Convenience function for removing temporary test files or dirscSs�tj�d}x�tj�|kr�y|�SWqtk
r�}zD|}|jtjkrc�n!tdt|��tjd�WYdd}~XqXqW|�dS)NrZzignoring %sg{�G�z�?)r�ZWindowsErrorr��ENOENTrRr�r�)r�r
r�r�rjrjrk�	retry_fun�s$zsafe_rmpath.<locals>.retry_funN)
ro�stat�S_ISDIR�st_moder��partial�shutil�rmtree�removerr�r�r)rpr�str�r�rjrjrkr?�s
cCsRytj|�Wn:tk
rM}z|jtjkr;�WYdd}~XnXdS)z-Convenience function for creating a directoryN)ro�mkdirr�r��EEXIST)�dirr�rjrjrk�
safe_mkdir�s
r%ccs7tj�}ztj|�dVWdtj|�XdS)z@Context manager which temporarily changes the current directory.N)ror�r>)�dirname�curdirrjrjrkr>�s

	cCs"tjj|�st|��|r�td�s=td��t|t�r[tj	d�}t|t
�svt|��tjdddddd	��}|j
|�Wd
QRXz tjd|jd|g�Wd
t|j�Xn?tjt|�trtj|�}tj||jtjB�d
S)z1Creates an executable file in the given location.�gcczgcc is not installedz�
                #include <unistd.h>
                int main() {
                    pause();
                    return 1;
                }
                �suffixz.cr�Fr�r�Nz-o)rorprvrwrrur��boolr�r�r�r�r�r�rerfr�r?r�copyfilerrr�chmodr�S_IEXEC)ZoutpathZc_coder�r!rjrjrkr@�s$		 cCstjd|d|�S)Nr�r))r�r�)r�r)rjrjrkrAsc@s:eZdZdd�Zeejd�s6ejjZdS)�TestCasecCs d|jj|jj|jfS)Nz%s.%s.%s)r�r�r�Z_testMethodName)r�rjrjrk�__str__"szTestCase.__str__�assertRaisesRegexN)	r�r�r�r/r�unittestr.ZassertRaisesRegexpr0rjrjrjrkr.sr.cCs0dtjkrdtjd<tjjj�dS)NZPSUTIL_TESTINGrV)ror_rsZ_psplatformZcextZset_testingrjrjrjrk�_setup_tests1s
r2cCs�dd�tjt�D�}dtjkr>dd�|D�}tj�}x1|D])}d|}|jtjj|��qQW|S)NcSsTg|]J}|jd�r|jd�r|jd�rtjj|�d�qS)z.pyZtest_Ztest_memory_leaksr)r�ryrorp�splitext)r{r|rjrjrkr}9s	zget_suite.<locals>.<listcomp>ZWHEELHOUSE_UPLOADER_USERNAMEcSs%g|]}|jd�s|�qS)�osx�posix�linux)r4r5r6)r�)r{r|rjrjrkr}=s		zpsutil.tests.%s)	ror��HEREr_r1�	TestSuite�addTest�defaultTestLoader�loadTestsFromName)Ztestmods�suiteZtmrjrjrkr<8s

cCsNt�tjdt�jt��}|j�}tj|rCdnd�dS)N�	verbosityrrZ)	r2r1�TextTestRunnerr%r�r<�
wasSuccessfulrm�exit)�result�successrjrjrkr=GscCs�t�tjjtjj|��d}tj�}|jtjj	|��tj
dt�j|�}|j
�}tj|r�dnd�dS)Nrr=rZ)r2rorpr3r�r1r8r9r:r;r>r%r�r?rmr@)r�r<rArBrjrjrkr;Ns"cCstdtddd|�S)zZDecorator which runs a test function and retries N times before
    actually failing.
    rr�Nr	)rrw)r	rjrjrkr:Zscs�fdd�}|S)z,Decorator to Ignore AccessDenied exceptions.cs(tj����fdd��}|S)NcsQy�||�SWn9tjk
rL�dk	r9�s9�tjd��YnXdS)Nzraises AccessDenied)rsZAccessDeniedr1�SkipTest)r�r�)r��only_ifrjrkr�dsz9skip_on_access_denied.<locals>.decorator.<locals>.wrapper)r�r�)r�r�)rD)r�rkrcs$	z(skip_on_access_denied.<locals>.decoratorrj)rDrrj)rDrkr8ascs�fdd�}|S)z3Decorator to Ignore NotImplementedError exceptions.cs(tj����fdd��}|S)Ncs[y�||�SWnCtk
rV�dk	r6�s6�d�j}tj|��YnXdS)Nz4%r was skipped because it raised NotImplementedError)r�r�r1rC)r�r��msg)r�rDrjrkr�ts

z;skip_on_not_implemented.<locals>.decorator.<locals>.wrapper)r�r�)r�r�)rD)r�rkrss$z*skip_on_not_implemented.<locals>.decoratorrj)rDrrj)rDrkr9qs
z	127.0.0.1cCs]tjtj���A}|jtjtjd�|j|df�|j�dSWdQRXdS)zReturn an unused TCP port.rZrN)r�r�r��
setsockopt�
SOL_SOCKET�SO_REUSEADDRr��getsockname)�hostr�rjrjrkrI�sccsUtjst�td|�}z	|VWdytj|�Wntk
rOYnXXdS)zaA context manager which returns a non-existent file name
    and tries to delete it on exit.
    r)N)rsrrwrAro�unlinkr�)r)rprjrjrkrJ�s	
cCs�|dkr$|ttfkr$d}tj||�}yJ|jtjtjd�|j|�|tjkr{|jd�|SWnt	k
r�|j
��YnXdS)zBinds a generic socket.NrUrrZrY)rUr)rrr�rFrGrHr�rr�rhr�)�family�type�addrr�rjrjrkrK�s



cCs�tjst�tjj|�s.t|��tjtj|�}y-|j|�|tj	kro|j
d�Wntk
r�|j��YnX|S)zBind a UNIX socket.rY)
rsrrwrorprvr�r~r�rr�rhr�)r�rMr�rjrjrkrL�s


cCs�tjtj|t����}|j|�|jd�|j�}tj|t�}yV|j|�|j�}x6|j�\}}||kr�||fS|j	�quWWnt
k
r�|j	��YnXWdQRXdS)z^Build a pair of TCP sockets connected to each other.
    Return a (server, client) tuple.
    rYN)r�r�r�rr�r�rI�connectr�r�r�)rLrNZllr�Zcaddr�arjrjrkrM�s 





cCs�tjst�d}}yXt|dtj�}|jd�tjtjtj�}|jd�|j|�WnAt	k
r�|dk	r�|j
�|dk	r�|j
��YnX||fS)z�Build a pair of UNIX sockets connected to each other through
    the same UNIX file name.
    Return a (server, client) tuple.
    NrMr)rsrrwrLr�r�setblockingr~rOrhr�)r�Zserver�clientrjrjrkrN�s





ccsYg}d}}z�|jttjtj��|jttjtj��t�r�|jttjtj��|jttjtj��trt	rt
�j�}t
�j�}t|�\}}t
|dtj�}x$|||fD]}|j|�q�W|VWdx|D]}|j�qW|dk	r>t|�|dk	rTt|�XdS)z1Open as many socket families / types as possible.NrM)�appendrKr�rrrrrr�HAS_CONNECTIONS_UNIXrJr�rNrLr�r?)ZsocksZfname1Zfname2�s1�s2Zs3r�rjrjrkrO�s,
		

cCsoddl}tr6tr6t|tj�s6t|��|tjkr�dd�|jd�D�}t	|�dkst|��x6|D].}d|ko�dkns�t|��q�Wts�t
|�}|j|�n�|tjkr&t|t
�st|��tst
|�}|j|�nE|tjkr\tjd|�dk	skt|��ntd	|��dS)
z[Check a net address validity. Supported families are IPv4,
    IPv6 and MAC addresses.
    rNcSsg|]}t|��qSrj)r�)r{r|rjrjrkr}s	z%check_net_address.<locals>.<listcomp>r�r�z([a-fA-F0-9]{2}[:|\-]?){6}zunknown family %r)�	ipaddress�enumrr��IntEnumrwr�rr�r�rZIPv4Addressrr�ZIPv6AddressrsZAF_LINKr�matchru)rNrLrXZocts�numrjrjrkrHs&
,'c(Cs�t|�dkst|��t|�dk}t|dd�dk}|d|jksat�|d|jkszt�|d|jks�t�|d|jks�t�|d|jks�t�|d	|jks�t�|r�|d|j	ks�t�|r�|jdkst|��t
td
�r�tr�y"tj
|j|j|j�}WnGtjtfk
r�}z|jdtjkr��WYdd}~XnHXtj|��5|j|jks�t�|j|jks�t�WdQRX|jtttfkstt|j���|jttfkr�|jtkr�tj|j|j�}tj|��cy|j|jddf�Wn=tjk
r�}z|jtjkr��WYdd}~XnXWdQRXn0|jtkr�|jtjks�t|j��|jtttfks%tt|j���|jtkrU|jtjksUt|j��x�|j|jfD]�}|jttfkrt |t!�s�t|��|s�qht |j"t#�s�t|j"��d|j"ko�dkns�t|j"��t$|j%|j�qh|jtkrht |t&�sht|��qhWt |jt&�sXt|��d
d�t't�D�}|j|ks�t|��dS)z*Check validity of a connection namedtuple.rXr�fdrZrrrr��fromfdNi��cSs.g|]$}|jd�rtt|��qS)ZCONN_)ryrzrs)r{r|rjrjrkr}hs	z+check_connection_ntuple.<locals>.<listcomp>)rXrr�r�)(r�rwrzr]rLrM�laddr�raddrr�r�rr�r
r_�errorr�r�r��EBADFr�r�rrr~�reprr�Z
EADDRNOTAVAILrsZ	CONN_NONErrrr��tuple�portr�rHZipr�r$)r�Zhas_pidZhas_fdZdupsockr�r�rNZvalidsrjrjrkrG%sf"- !!!.cCsdy%ddl}t|d�s$t�Wn+tk
rRddl}|j|�SYnX|j|�SdS)z,Backport of importlib.reload of Python 3.3+.rN�reload)�	importlibr�ImportError�imprg)�modulerhrjrjrjrkrPqs

cCs�tjjtjj|��d}tjddkrQddl}|j||�Stjdd�dkr�ddlm	}|||�j
�Sddl}|jj
||�}|jj|�}|jj|�|SdS)Nrrrr)�SourceFileLoader)rr)rorpr3r�rmrrrjZload_sourceZimportlib.machineryrl�load_module�importlib.util�util�spec_from_file_location�module_from_spec�loader�exec_module)rpr�rjrlrh�spec�modrjrjrkrQ~s"cCstj|t�dS)zRaise a warning msg.N)�warningsrR�UserWarning)rErjrjrkrR�scCswt|�}|j}t|�dks7|dtkr;dSt|dd�}t|t�s`dStdd�|D��S)z-Check if object is an instance of namedtuple.rZrF�_fieldsNcss!|]}t|�tkVqdS)N)rMr�)r{�nrjrjrk�	<genexpr>�sz is_namedtuple.<locals>.<genexpr>)rM�	__bases__r�rerzr��all)r|�t�br�rjrjrkrT�s	"c#s�d�tjd|d��}�fdd�tj�j�D�}tj|�}tj||�zt	j
|�|VWdt|�XdS)z�Ctx manager which picks up a random shared CO lib used
        by this process, copies it in another location and loads it
        in memory via ctypes. Return the new absolutized path.
        z.sor�r)csMg|]C}tjj|j�d�krd|jj�kr|j�qS)rZ�python)rorpr3�lower)r{r|)�extrjrkr}�s	z'copyload_shared_lib.<locals>.<listcomp>N)r�r�rsrtr`�random�choicerr+�ctypesZCDLLr?)�
dst_prefix�dst�libsr�rj)r�rkrS�s%
	c	#s�ddlm}ddlm}d�tjd|d��}�fdd�tj�j�D�}tj	|�}t
j||�d	}ztj|�}|VWd	|d	k	r�tj
jj}|jg|_||j�}|dkr�|�t|�Xd	S)
z�Ctx manager which picks up a random shared DLL lib used
        by this process, copies it in another location and loads it
        in memory via ctypes.
        Return the new absolutized, normcased path.
        r)�wintypes)�WinErrorz.dllr�r)cstg|]j}tjj|j�dj��krdtjj|j�j�krd|jj�kr|j�qS)rZrZwow64)rorpr3r�r�)r{r|)r�rjrkr}�s	%!z'copyload_shared_lib.<locals>.<listcomp>N)r�r�r�r�r�rsrtr`r�r�rr+ZWinDLLZwindllZkernel32�FreeLibraryZHMODULEZargtypes�_handler?)	r�r�r�r�r�r��cfiler�rrj)r�rkrS�s$%	)rr)rr)rVrW)rXrri�)r\r])rUr)�r�Z
__future__r�atexitr�r�r�r�ror�rr�rr�rrermr�r�r�r�r�rvrrrrrsrrr	r
Zpsutil._commonrZpsutil._compatrr
rrrrZ	unittest2r1rri�catch_warnings�simplefilterrY�__all__�getenvr"�builtin_module_namesrZ	WIN_VISTAr*r_�getr#rrrrr%rr�rpr�rqr�r r��getpidr�r!�getfilesystemencodingr�ZASCII_FS�abspathr&�__file__rrr7rrtr&r'rTr(r)r*Zmemory_full_inforxr2r+r,r-ZHAS_THREADSr.rbr/r0r1rxrr�devnullrr$r$rz�objectr~rr�r�r�r�r��registerr�r�r�r�r�r5r7r6r3r�r4rCrBrr�rE�EnvironmentErrorrwrFrDr?r%�contextmanagerr>r@rAr.r2r<r=r;r:r8r9rIrJrKrLrMrNrOrHrGrPrQrRrTrSrjrjrjrk�<module>	s\


				
!

	'
0
				0 #%a:#			L


Filemanager

Name Type Size Permission Actions
__init__.cpython-35.opt-1.pyc File 31.72 KB 0644
__init__.cpython-35.pyc File 33.22 KB 0644
__main__.cpython-35.opt-1.pyc File 2.66 KB 0644
__main__.cpython-35.pyc File 2.66 KB 0644
test_aix.cpython-35.opt-1.pyc File 3.48 KB 0644
test_aix.cpython-35.pyc File 3.48 KB 0644
test_bsd.cpython-35.opt-1.pyc File 20.06 KB 0644
test_bsd.cpython-35.pyc File 20.06 KB 0644
test_connections.cpython-35.opt-1.pyc File 15.7 KB 0644
test_connections.cpython-35.pyc File 16.1 KB 0644
test_contracts.cpython-35.opt-1.pyc File 23.32 KB 0644
test_contracts.cpython-35.pyc File 24.36 KB 0644
test_linux.cpython-35.opt-1.pyc File 69.39 KB 0644
test_linux.cpython-35.pyc File 70.81 KB 0644
test_memory_leaks.cpython-35.opt-1.pyc File 22.99 KB 0644
test_memory_leaks.cpython-35.pyc File 22.99 KB 0644
test_misc.cpython-35.opt-1.pyc File 35.69 KB 0644
test_misc.cpython-35.pyc File 36.91 KB 0644
test_osx.cpython-35.opt-1.pyc File 11.44 KB 0644
test_osx.cpython-35.pyc File 11.44 KB 0644
test_posix.cpython-35.opt-1.pyc File 14.02 KB 0644
test_posix.cpython-35.pyc File 14.18 KB 0644
test_process.cpython-35.opt-1.pyc File 43.88 KB 0644
test_process.cpython-35.pyc File 44.94 KB 0644
test_sunos.cpython-35.opt-1.pyc File 1.53 KB 0644
test_sunos.cpython-35.pyc File 1.53 KB 0644
test_system.cpython-35.opt-1.pyc File 27.54 KB 0644
test_system.cpython-35.pyc File 29.27 KB 0644
test_unicode.cpython-35.opt-1.pyc File 11.7 KB 0644
test_unicode.cpython-35.pyc File 11.76 KB 0644
test_windows.cpython-35.opt-1.pyc File 31.05 KB 0644
test_windows.cpython-35.pyc File 31.31 KB 0644