
    ai                        d dl Z d dlZd dlZd dlmZmZmZ ddlmZm	Z	 ddl
mZmZmZmZ ddlmZmZ 	 ej        ej        dfgZ eed          r"e                    ej        ej        df            eed          r"e                    ej        ej        d	f            eed
          r"e                    ej        ej        df            eed          r"e                    ej        ej        df           dag dZ G d d          Zdeeee f                  ddfdZ!deeee f                  fdZ"dej        dede#fdZ$dej        de#fdZ%dej        dee#e&f         defdZ'dS )    N)OptionalUnionAny   )"WebSocketConnectionClosedExceptionWebSocketTimeoutException)SSLErrorSSLEOFErrorSSLWantReadErrorSSLWantWriteError)extract_error_codeextract_err_messageSO_KEEPALIVETCP_KEEPIDLE   TCP_KEEPINTVL
   TCP_KEEPCNT   )DEFAULT_SOCKET_OPTIONsock_optsetdefaulttimeoutgetdefaulttimeoutrecv	recv_linesendc                   V    e Zd Zdeee                  deeeef                  ddfdZ	dS )r   sockoptssloptreturnNc                 @    |g }|i }|| _         || _        d | _        d S )N)r   r   timeout)selfr   r   s      a/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/websocket/_socket.py__init__zsock_opt.__init__8   s1     ?G>F48    )
__name__
__module____qualname__r   listtupledictstrr   r%    r&   r$   r   r   7   sV        	9U,	96>tCH~6N	9		9 	9 	9 	9 	9 	9r&   r   r"   r    c                 
    | a dS )z
    Set the global timeout setting to connect.

    Parameters
    ----------
    timeout: int or float
        default socket timeout time (in seconds)
    N_default_timeout)r"   s    r$   r   r   D   s     r&   c                      t           S )z
    Get default timeout

    Returns
    ----------
    _default_timeout: int or float
        Return the global timeout setting (in seconds) to connect.
    r0   r.   r&   r$   r   r   Q   s
     r&   sockbufsizec                      st          d           fd}	                                  dk    r                               }n
 |            }n# t          $ r t	          d          t
          j        $ r#}t          |          }t	          |          d }~wt          $ r=}t          |          }t          |t                    rd|v rt	          |           d }~ww xY w|t          d          |st          d          |S )Nsocket is already closed.c                     	                                S # t          $ r Y nEt          j        $ r4} t	          |           }|t
          j        t
          j        fvr Y d } ~ nd } ~ ww xY wt          j	                    }|
                    t          j                   |                                                              }|                                 |r                               S t          d          )Nz%Connection timed out waiting for data)r   r   socketerrorr   errnoEAGAINEWOULDBLOCK	selectorsDefaultSelectorregister
EVENT_READselect
gettimeoutcloser   )exc
error_codeselrr4   r3   s       r$   _recvzrecv.<locals>._recva   s   	99W%%% 	 	 	D| 	 	 	+C00J%,0A!BBB CBBBB	 '))T9/000JJt(())		 	U99W%%% ,,STTTs    
A&A&*A!!A&r   zConnection timed out	timed outz#Connection to remote host was lost.)r   rB   r   TimeoutErrorr   r8   r"   r   r	   
isinstancer-   )r3   r4   rH   bytes_emessages   ``    r$   r   r   ]   s\    N01LMMMU U U U U U4??!!YYw''FFUWWF @ @ @'(>???> 1 1 1%a(('000   %a((gs## 	w(>(>+G444 ~01VWWW X01VWWWMs#   8A 'C#;BC#&8CC#c                     g }	 t          | d          }|                    |           |dk    rn-d                    |          S )NTr      
r&   )r   appendjoin)r3   linecs      r$   r   r      sK    DqMMA::	
 88D>>r&   datac                 
    t          t                    r                    d           st          d          dt          f fd}	                                  dk    r                               S  |            S # t          j        $ r#}t          |          }t          |          d }~wt          t          f$ r=}t          |          }t          |t                    rd|v rt          |           d }~ww xY w)Nzutf-8r6   r    c                     	                                S # t          $ r t          d          t          $ r Y nHt          j        $ r7} t          |           }| |t          j        t          j	        fvr Y d } ~ nd } ~ ww xY wt          j                    }|                    t          j                   |                                                              }|                                 |r                               S dS )Nr6   r   )r   r
   r   r   r8   r9   r   r:   r;   r<   r=   r>   r?   EVENT_WRITErA   rB   rC   )rD   rE   rF   wrU   r3   s       r$   _sendzsend.<locals>._send   s    	99T??" 	R 	R 	R45PQQQ  	 	 	D| 	 	 	+C00J!%,0A!BBB CBBBB		 '))T90111JJt(())		 	#99T??"qs    "BB
-A<<Br   rI   )rK   r-   encoder   intrB   r   r8   r"   r   r   OSErrorr	   )r3   rU   rZ   rM   rN   s   ``   r$   r   r      s/   $ ${{7## N01LMMM3       0??!!99T??"577N> 1 1 1%a(('000X   %a((gs## 	w(>(>+G444s*   ,B :	B DB11D8C==D)(r:   r=   r8   typingr   r   r   _exceptionsr   r   _ssl_compatr	   r
   r   r   _utilsr   r   SOL_TCPTCP_NODELAYr   hasattrrQ   
SOL_SOCKETr   r   r   r   r1   __all__r   r\   floatr   r   bytesr   r   r-   r   r.   r&   r$   <module>ri      s         ' ' ' ' ' ' ' ' ' '        T S S S S S S S S S S S ; ; ; ; ; ; ; ;& !.&*<a@A 
76>"" N  &"3V5H!!LMMM
76>"" L  &.&2Er!JKKK
76?## M  &.&2F!KLLL
76=!! J  &.&2Da!HIII   
9 
9 
9 
9 
9 
9 
9 
9
xc5j(9: 
t 
 
 
 
	8E#u*$56 	 	 	 	4v} 4s 4u 4 4 4 4nFM e    ,v} ,E%*$5 ,# , , , , , ,r&   