+\hdZddlmZddlZddlZddlZddlmZmZm Z e edxrejjd Z eedeZd dZGd d Zy) zSelect / poll helper) annotationsN)AnyOptionalcastpolljavaerrorct|drtt|jS|jrtt|jdSy)Nerrnor)hasattrrintr args)excs Y/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/socket_checker.py_errno_from_exceptionrs<sGC## xxC!%% c:eZdZddZ d ddZddZy) SocketCheckercV|trtj|_yd|_y)N) _HAVE_POLLselectr_poller)selfs r__init__zSocketChecker.__init__&s !;;=DLDLrc |jrtjtjz}|r$|tjztj z}|r|tj z}|jj|| |dn|dz}|jj|}t||jj|S|r|gng}|r|gng} tj|| |g|}t|S#|jj|wxYw#ttf$r7} t| tj tj"fvrYd} ~ cd} ~ wwxYw)zSelect for reads or writes with a timeout in seconds (or None). Returns True if the socket is readable/writable, False on timeout. Ni)rrPOLLERRPOLLHUPPOLLINPOLLPRIPOLLOUTregisterrbool unregisterany _SelectErrorOSErrorrr EINTREAGAIN) rsockreadwritetimeoutmasktimeout_resrlistwlistrs rrzSocketChecker.select-s, <<!>>FNN:D#fmm3fnnD#fnn4LL))$5 6,3?4$"ll//9 $Cy //5&*TFE&+TFE --utfgFCs8O //5!'* (-%++u||1LL s<BD$.D6D$1D$D!!D$$E*3+E%$E%%E*cz |j|dS#ttf$rt$rYyt$rYywxYw)z?Return True if we know socket has been closed, False otherwise.T)r*)r RuntimeErrorKeyError ValueError Exception)rr)s r socket_closedzSocketChecker.socket_closedWsM ;;t$;/ /h'     s:::N)returnNone)FFr) r)rr*r"r+r"r,zOptional[float]r8r")r)rr8r")__name__ __module__ __qualname__rrr7rrrr%sA ^_((#(48(KZ( (Trr)r BaseExceptionr8z Optional[int])__doc__ __future__rr rsystypingrrrr platform startswithrgetattrr&r%rrr=rrrFs`" &&VV $ LS\\-D-DV-L)L vw0 DDr