U o a@sddlZddlmZddlZddlZzddlmZWn ek rTddlmZYnXdddgZGddde Z ej d krd d Z nd d Z dddZ dddZddZddZddadddZdddZdS)N)partial) monotonic)timeNoWayToWaitForSocketError wait_for_readwait_for_writec@s eZdZdS)rN)__name__ __module__ __qualname__r r ^C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\urllib3\util\wait.pyrs)cCs||S)Nr )fntimeoutr r r _retry_on_intr*src Cs|dkrtd}n t|}z ||WSttjfk r}zF|jdtjkrRn.|t}|dkrhd}|tdkrxd}WYqW5d}~XYqXqdS)Ninfr)floatrOSErrorselecterrorargserrnoZEINTR)rrdeadlineer r r r0s     Fc Csd|s|stdg}g}|r&|||r4||ttj|||}t||\}}} t|p`|p`| S)N2must specify at least one of read=True, write=True) RuntimeErrorappendrrrbool) sockreadwriterrcheckwcheckrrreadywreadyxreadyr r r select_wait_for_socketGs  r'cs^|s|stdd}|r"|tjO}|r0|tjO}t||fdd}tt||S)Nrrcs|dk r|d9}|S)Ni)poll)tpoll_objr r do_pollfsz%poll_wait_for_socket..do_poll)rrPOLLINPOLLOUTr(registerrr)rr r!rmaskr,r r*r poll_wait_for_socketZs    r1cOs tddS)Nzno select-equivalent available)rrkwargsr r r null_wait_for_socketnsr4c Cs<zt}t|jdWnttfk r2YdSXdSdS)NrFT)rr(rAttributeErrorrr*r r r _have_working_pollrs r6cOs*tr tanttdrtantat||S)Nr)r6r1wait_for_sockethasattrrr'r4r2r r r r7s  r7cCst|d|dS)z Waits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. T)r rr7rrr r r rscCst|d|dS)z Waits for writing to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. T)r!rr9r:r r r rs)FFN)FFN)N)N)r functoolsrrsysrr ImportError__all__ Exceptionr version_inforr'r1r4r6r7rrr r r r s&