
    {hr                    ^   d dl mZ d dlmZmZmZ d dlZd dlZd dlm	Z	 d dl
Z
d dlmZmZ ee
j                  j                  df	 	 	 	 	 	 	 	 	 dd       Zee
j                  j                  df	 	 	 	 	 	 	 	 	 dd	       Z	 	 	 	 	 	 dd
Ze
j                  j$                  ddf	 	 	 	 	 	 	 	 	 	 	 ddZy)    )annotations)AnyLiteraloverloadN)
BaseClient)AsyncInstructor
InstructorFc                     y N clientmodeasync_clientkwargss       Z/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/instructor/client_bedrock.pyfrom_bedrockr      s         Tc                     y r   r   r   s       r   r   r      s     r   c                
    | |fS )z
    This function is deprecated and no longer used.
    Bedrock JSON handling is now done in process_response.py via handle_bedrock_json().
    r   )response_model
new_kwargss     r   handle_bedrock_jsonr      s     :%%r   c           
         t         j                  j                  t         j                  j                  h}||vr1ddlm}  |t        |      d|D cg c]  }t        |       c}      t         t              s$ddlm	}  |dt               j                         ||st        j                  dt        d	
       |xs
 |duxr |du }	d fd}
 j                  }|	r=t!        d t        j"                  |
|      t         j$                  j&                  |d|S t)        d t        j"                  ||      t         j$                  j&                  |d|S c c}w )z[
    Accepts both 'async_client' (preferred) and '_async' (deprecated) for async mode.
    r   )	ModeErrorBedrock)r   providervalid_modes)ClientErrorz>Client must be an instance of boto3.client (BaseClient). Got: NzPThe '_async' argument to from_bedrock is deprecated. Use 'async_client' instead.   )
stacklevelTc                 0   K    j                   di | S w)Nr   )converse)r   r   s    r   async_wrapperz#from_bedrock.<locals>.async_wrapperU   s     v(((s   )creater   )r   r%   r   r   )r   r   r   )
instructorModeBEDROCK_TOOLSBEDROCK_JSONinstructor.exceptionsr   str
isinstancer   r   type__name__warningswarnDeprecationWarningr#   r   patchProviderBEDROCKr	   )r   r   r   _asyncr   r   r   mr   	use_asyncr$   r%   s   `           r   r   r   *   sh    	%%$$K
 ;3T)45AQ5
 	
 fj)5L))*,
 	
 ,^	
 Gt!3!F$I) __F 
##=tD((00	

 
 	
  
##6=((00	

 
 	
I 6s   E)
r   boto3.clientr   instructor.Moder   zLiteral[False]r   r   returnr	   )
r   r8   r   r9   r   zLiteral[True]r   r   r:   r   )r   r   r   r   r:   ztuple[Any, Any])r   r   r   r9   r   boolr5   zbool | Noner   r   r:   zInstructor | AsyncInstructor)
__future__r   typingr   r   r   r/   boto3botocore.clientr   r&   instructor.clientr   r	   r'   r(   r   r   r)   r   r   r   <module>rA      s6   " ) )   &  9 
 'OO99#(
 ! 	
  
 
 'OO99"&
   	
  
&&& & 'OO88	?
?

?
 ?
 	?

 ?
 "?
r   