
    Ch
                     ~    S SK r S SKrS SKrS SKJrJrJr   " S S5      r " S S\5      rS\\	\
\\4   S\S	\	4S
 jrg)    N)OptionalAnyUnionc                       \ rS rSrSr\R                  " S5      rSr SSSSSSS.S\	\
   S\	\   S	\	\   S
\	\   S\	\   S\	\   SS4S jjjrS\4S jrSrg)ServerSentEvent   z;
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                v    Xl         X l        X0l        X@l        XPl        Ub  X`l        g U R
                  U l        g N)r   r	   r
   r   r   DEFAULT_SEPARATOR_sep)selfr   r	   r
   r   r   r   s          M/home/james-whalen/.local/lib/python3.13/site-packages/sse_starlette/event.py__init__ServerSentEvent.__init__   s2     	

?C	0F0F	    c                 2   [         R                  " 5       nU R                  bU  U R                  R	                  [        U R                  5      5       H#  nUR                  SU U R                   35        M%     U R                  bE  UR                  SU R                  R                  SU R                  5      -   U R                  -   5        U R                  bE  UR                  SU R                  R                  SU R                  5      -   U R                  -   5        U R                  bU  U R                  R	                  [        U R                  5      5       H#  nUR                  SU U R                   35        M%     U R                  bT  [        U R                  [        5      (       d  [        S5      eUR                  SU R                   U R                   35        UR                  U R                  5        UR!                  5       R#                  S5      $ )	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&   ServerSentEvent.encode    s   <<#,,223t||3DEr%45 F 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 C ::!djj#.. <==LL74::,tyyk:;TYY ''00r   )r   r   r   r	   r
   r   r   )__name__
__module____qualname____firstlineno____doc__recompiler   r   r   r   r   r#   r   bytesr&   __static_attributes__ r   r   r   r      s     ZZ.N #G  $ #!%!GsmG }	G
 SMG }G #G c]G 
G"1 1r   r   c                   D   ^  \ rS rSrSr SS\\   SS4U 4S jjjrSrU =r	$ )	JSONServerSentEvent>   z@
Helper class to format JSON data for Server-Sent Events (SSE).
Nr   r   c           
      d   > [         TU ]  " Ub  [        R                  " USSS SS9OS /UQ70 UD6  g )NF),:)ensure_ascii	allow_nanindent
separators)superr   jsondumps)r   r   argskwargs	__class__s       r   r   JSONServerSentEvent.__init__C   sP     	  JJ"% 	
 	
 	
r   r3   r   )
r*   r+   r,   r-   r.   r   r   r   r2   __classcell__)rC   s   @r   r5   r5   >   s-     #
sm

 

 
r   r5   r   r   r   c                     [        U [        5      (       a  U $ [        U [        5      (       a  U R                  5       $ [        U [        5      (       a  XS'   [        S0 U D6R                  5       $ [        [        U 5      US9R                  5       $ )Nr   )r   r3   )r"   r1   r   r&   dictr   )r   r   s     r   ensure_bytesrH   X   sr    $$(({{}$U&&--//3t9#.5577r   )r   r/   r?   typingr   r   r   r   r5   r1   rG   r   rH   r3   r   r   <module>rJ      sS    	 	  ' '41 41n
/ 
48uUD/3>? 8c 8e 8r   