3 E\@sddlZddlZddlZddlZddlZddlmZejjdrJddZ nej Z ej rhddZ e ZdZnddZ ejZejZd d Zd d Zd dZejdddkrddlZddlZddlZddlZGdddejjZn ddlmZdS)N)sixwincCsPytj|Wn0tk r>}z|jtjks.WYdd}~XnXtj||dS)N)osremoveOSErrorerrnoENOENTrename)Zcurrent_filenameZ new_filenameer m/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/s3transfer/s3transfer/compat.py rename_files  r cCstj|dS)N)inspectgetfullargspec)funcr r r accepts_kwargs&srcCstj|dS)Nr)r getargspec)rr r r r2sc CsTt|dr|jSt|drPt|drPy|jdddSttfk rNdSXdS)zBackwards compat function to determine if a fileobj is seekable :param fileobj: The file-like object to determine if seekable :returns: True, if seekable. False, otherwise. seekableseektellrTF)hasattrrrrIOError)fileobjr r r r9s  rcCst|dr|jSt|dS)zDetermines whether or not a file-like object is readable. :param fileobj: The file-like object to determine if readable :returns: True, if readable. False otherwise. readableread)rr)rr r r rQs rcCs,ttdrtj|jd|n |j|dS)Nposix_fallocater)rrrfilenotruncate)rsizer r r fallocate^s r!rc@s,eZdZdffddZedffddZdS) BaseManagerNc Cs|jjtjjjkst|dk r2t|d r2tdtj dd\}}tj t |j |j |j|j|j|||fd|_djdd |jjD}t |jd ||j_|jj|j|j|_|jtjjj|j_tjj|t |j|j|j|j|j|jfd d |_dS) zH Spawn a server process for this manager object N__call__zinitializer must be a callableF)duplex)targetargs:css|]}t|VqdS)N)str).0ir r r sz$BaseManager.start..-r)r' exitpriority)_statevaluemultiprocessingmanagersZStateZINITIALAssertionErrorr TypeErrorPipeProcesstype _run_server _registry_address_authkeyZ _serializerZ_processjoin _identity__name__namestartcloserecvZSTARTEDutilFinalizeZ_finalize_managerZ_Clientshutdown)self initializerinitargsreaderwriteridentr r r r@ps*       zBaseManager.startc CsP|dk r|||j||||}|j|j|jtjjd|j|jdS)zH Create a server, report its address and run it Nzmanager serving at %r)Z_ServersendaddressrAr1rCinfo serve_forever) clsregistryrMauthkey serializerrJrGrHserverr r r r8s zBaseManager._run_server)r> __module__ __qualname__r@ classmethodr8r r r r r#os%r#)r#)rr")rsysrrsocketZbotocore.compatrplatform startswithr r PY3rConnectionErrorZ SOCKET_ERRORMAXINTerrorZmaxintrrr! version_infor1Zmultiprocessing.managersmultiprocessing.connectionZmultiprocessing.utilr2r#r r r r  s2     >