CYhGddlmZddlZddlZddlmZddgZ d d dZ d d dZddZ d d d a ddd Z ddd Z y)) annotationsN)partial wait_for_readwait_for_writec|s |s tdg}g}|r|j||r|j|ttj|||}||\}}} t |xs|xs| S)N2must specify at least one of read=True, write=True) RuntimeErrorappendrselectbool) sockreadwritetimeoutrcheckwcheckfnrreadywreadyxreadys 3/usr/lib/python3/dist-packages/urllib3/util/wait.pyselect_wait_for_socketr!sx OPP F F  d  d  7B[FFF *&*F ++c|s |s tdd}|r|tjz}|r|tjz}tjj ||dfd }t ||S)Nrrc4||dz}j|S)Ni)poll)tpoll_objs rdo_pollz%poll_wait_for_socket..do_pollJs = IA}}Qr)r float | Nonereturnzlist[tuple[int, int]])r r POLLINPOLLOUTrregisterr )r rrrmaskrrs @rpoll_wait_for_socketr&9so OPP D     {{}H dD!  !!rcz tj}|jdy#ttf$rYywxYw)NrTF)r rAttributeErrorOSError)rs r_have_working_pollr*Rs<;;= a G $s %(::cltrtanttdrt at||||S)Nr )r*r&wait_for_sockethasattrr r)r rrrs rr,r,_s/.  "0 4ug 66rct|d|S)zWaits for reading to be available on a given socket. Returns True if the socket is readable, or False if the timeout expired. T)rrr,r rs rrrqs 4dG <r8s"  , -8 , , , , ,  ,4 " " " " "  "2  7 7 7 7 7  7$=>r