
    ia                        d dl mZ d dlZd dlmZmZ d dlmZmZ d dl	Z	d dl
mZ d dlmZ er1d dlmZ d dl
mZ d d	l
mZ d d
l
mZ d dl
mZ ddlmZ eZeZeZeZeZeZneZeZeZeZeZeZ G d de      Zy)    )annotationsN)ABCabstractmethod)TYPE_CHECKINGAny)$ContainerCreateOptionalRequestParams)GenericLiteLLMParams)Logging)ContainerFileListResponse)ContainerListResponse)ContainerObject)DeleteContainerResult   BaseLLMExceptionc                  p   e Zd Zd Zed        Zedd       Ze	 	 	 	 	 	 dd       Ze	 d	 	 	 	 	 dd       Z	e	 	 	 	 	 	 dd       Z
e	 	 	 	 	 	 	 	 	 	 dd       Ze	 	 	 	 	 	 dd	       Ze	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
       Ze	 	 	 	 	 	 dd       Ze	 	 	 	 	 	 	 	 	 	 dd       Ze	 	 	 	 	 	 dd       Ze	 	 	 	 	 	 	 	 	 	 dd       Ze	 	 	 	 	 	 d d       Ze	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!d       Ze	 	 	 	 	 	 d"d       Ze	 	 	 	 	 	 	 	 	 	 	 	 d#d       Ze	 	 	 	 	 	 d$d       Z	 	 	 	 	 	 	 	 d%dZy)&BaseContainerConfigc                     y N selfs    /Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/containers/transformation.py__init__zBaseContainerConfig.__init__+   s        c                   | j                   j                         D ci c]`  \  }}|j                  d      sJ|j                  d      s9t        |t        j
                  t        j                  t        t        f      s|||b c}}S c c}}w )N___abc)	__dict__items
startswith
isinstancetypesFunctionTypeBuiltinFunctionTypeclassmethodstaticmethod)clskvs      r   
get_configzBaseContainerConfig.get_config.   s     **,
,1<<%LL(&&-- 	  qD,
 	
 
s   A%Bc                     y r   r   r   s    r   get_supported_openai_paramsz/BaseContainerConfig.get_supported_openai_paramsA   s    r   c                     y r   r   )r    container_create_optional_paramsdrop_paramss      r   map_openai_paramsz%BaseContainerConfig.map_openai_paramsE   s     	r   Nc                    i S r   r   )r   headersapi_keys      r   validate_environmentz(BaseContainerConfig.validate_environmentM   s	     	r   c                $    |d}t        |      |S )zmGet the complete url for the request.

        OPTIONAL - Some providers need `model` in `api_base`.
        zapi_base is required)
