
    ai                         d dl Z d dlZd dlZd dlZd dlmZmZmZmZ erddl	m
Z
 ddlmZ ddlmZ 	  G d d          Z G d	 d
e          Z G d de          Z G d d          ZdS )    N)TYPE_CHECKINGCallableOptionalUnion   )WebSocketApp)_loggingsendc                       e Zd ZdZdddeeeef                  ddfdZdeeeef                  d	e	ddfd
Z
dede	ddfdZdej        deeef         defdZdS )DispatcherBasez
    DispatcherBase
    appr   ping_timeoutreturnNc                 "    || _         || _        d S N)r   r   )selfr   r   s      e/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/websocket/_dispatcher.py__init__zDispatcherBase.__init__$   s     (    secondscallbackc                 F    |t          j        |            |             d S r   )timesleep)r   r   r   s      r   timeoutzDispatcherBase.timeout*   s'    Jw




r   reconnectorc           	         	 t          j        d| dt          t          j                               d           t          j        |            |d           d S # t          $ r}t          j        d|            |d }~ww xY w)Nzreconnect() - retrying in z
 seconds [z frames in stack]T)reconnectingzUser exited )r	   infoleninspectstackr   r   KeyboardInterrupt)r   r   r   es       r   	reconnectzDispatcherBase.reconnect/   s    	MgWggGMOO@T@Tggg   JwKT******  	 	 	M,,,---G	s   AA 
B'B  Bsockdatac                 "    t          ||          S r   r
   r   r'   r(   s      r   r   zDispatcherBase.send:   s    D$r   )__name__
__module____qualname____doc__r   r   floatintr   r   r   r&   socketstrbytesr    r   r   r   r      s         )!)19%s
:K1L)	) ) ) )xeSj(9: h SW    
	 	8 	 	 	 	 	   eCJ.?  C            r   r   c                   4    e Zd ZdZdej        dededdfdZdS )
Dispatcherz
    Dispatcher
    r'   read_callbackcheck_callbackr   Nc                    | j         j        | j         j        j        d S t          j                    }|                    | j         j        j        t          j                   	 | j         j        r;|                    | j                  r |            sn |             | j         j        ;|	                                 d S # |	                                 w xY wr   )
r   r'   	selectorsDefaultSelectorregister
EVENT_READkeep_runningselectr   closer   r'   r7   r8   sels        r   readzDispatcher.readC   s     8= DHM$6$>F'))TX]')=>>>	(' !::d/00 (=??    	 (' ! IIKKKKKCIIKKKKs   #AC   C)r+   r,   r-   r.   r1   r   rC   r4   r   r   r6   r6   >   sZ         m   !	
 
     r   r6   c                   J    e Zd ZdZdej        dededdfdZdej        fd	Z	dS )
SSLDispatcherz
    SSLDispatcher
    r'   r7   r8   r   Nc                    | j         j        | j         j        j        d S | j         j        j        }t          j                    }|                    |t          j                   	 | j         j        r7|                     ||          r |            sn |             | j         j        7|                                 d S # |                                 w xY wr   )	r   r'   r:   r;   r<   r=   r>   r?   r@   rA   s        r   rC   zSSLDispatcher.read\   s     8= DHM$6$>Fx}!'))T9/000	(' !;;tS)) (=??    	 (' ! IIKKKKKCIIKKKKs   %AB> >CrB   c                     | j         j        d S | j         j        j        }|                                r|gS |                    | j                  }t          |          dk    r|d         d         S d S )Nr   )r   r'   pendingr?   r   r!   )r   r'   rB   rs       r   r?   zSSLDispatcher.selectp   sq    8= 4x}!<<>> 	  JJt())q66A::Q47Ntr   )
r+   r,   r-   r.   r1   r   rC   r:   r;   r?   r4   r   r   rE   rE   W   sx         m   !	
 
   (	 9      r   rE   c                       e Zd ZdZdddeeeef                  ddfdZde	j	        d	e
d
e
ddfdZde	j	        deeef         defdZdede
ddfdZdede
ddfdZdS )WrappedDispatcherz
    WrappedDispatcher
    r   r   r   r   Nc                 t    || _         || _        || _        || _        |                    d|j                   d S )N   )r   r   
dispatcherhandleDisconnectsignalabort)r   r   r   rN   rO   s        r   r   zWrappedDispatcher.__init__   sA     ($ 0!Z-.....r   r'   r7   r8   c                     | j                             ||           | j        r|                     | j        |           d S d S r   )rN   rC   r   r   )r   r'   r7   r8   s       r   rC   zWrappedDispatcher.read   sN     	T=111 	<LL*N;;;;;	< 	<r   r(   c                 n    | j                             ||t          | j                   t	          |          S r   )rN   	buffwriter   rO   r!   r*   s      r   r   zWrappedDispatcher.send   s-    !!$dD4IJJJ4yyr   r   r   c                 .     | j         j        ||g|R   d S r   )rN   r   )r   r   r   argss       r   r   zWrappedDispatcher.timeout   s'    9D999999r   r   c                 4    |                      ||d           d S )NT)r   )r   r   r   s      r   r&   zWrappedDispatcher.reconnect   s    Wk400000r   )r+   r,   r-   r.   r   r   r/   r0   r   r1   r   rC   r2   r3   r   r   r&   r4   r   r   rK   rK      s        // uUCZ01/ 
/ / / /<m<  < !	<
 
< < < < eCJ.? C    :u : :D : : : :1 18 1 1 1 1 1 1 1r   rK   )r   r1   r"   r:   typingr   r   r   r   _appr    r	   _socketr   r   r6   rE   rK   r4   r   r   <module>r\      sB          ; ; ; ; ; ; ; ; ; ; ; ; #""""""            &               >       2& & & & &N & & &R$1 $1 $1 $1 $1 $1 $1 $1 $1 $1r   