
     fN                        d dl Z d dlZd dlZd dlmZ ddlmZmZ ddl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df         ddfdZdeeed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)Union   )"WebSocketConnectionClosedExceptionWebSocketTimeoutException)SSLError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                   "    e Zd ZdededdfdZdS )r   sockoptssloptreturnNc                 @    |g }|i }|| _         || _        d | _        d S N)r   r   timeout)selfr   r   s      T/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/websocket/_socket.py__init__zsock_opt.__init__8   s/    ?G>F    )__name__
__module____qualname__listdictr#    r$   r"   r   r   7   s=         d t      r$   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   B   s     r$   c                      t           S )z
    Get default timeout

    Returns
    ----------
    _default_timeout: int or float
        Return the global timeout setting (in seconds) to connect.
    r,   r*   r$   r"   r   r   O   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|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 d S r   )r   r   socketerrorr
   errnoEAGAINEWOULDBLOCK	selectorsDefaultSelectorregister
EVENT_READselect
gettimeoutclose)exc
error_codeselrr0   r/   s       r"   _recvzrecv.<locals>._recv_   s    	99W%%% 	 	 	D| 	 	 	+C00J%,0A!BBB CBBBB	
 '))T9/000JJt(())		 	&99W%%%	& 	&s    
A&A&*A!!A&r   zConnection timed out	timed outz#Connection to remote host was lost.)r   r>   r   TimeoutErrorr   r4   r    r   r   
isinstancestr)r/   r0   rD   bytes_emessages   ``    r"   r   r   [   sB    N01LMMM& & & & & &&??!!YYw''FFUWWF @ @ @'(>???> 1 1 1%a(('000   %a((gs## 	w(>(>+G444  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)r/   linecs      r"   r   r      sK    DqMMA::	
 88D>>r$   datac                     t          t                    r                    d           st          d           fd}	                                  dk    r                               S  |            S # t          j        $ r#}t          |          }t          |          d }~wt          $ r=}t          |          }t          |t                    rd|v rt          |           d }~ww xY w)Nzutf-8r2   c                     	                                S # 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 r   )r   r	   r4   r5   r
   r6   r7   r8   r9   r:   r;   EVENT_WRITEr=   r>   r?   )r@   rA   rB   wrR   r/   s       r"   _sendzsend.<locals>._send   s   		99T??"  	 	 	D| 	 	 	+C00J!%,0A!BBB CBBBB		 '))T90111JJt(())		 	#99T??"	# 	#s    
A)A)-A$$A)r   rE   )rG   rH   encoder   r>   r   r4   r    r   r   	Exception)r/   rR   rW   rJ   rK   s   ``   r"   r   r      s   $ ${{7## N01LMMM# # # # # #*??!!99T??"577N> 1 1 1%a(('000   %a((gs## 	w(>(>+G444s*   ,A< 2	A< <C3B))C368C..C3)%r6   r9   r4   typingr   _exceptionsr   r   _ssl_compatr   r   r	   _utilsr
   r   SOL_TCPTCP_NODELAYr   hasattrrN   
SOL_SOCKETr   r   r   r   r-   __all__r   intfloatr   r   bytesr   r   rH   r   r*   r$   r"   <module>rf      s                      G F F F F F F F F F ; ; ; ; ; ; ; ;& !.&*<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          
uS%%56 
4 
 
 
 
	5eT!12 	 	 	 	+v} +s +u + + + +\FM e    )v} )E%*$5 )# ) ) ) ) ) )r$   