
    ,hN                        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j'                  ej(                  ej*                  df        eed      r(ej'                  ej                  ej,                  d	f        eed
      r(ej'                  ej                  ej.                  df        eed      r(ej'                  ej                  ej0                  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$y)    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y)r   sockoptssloptreturnNc                 >    |g }|i }|| _         || _        d | _        y N)r   r   timeout)selfr   r   s      S/var/www/html/Resume-Scraper/venv/lib/python3.12/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 y)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}	  j                         dk(  r j                        }n |       }|st        d      |S # t        $ r t	        d      t
        j                  $ r}t        |      }t	        |      d }~wt        $ r0}t        |      }t        |t              rd|v rt	        |       d }~ww xY w)Nsocket is already closed.c                     	 j                        S # t        $ r Y nMt        j                  $ r8} t	        |       }|t
        j                  t
        j                  fvr Y d } ~ nd } ~ ww xY wt        j                         }|j                  t        j                         |j                  j                               }|j                          |rj                        S y 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%% 	|| 	+C0J%,,0A0A!BB C	
 '')T9//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   [   s    01LMM&&??!YYw'FWF 01VWWM  @'(>??>> 1%a('00 %a(gs#w(>+G44s#   ,A &C
8BC
+CC
c                 r    g }	 t        | d      }|j                  |       |dk(  rn$dj                  |      S )Nr      
r$   )r   appendjoin)r/   linecs      r"   r   r      s?    D
qMA:	 
 88D>r$   datac                     t        t              rj                  d       st        d       fd}	  j	                         dk(  r j                        S  |       S # t        j                  $ r}t        |      }t        |      d }~wt        $ r0}t        |      }t        |t              rd|v rt        |       d }~ww xY w)Nzutf-8r2   c                     	 j                        S # t        $ r Y nPt        j                  $ r;} t	        |       }| |t
        j                  t
        j                  fvr Y d } ~ nd } ~ ww xY wt        j                         }|j                  t        j                         |j                  j                               }|j                          |rj                        S y 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?"  	|| 	+C0J!%,,0A0A!BB C		 '')T9001JJt()		99T?" s    	A,A,1A''A,r   rE   )rG   rH   encoder   r>   r   r4   r    r   r   	Exception)r/   rR   rW   rJ   rK   s   ``   r"   r   r      s    ${{7#01LMM#*??!99T?"7N>> 1%a('00 %a(gs#w(>+G44s)   #A# A# #C6BC+CC)%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 ;& !..&*<*<a@A 
6>"  &"3"3V5H5H!!LM
6>"  &..&2E2Er!JK
6?#  &..&2F2F!KL
6=!  &..&2D2Da!HI  
uS%%56 
4 
	5eT!12 	+v}} +s +u +\FMM e )v}} )E%*$5 )# )r$   