
    3fik
                    r    d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ  G d d	e
      Zy)
    )annotationsN)AsyncIterator)AnyLiteralcast)AsyncCallbackHandler)	LLMResult)overridec                      e Zd ZU dZded<   ded<   edd       ZddZe	 	 	 	 	 	 	 	 dd       Z	edd	       Z
edd
       Zedd       ZddZy)AsyncIteratorCallbackHandlerz0Callback handler that returns an async iterator.zasyncio.Queue[str]queuezasyncio.Eventdonec                     y)zAlways verbose.T selfs    i/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_classic/callbacks/streaming_aiter.pyalways_verbosez+AsyncIteratorCallbackHandler.always_verbose   s         c                h    t        j                         | _        t        j                         | _        y)z)Instantiate AsyncIteratorCallbackHandler.N)asyncioQueuer   Eventr   r   s    r   __init__z%AsyncIteratorCallbackHandler.__init__   s    ]]_
MMO	r   c                @   K   | j                   j                          y wN)r   clear)r   
serializedpromptskwargss       r   on_llm_startz)AsyncIteratorCallbackHandler.on_llm_start   s      			   c                T   K   |"|dk7  r| j                   j                  |       y y y w)N )r   
put_nowait)r   tokenr    s      r   on_llm_new_tokenz-AsyncIteratorCallbackHandler.on_llm_new_token)   s,     "JJ!!%( "-s   &(c                @   K   | j                   j                          y wr   r   set)r   responser    s      r   
on_llm_endz'AsyncIteratorCallbackHandler.on_llm_end.        		r"   c                @   K   | j                   j                          y wr   r)   )r   errorr    s      r   on_llm_errorz)AsyncIteratorCallbackHandler.on_llm_error2   r-   r"   c                 K   | j                   j                         r| j                  j                         st	        j
                  t	        j                  | j                   j                               t	        j                  | j                  j                               gt        j                         d{   \  }}|r|j                         j                          t        d|j                         j                               }|du ry| | j                   j                         s| j                  j                         syy7 w)z)Asynchronous iterator that yields tokens.)return_whenNzstr | Literal[True]T)r   emptyr   is_setr   waitensure_futuregetFIRST_COMPLETEDpopcancelr   result)r   r   othertoken_or_dones       r   aiterz"AsyncIteratorCallbackHandler.aiter8   s     **""$DII,<,<,> !( ))$**..*:;))$))..*:;	 $33! KD% 		""$ !!6
8I8I8KLM $  3 **""$DII,<,<,>,>s   B6E8E9A3E-E	EN)returnbool)r?   None)r   zdict[str, Any]r   z	list[str]r    r   r?   rA   )r&   strr    r   r?   rA   )r+   r	   r    r   r?   rA   )r/   BaseExceptionr    r   r?   rA   )r?   zAsyncIterator[str])__name__
__module____qualname____doc____annotations__propertyr   r   r
   r!   r'   r,   r0   r>   r   r   r   r   r      s    :
 $
 "  	
 
  ) )    
 r   r   )
__future__r   r   collections.abcr   typingr   r   r   langchain_core.callbacksr   langchain_core.outputsr	   typing_extensionsr
   r   r   r   r   <module>rP      s,    "  ) % % 9 , &
E #7 E r   