
    Uh
                     |    d dl Z d dlZd dlZd dlmZmZmZ  G d d      Z G d de      Zdee	e
eef   ded	e	fd
Zy)    N)OptionalAnyUnionc                       e Zd ZdZ ej
                  d      ZdZ	 ddddddddee	   dee
   dee
   d	ee   d
ee
   dee
   ddfdZdefdZy)ServerSentEventzC
    Helper class to format data for Server-Sent Events (SSE).
    z
\r\n|\r|\nz
N)eventidretrycommentsepdatar   r	   r
   r   r   returnc                    || _         || _        || _        || _        || _        ||| _        y | j
                  | _        y N)r   r   r	   r
   r   DEFAULT_SEPARATOR_sep)selfr   r   r	   r
   r   r   s          T/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/sse_starlette/event.py__init__zServerSentEvent.__init__   s>     	

?C	0F0F	    c                    t        j                         }| j                  S| j                  j	                  t        | j                              D ]"  }|j                  d| | j                          $ | j                  E|j                  d| j                  j                  d| j                        z   | j                  z          | j                  E|j                  d| j                  j                  d| j                        z   | j                  z          | j                  S| j                  j	                  t        | j                              D ]"  }|j                  d| | j                          $ | j                  Ot        | j                  t              st        d      |j                  d| j                   | j                          |j                  | j                         |j!                         j#                  d      S )	Nz: zid:  zevent: zdata: zretry argument must be intzretry: zutf-8)ioStringIOr   _LINE_SEP_EXPRsplitstrwriter   r	   subr   r   r
   
isinstanceint	TypeErrorgetvalueencode)r   bufferchunks      r   r$   zServerSentEvent.encode    s   <<#,,223t||3DE 6r%456 77LL$"5"5"9"9"dgg"FFRS::!LLD//33B

CCdiiO 99 ,,223tyy>B :veWTYYK89: ::!djj#. <==LL74::,tyyk:;TYY ''00r   r   )__name__
__module____qualname____doc__recompiler   r   r   r   r   r!   r   bytesr$    r   r   r   r      s      RZZ.N #G  $ #!%!GsmG }	G
 SMG }G #G c]G 
G"1 1r   r   c                   6     e Zd ZdZ	 ddee   ddf fdZ xZS )JSONServerSentEventzH
    Helper class to format JSON data for Server-Sent Events (SSE).
    Nr   r   c           	      d    t        |   |t        j                  |ddd d      nd g|i | y )NF),:)ensure_ascii	allow_nanindent
separators)superr   jsondumps)r   r   argskwargs	__class__s       r   r   zJSONServerSentEvent.__init__C   sP     	  JJ"% 	
 	
 	
r   r   )r'   r(   r)   r*   r   r   r   __classcell__)r=   s   @r   r0   r0   >   s-     #
sm

 

 
r   r0   r   r   r   c                 
   t        | t              r| S t        | t              r| j                         S t        | t              r|| d<   t        di | j                         S t        t        |       |      j                         S )Nr   )r   r.   )r    r-   r   r$   dictr   )r   r   s     r   ensure_bytesrA   X   sk    $$({{}$U&&--//3t9#.5577r   )r   r+   r9   typingr   r   r   r   r0   r-   r@   r   rA   r.   r   r   <module>rC      sS    	 	  ' '41 41n
/ 
48uUD/3>? 8c 8e 8r   