ValueError)r   api_baselitellm_paramsmsgs       r   get_complete_urlz$BaseContainerConfig.get_complete_urlU   s     (CS/!r   c                     y)z{Transform the container creation request.

        Returns:
            dict: Request data for container creation.
        Nr   )r   name(container_create_optional_request_paramsr9   r3   s        r   "transform_container_create_requestz6BaseContainerConfig.transform_container_create_requestd        	r   c                     y)z*Transform the container creation response.Nr   r   raw_responselogging_objs      r   #transform_container_create_responsez7BaseContainerConfig.transform_container_create_responses        	r   c                     y)zTransform the container list request into a URL and params.

        Returns:
            tuple[str, dict]: (url, params) for the container list request.
        Nr   )r   r8   r9   r3   afterlimitorderextra_querys           r    transform_container_list_requestz4BaseContainerConfig.transform_container_list_request|   s      	r   c                     y)z&Transform the container list response.Nr   rB   s      r   !transform_container_list_responsez5BaseContainerConfig.transform_container_list_response   rF   r   c                     y)zTransform the container retrieve request into a URL and data/params.

        Returns:
            tuple[str, dict]: (url, params) for the container retrieve request.
        Nr   r   container_idr8   r9   r3   s        r   $transform_container_retrieve_requestz8BaseContainerConfig.transform_container_retrieve_request   r@   r   c                     y)z*Transform the container retrieve response.Nr   rB   s      r   %transform_container_retrieve_responsez9BaseContainerConfig.transform_container_retrieve_response   rF   r   c                     y)zTransform the container delete request into a URL and data.

        Returns:
            tuple[str, dict]: (url, data) for the container delete request.
        Nr   rP   s        r   "transform_container_delete_requestz6BaseContainerConfig.transform_container_delete_request   r@   r   c                     y)z(Transform the container delete response.Nr   rB   s      r   #transform_container_delete_responsez7BaseContainerConfig.transform_container_delete_response   rF   r   c	                     y)zTransform the container file list request into a URL and params.

        Returns:
            tuple[str, dict]: (url, params) for the container file list request.
        Nr   )	r   rQ   r8   r9   r3   rH   rI   rJ   rK   s	            r   %transform_container_file_list_requestz9BaseContainerConfig.transform_container_file_list_request   s    " 	r   c                     y)z+Transform the container file list response.Nr   rB   s      r   &transform_container_file_list_responsez:BaseContainerConfig.transform_container_file_list_response   rF   r   c                     y)zTransform the container file content request into a URL and params.

        Returns:
            tuple[str, dict]: (url, params) for the container file content request.
        Nr   )r   rQ   file_idr8   r9   r3   s         r   (transform_container_file_content_requestz<BaseContainerConfig.transform_container_file_content_request   s     	r   c                     y)zrTransform the container file content response.

        Returns:
            bytes: The raw file content.
        Nr   rB   s      r   )transform_container_file_content_responsez=BaseContainerConfig.transform_container_file_content_response   s     	r   c                $    ddl m}  ||||      )Nr   r   )status_codemessager3   )chat.transformationr   )r   error_messagerc   r3   r   s        r   get_error_classz#BaseContainerConfig.get_error_class   s     	;#!
 	
r   )returnlist)r/   r   r0   boolrh   dictr   )r3   rk   r4   
str | Nonerh   rk   )r8   rl   r9   rk   rh   str)
r=   rm   r>   rk   r9   r	   r3   rk   rh   rk   )rC   httpx.ResponserD   LiteLLMLoggingObjrh   r   )NNNN)r8   rm   r9   r	   r3   rk   rH   rl   rI   
int | NonerJ   rl   rK   dict[str, Any] | Nonerh   tuple[str, dict])rC   rn   rD   ro   rh   r   )
rQ   rm   r8   rm   r9   r	   r3   rk   rh   rr   )rC   rn   rD   ro   rh   r   )rQ   rm   r8   rm   r9   r	   r3   rk   rH   rl   rI   rp   rJ   rl   rK   rq   rh   rr   )rC   rn   rD   ro   rh   r   )rQ   rm   r^   rm   r8   rm   r9   r	   r3   rk   rh   rr   )rC   rn   rD   ro   rh   bytes)rf   rm   rc   intr3   zdict | httpx.Headersrh   r   )__name__
__module____qualname__r   r&   r+   r   r-   r1   r5   r;   r?   rE   rL   rN   rR   rT   rV   rX   rZ   r\   r_   ra   rg   r   r   r   r   r   *   s    
 
$   *N  
	   #  
	    
	   37 -	
  
  $ ' 
	   !  -1 - 	
    + 
 " $ ' 
	    -	
  
  $ ' 
	    -	
  
  $ ' 
	   !  -1  -	
     + 
 $ $ ' 
#	    	
 -  
  
$
 '
 
	
 


 
 &	

 

r   r   )
__future__r   r#   abcr   r   typingr   r   httpxlitellm.types.containers.mainr   litellm.types.routerr	   *litellm.litellm_core_utils.litellm_loggingr
   _LiteLLMLoggingObjr   _ContainerFileListResponser   _ContainerListResponser   _ContainerObjectr   _DeleteContainerResultre   r   _BaseLLMExceptionro   r   r   r   r   <module>r      s    "  # %  N 5X R L*(&O22 :O #b
# b
r   