
    h                    N    S SK Jr  S SKrS SKJr  S SKrS SKJr   " S S\5      rg)    )annotationsN)select)Pollerc                  :   ^  \ rS rSrSrSrS rSU 4S jjrSrU =r	$ )_Poller
   zxReplacement for :class:`zmq.Poller`

Ensures that the greened Poller below is used in calls to
:meth:`zmq.Poller.poll`.
gHzG?c                   / n/ n/ nU R                    GH&  u  pE[        U[        R                  5      (       a0  UR	                  UR                  [        R                  5      5        MU  [        U[        5      (       a  UnO;[        US5      (       a   [        UR                  5       5      nO[        SU< 35      eU[        R                  -  (       a  UR	                  U5        U[        R                  -  (       a  UR	                  U5        U[        R                  -  (       d  GM  UR	                  U5        GM)     XU4$ ! [         a    [        S5      ef = f)zTReturns three elements tuple with socket descriptors ready
for gevent.select.select
filenoz(fileno() must return an valid integer fdzFSocket must be a 0MQ socket, an integer fd or have a fileno() method: )sockets
isinstancezmqSocketappend
getsockoptFDinthasattrr
   	Exception
ValueError	TypeErrorPOLLINPOLLOUTPOLLERR)selfrlistwlistxlistsocketflagsfds          aC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\zmq/green/poll.py_get_descriptors_Poller._get_descriptors   s    !\\MF&#**--V..svv67FC((**QV]]_-B  228= 
 szz!R s{{"R s{{""R - *0 e$$ ! Q$%OPPQs   EEc                  > Uc  SnUS:  a  SnSnSnSnUS:  a#  [         R                  R                  US-  5      nOSn U R                  5       u  p#n [        T	U ]  S5      nU(       d  US:X  a  UUS:  a  UR                  5         $ $ [         R                  R                  U R                  5      n [        R                  " X#U5        UR                  5         M  ! [         R                   a  nXLa  e  SnAN0SnAff = f! UR                  5         f = f! [         R                   a(  nXLa  e / s SnAUS:  a  UR                  5         $ $ SnAff = f! US:  a  UR                  5         f f = f)zxOverridden method to ensure that the green version of
Poller is used.

Behaves the same as :meth:`zmq.core.Poller.poll`
Nr   g     @@)	geventTimeout	start_newr"   superpollcancel_gevent_bug_timeoutr   )
r   timeoutr   r   r   toutevents_bug_timeoutt	__class__s
            r!   r*   _Poller.poll5   s\    ?GQ;GQ;>>++Gf,<=DD	"&"7"7"9E%aW\!& {   &~~778P8PQ*MM%6
 !'')  ~~ , - !'')~~ 	}I{ 	
 { sl   1D 
)D 4C D D 1C;6D ;D  D DD E,E2E3E EE E0 )r%   )
__name__
__module____qualname____firstlineno____doc__r,   r"   r*   __static_attributes____classcell__)r2   s   @r!   r   r   
   s       %D0 0    r   )
__future__r   r&   r   r   r   _original_Pollerr   r4   r<   r!   <module>r?      s#    "   
 *[ [r<   