Ë
    uPêju  ã                   ó–   — d Z ddlZddlmZ ddl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)Ú	Coroutine)ÚTYPE_CHECKINGÚAnyÚFinal)Úget_async_httpx_client)ÚLiteLLMBatchÚLlmProviders©ÚLoggingé   )ÚAnthropicModelInfoé   )ÚAnthropicBatchesConfigc                   óà   — e Zd ZdZd„ Z	 ddededz  dedz  deej                  z  de	dz  d	e
dz  d
efd„Z	 ddedededz  dedz  deej                  z  de	dz  d	e
dz  d
eeeeef   z  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    úk/home/oem/CyberBrain26-unified/.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%   so  è ø€ ð0 ÒO˜t×8Ñ8×EÑEÀhÓOˆØÒD˜T×6Ñ6×BÑBÓDˆáÜÐ8Ó9Ð9ð Ðõñ 1Ø)ØØØ*ØØ"1°(°Ð <Ø,ôˆKð #×2Ñ2×IÑIØØØØð	 Jó 
ˆð ×-Ñ-×BÑBØØØØØØØð Có 
ˆð 	×ÑØØà(Ø"Ø')ñð 	ô 	
ô 5Ä,×BXÑBXÔYˆØ ,× 0Ñ 0°\È7Ð 0Ó S×SˆØ×!Ñ!Ô#ð ×#Ñ#×EÑEØØ!Ø#Øð	 Fó 
ð 	
ð	 Tú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   )rD   ÚasyncioÚrun)r   rE   r   r   r   r   r   r   s           r   Úretrieve_batchz&AnthropicBatchesHandler.retrieve_batch|   si   € ñ2 Ø×'Ñ'Ø!Ø!ØØØ'Ø'ð (ó ð ô —;‘;Ø×$Ñ$Ø%Ø%Ø#Ø#Ø +Ø +ð %ó ó	ð 	r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚfloatÚhttpxÚTimeoutÚintÚLiteLLMLoggingObjr   rD   Úboolr   r   rI   © r   r   r   r      s   „ ñò8ð 15ñU
àðU
ð ˜‘*ðU
ð �t‘ð	U
ð
 ˜Ÿ™Ñ&ðU
ð ˜4‘ZðU
ð '¨Ñ-ðU
ð 
óU
ð~ 15ñ,àð,ð ð,ð ˜‘*ð	,ð
 �t‘ð,ð ˜Ÿ™Ñ&ð,ð ˜4‘Zð,ð '¨Ñ-ð,ð 
˜	 # s¨LÐ"8Ñ9Ñ	9ô,r   r   )rM   rG   Úcollections.abcr   Útypingr   r   r   rP   Ú&litellm.llms.custom_httpx.http_handlerr   Úlitellm.types.utilsr   r	   r8   r   rS   Úcommon_utilsr   Útransformationr   r   rU   r   r   ú<module>r\      sC   ðñó Ý %ß ,Ñ ,ã õ÷ ;áÞWàÐå -Ý 2÷Oò Or   