ó V!¶\c@sddlZddlmZddlZddlZyddlmZWn!ek rkddlmZnXdddgZde fd„ƒYZ ej dkr¬d „Z n d „Z e e dd „Ze e dd„Zd„Zd„Zd„add„Zdd„ZdS(iÿÿÿÿN(tpartial(t monotonic(ttimetNoWayToWaitForSocketErrort wait_for_readtwait_for_writecBseZRS((t__name__t __module__(((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyR siicCs ||ƒS(N((tfnttimeout((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyt_retry_on_intr)scCsÂ|dkrtdƒ}n tƒ|}x“tr½y||ƒSWq+ttjfk r¹}|jdtj krv‚qº|tƒ}|dkr˜d}n|tdƒkr+d}q+q+q+Xq+WdS(Ntinfi( tNonetfloatRtTruetOSErrortselectterrortargsterrnotEINTR(RR tdeadlinete((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyR -s       c Cs›| r| rtdƒ‚ng}g}|r?|j|ƒn|rU|j|ƒnttj|||ƒ}t||ƒ\}}} t|p—|p—| ƒS(Ns2must specify at least one of read=True, write=True(t RuntimeErrortappendRRR tbool( tsocktreadtwriteR trchecktwcheckRtrreadytwreadytxready((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pytselect_wait_for_socketDscs| r| rtdƒ‚nd}|r9|tjO}n|rO|tjO}ntjƒ‰ˆj||ƒ‡fd†}tt||ƒƒS(Ns2must specify at least one of read=True, write=Trueics&|dk r|d9}nˆj|ƒS(Niè(R tpoll(tt(tpoll_obj(s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pytdo_pollcs  (RRtPOLLINtPOLLOUTR#tregisterRR (RRRR tmaskR&((R%s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pytpoll_wait_for_socketWs cOstdƒ‚dS(Nsno select-equivalent available(R(Rtkwargs((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pytnull_wait_for_socketkscCsCy tjƒ}t|jdƒWnttfk r:tSXtSdS(Ni(RR#R tAttributeErrorRtFalseR(R%((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyt_have_working_pollos  cOs=tƒrtanttdƒr*tantat||ŽS(NR(R0R+twait_for_socketthasattrRR"R-(RR,((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyR1|s    cCst|dtd|ƒS(s‡ Waits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyR‹scCst|dtd|ƒS(s‡ Waits for writing to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. RR (R1R(RR ((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyR’s(ii(Rt functoolsRRtsysRRt ImportErrort__all__t ExceptionRt version_infoR R/R R"R+R-R0R1RR(((s4/tmp/pip-install-usGedi/urllib3/urllib3/util/wait.pyts&