
    2Bf                     L    d dl Z  G d de j                        Z G d de      Zy)    Nc                   ,     e Zd ZdZdZ fdZd Z xZS )ThreadWithLoggedExceptionz
    Similar to Thread but will log exceptions to passed logger.

    Args:
        logger: Logger instance used to log any exception in child thread

    Exception is also reachable via <thread>.exception from the main thread.
    zP********************************************************************************c                     	 |j                  d      | _        t	        |   |i | d | _        y # t        $ r t        d      w xY w)NloggerzMissing 'logger' in kwargs)popr   KeyError	Exceptionsuper__init__	exception)selfargskwargs	__class__s      W/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/websocket_server/thread.pyr   z"ThreadWithLoggedException.__init__   sP    	: **X.DK 	$)&)  	:899	:s	   0 Ac           
      b   	 | j                   & | j                   | j                  i | j                   | ` | `| `y # t        $ r_}t	        j
                         }|| _        | j                  j                  | j                   d| d| d| j                          Y d }~jd }~ww xY w# | ` | `| `w xY w)Nz
Exception in child thread z: 
)	_target_args_kwargsr	   	threadingcurrent_threadr   r   DIVIDER)r   r   threads      r   runzThreadWithLoggedException.run   s    	7||'djj9DLL9 dj$,  	v--/F&DNKK!!T\\N2NvhVXYbXccefjfrfres"tuu	v
 dj$,s(   2; 	B#ABB& B##B& &B.)__name__
__module____qualname____doc__r   r   r   __classcell__)r   s   @r   r   r      s     G	7    r   c                       e Zd ZdZy)WebsocketServerThreadz8Dummy wrapper to make debug messages a bit more readableN)r   r   r   r    r!   r   r#   r#   $   s    Br!   r#   )r   Threadr   r#   r$   r!   r   <module>r&      s(    7	 0 0 7@	5 	r!   