B w\@sddlZddlZddlZddlZddlZddlmZejdrJddZ nej Z ej rhddZ e ZdZnddZ ejZejZd d Zd d Zd dZejdddkrddlZddlZddlZddlZGdddejjZn ddlmZdS)N)sixwinc CsPyt|Wn0tk r>}z|jtjks.Wdd}~XYnXt||dS)N)osremoveOSErrorerrnoENOENTrename)Zcurrent_filenameZ new_filenameer m/private/var/folders/j5/hv2kzfgs4sl6jnf70fy_2vrc4p3c_b/T/pip-install-d8kq1y21/s3transfer/s3transfer/compat.py rename_files  r cCst|dS)N)inspectgetfullargspec)funcr r r accepts_kwargs&srcCst|dS)Nr)r getargspec)rr r r r2sc CsTt|dr|St|drPt|drPy|dddSttfk 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|St|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,ttdrt|d|n ||dS)Nposix_fallocater)rrrfilenotruncate)rsizer r r fallocate^s r!r)rc@s$eZdZdddZedddZdS) BaseManagerNr c Cs|jjtjjjkst|dk r0t|ds0tdtj dd\}}tj t |j |j |j|j|j|||fd|_ddd |jjD}t |jd ||j_|j|||_|tjjj|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)Zduplex)targetargs:css|]}t|VqdS)N)str).0ir r r sz$BaseManager.start..-r)r&Z exitpriority)_statevaluemultiprocessingmanagersZStateZINITIALAssertionErrorr TypeErrorZPipeProcesstype _run_server _registryZ_addressZ_authkeyZ _serializerZ_processjoinZ _identity__name__namestartcloserecvZSTARTEDutilZFinalizeZ_finalize_managerZ_Clientshutdown)self initializerinitargsreaderwriteridentr r r r:ps*       zBaseManager.startc CsP|dk r|||||||}||j|tjd|j|dS)zH Create a server, report its address and run it Nzmanager serving at %r)Z_Serversendaddressr;r/r=info serve_forever) clsregistryrFZauthkey serializerrCr@rAserverr r r r5s zBaseManager._run_server)Nr )Nr )r8 __module__ __qualname__r: classmethodr5r r r r r#os %r#)r#)rsysrrsocketZbotocore.compatrplatform startswithr r PY3rConnectionErrorZ SOCKET_ERRORMAXINTerrorZmaxintrrr! version_infor/Zmultiprocessing.managersZmultiprocessing.connectionZmultiprocessing.utilr0r#r r r r  s2     >