o
    pkjQ%                     @   s  d Z ddlZddlZddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ ddlZedZG dd de	e ZG dd	 d	e	e ZeG d
d dZg dZedd eD ZdZ		d$dejdeegef dee dedeedf f
ddZ		d$dejdeegef dee dedeeddf f
ddZdddddedeegef dee dee dedeee eee f fddZde d ed!e!fd"d#Z"dS )%zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    N)	dataclassasdict)	AnyCallableGenericListTypeVarOptional	GeneratorAsyncGeneratorTupleTc                   @   s   e Zd ZU ee ed< ejed< ee	ddf ed< e
ed< 			ddejdeege	f dee dee d	e
f
d
dZdd Zdd Zdd Zdd Zdd ZdS )Stream
client_refresponseN	generator_closedTdecodersentineldata_requiredc                 C   (   || _ t||||d| _|| _d| _d S N)r   F)r   stream_eventsr   r   r   selfr   r   r   r   r    r   e/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/google/genai/_gaos/utils/eventstreaming.py__init__.      
zStream.__init__c                 C      | S Nr   r   r   r   r   __iter__=      zStream.__iter__c                 C   s   | j rtt| jS r    )r   StopIterationnextr   r!   r   r   r   __next__@   s   
zStream.__next__c                 C   r   r    r   r!   r   r   r   	__enter__E   r#   zStream.__enter__c                 C   s   |    d S r    closer   exc_typeexc_valexc_tbr   r   r   __exit__H   s   zStream.__exit__c                 C   s   d| _ | j  d S NT)r   r   r)   r!   r   r   r   r)   K   s   zStream.closeNNT)__name__
__module____qualname__r	   object__annotations__httpxResponser
   r   boolr   strr   r"   r&   r'   r.   r)   r   r   r   r   r   &   s0   
 

r   c                   @   s   e Zd ZU ee ed< ejed< ee	df ed< e
ed< 			ddejdeege	f dee dee d	e
f
d
dZdd Zdd Zdd Zdd Zdd ZdS )AsyncStreamr   r   Nr   r   Tr   r   r   c                 C   r   r   )r   stream_events_asyncr   r   r   r   r   r   r   r   X   r   zAsyncStream.__init__c                 C   r   r    r   r!   r   r   r   	__aiter__g   r#   zAsyncStream.__aiter__c                    s   | j rt| j I d H S r    )r   StopAsyncIterationr   	__anext__r!   r   r   r   r>   j   s   zAsyncStream.__anext__c                    s   | S r    r   r!   r   r   r   
__aenter__o   s   zAsyncStream.__aenter__c                    s   |   I d H  d S r    r(   r*   r   r   r   	__aexit__r   s   zAsyncStream.__aexit__c                    s   d| _ | j I d H  d S r/   )r   r   acloser!   r   r   r   r)   u   s   zAsyncStream.closer0   )r1   r2   r3   r	   r4   r5   r6   r7   r   r   r8   r   r9   r   r<   r>   r?   r@   r)   r   r   r   r   r:   P   s0   
 

r:   c                   @   sJ   e Zd ZU dZee ed< dZee ed< dZe	ed< dZ
ee ed< dS )ServerEventNideventdataretry)r1   r2   r3   rC   r	   r9   r5   rD   rE   r   rF   intr   r   r   r   rB   z   s
   
 rB   )s   

s   
s   

s   
s   

s   s   
s   

c                 c   s    | ]}t |V  qd S r    )len).0br   r   r   	<genexpr>   s    rK   s   ﻿Tr   r   r   r   returnc              	   C  s  zt  }d}d }|  2 z3 d H W }t|dkr&|tr&|ttd  }t|}||7 }t||t d }	t|	t|D ]S}
||
|
d  }d }|dv r_tD ]}t	|
||}|d ur^ nqP|d u rdq>|||
 }|
t| }t
|||||d\}}}|d ur|V  |r  W |  I d H  d S q>|dkr||d  }d}q6 t
|||||d\}}}|d ur|V  W |  I d H  d S W |  I d H  d S |  I d H  w Nr      )      
)rawr   r   event_idr   )	bytearrayaiter_bytesrH   
startswithUTF8_BOMmaxMAX_BOUNDARY_LENrangeMESSAGE_BOUNDARIES_peek_sequence_parse_eventrA   r   r   r   r   bufferpositionrR   chunkold_lensearch_starticharseqboundaryblockrD   discard_r   r   r   r;      sl   #"r;   c              	   c   s|   zt  }d}d }|  D ]}t|dkr"|tr"|ttd  }t|}||7 }t||t d }	t|	t|D ]P}
||
|
d  }d }|dv r[tD ]}t	|
||}|d urZ nqL|d u r`q:|||
 }|
t| }t
|||||d\}}}|d ur|V  |r  W |   d S q:|dkr||d  }d}qt
|||||d\}}}|d ur|V  W |   d S W |   d S |   w rM   )rS   
iter_bytesrH   rU   rV   rW   rX   rY   rZ   r[   r\   r)   r]   r   r   r   r      sj   r   )r   rR   r   rQ   rR   c                    s  |   }td|}d}t }g }	|D ]q}
|
sq|
d}|dkr"q|
}d}|dkrR|
d| }|t|
d k r@|
|d d  nd}t|rR|d dkrR|dd  }|dkr\||_d	}q|d
krh|	| d	}q|dkrud	}d|vrt|}q|dkr| rt	||_
d	}q||_t|	 d|	}|r r||krd d	|fS  s|r|rd d|fS  rzt||_W n tjy   ||_Y nw d }|rه fddt| D }|t|}|d|fS )Nz\r?\n|\rF:r    rN    rD   TrE   rC    rF   
c                    s*   i | ]\}}|d us|dkr r||qS )NrE   r   )rI   kvhas_datar   r   
<dictcomp>D  s
    z _parse_event.<locals>.<dictcomp>)decoderesplitrB   findrH   rD   appendisdigitrG   rF   rC   r8   joinjsonloadsrE   JSONDecodeErrorr   itemsdumps)rQ   r   r   rR   r   rg   linespublishrD   
data_partslinedelimfieldvaluerE   outout_dictr   rr   r   r\     sl   
$








r\   r_   r^   sequencec                 C   sD   t |t ||  krd S t|D ]\}}|| |  |kr d S q|S r    )rH   	enumerate)r_   r^   r   rc   re   r   r   r   r[   N  s   r[   r/   )#__doc__rv   r|   dataclassesr   r   typingr   r   r   r   r   r	   r
   r   r   r6   r   r   r:   rB   rZ   rW   rX   rV   r7   r9   r8   r;   r   rS   r\   rG   bytesr[   r   r   r   r   <module>   sr   ,**


=
>
I