
    ir                         d Z ddlZddlmZmZmZmZmZ ddlZddl	m
Z
 ddlmZmZ erddlmZ neZddlmZ d	d
lmZ  G d d      Zy)z
Anthropic Batches API Handler
    N)TYPE_CHECKINGAny	CoroutineOptionalUnion)get_async_httpx_client)LiteLLMBatchLlmProvidersLogging   )AnthropicModelInfo   )AnthropicBatchesConfigc                       e Zd ZdZd Z	 ddedee   dee   deee	j                  f   dee   d	ee   d
efdZ	 ddededee   dee   deee	j                  f   dee   d	ee   d
eeeeeef   f   fdZy)AnthropicBatchesHandlerz
    Handler for Anthropic Message Batches API.

    Supports:
    - retrieve_batch() - Retrieve batch status and information
    c                 @    t               | _        t               | _        y N)r   anthropic_model_infor   provider_config)selfs    w/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/batches/handler.py__init__z AnthropicBatchesHandler.__init__    s    $6$8!57    Nbatch_idapi_baseapi_keytimeoutmax_retrieslogging_objreturnc           	      P  K   |xs | j                   j                  |      }|xs | j                   j                         }|st        d      |ddlm}  |dg dddd| d	      }| j                  j                  ||i i 
      }| j                  j                  i dg i i ||      }	|j                  ||||	i d       t        t        j                        }
|
j                  ||	       d{   }|j                          | j                  j                  d||i       S 7 3w)a  
        Async: Retrieve a batch from Anthropic.

        Args:
            batch_id: The batch ID to retrieve
            api_base: Anthropic API base URL
            api_key: Anthropic API key
            timeout: Request timeout
            max_retries: Max retry attempts (unused for now)
            logging_obj: Optional logging object

        Returns:
            LiteLLMBatch: Batch information in OpenAI format
        zMissing Anthropic API KeyNr   r   zanthropic/unknownFbatch_retrievebatch_retrieve_)modelmessagesstream	call_type
start_timelitellm_call_idfunction_id)r   r   optional_paramslitellm_params )headersr%   r&   r,   r-   r   r   )r   r/   complete_input_dict)inputr   additional_args)llm_provider)urlr/   )r%   raw_responser    r-   )r   get_api_baseget_api_key
ValueError*litellm.litellm_core_utils.litellm_loggingr   r   get_retrieve_batch_urlvalidate_environmentpre_callr   r
   	ANTHROPICgetraise_for_status!transform_retrieve_batch_response)r   r   r   r   r   r   r    LiteLLMLoggingObjClassretrieve_urlr/   async_clientresponses               r   aretrieve_batchz'AnthropicBatchesHandler.aretrieve_batch$   sn    0 Ot88EEhODT66BBD899  1)*"1( <,K ++BB	 C 
 &&;; < 
 	("') 	 	
 .<;Q;QR%))lG)LL!!# ##EE!#	 F 
 	
	 Ms   C.D&0D$14D&	_is_asyncc           
          |r| j                  ||||||      S t        j                  | j                  ||||||            S )a  
        Retrieve a batch from Anthropic.

        Args:
            _is_async: Whether to run asynchronously
            batch_id: The batch ID to retrieve
            api_base: Anthropic API base URL
            api_key: Anthropic API key
            timeout: Request timeout
            max_retries: Max retry attempts (unused for now)
            logging_obj: Optional logging object

        Returns:
            LiteLLMBatch or Coroutine: Batch information in OpenAI format
        )r   r   r   r   r   r    )rE   asynciorun)r   rF   r   r   r   r   r   r    s           r   retrieve_batchz&AnthropicBatchesHandler.retrieve_batch{   si    2 ''!!'' (   ;;$$%%## + + % 	 	r   r   )__name__
__module____qualname____doc__r   strr   r   floathttpxTimeoutintLiteLLMLoggingObjr	   rE   boolr   r   rJ    r   r   r   r      s   8 48U
U
 3-U
 #	U

 uemm+,U
 c]U
 /0U
 
U
~ 48,, , 3-	,
 #, uemm+,, c], /0, 
|YsC'=>>	?,r   r   )rN   rH   typingr   r   r   r   r   rQ   &litellm.llms.custom_httpx.http_handlerr   litellm.types.utilsr	   r
   r9   r   rT   common_utilsr   transformationr   r   rV   r   r   <module>r\      s@     A A  ;W - 2O Or   