
    i*                         d dl Z d dlmZmZ d dlmZmZmZmZm	Z	m
Z
 d dlZd dlmZ d dl d dlmZ d dlmZ er!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neZeZeZeZ G d de      Zy)    N)ABCabstractmethod)TYPE_CHECKINGAnyDictOptionalTupleUnion)RequestFiles)*)GenericLiteLLMParams) VideoCreateOptionalRequestParams)Logging)CharacterObject)VideoObject   BaseLLMExceptionc                      e Zd Zd Zed        Zededefd       Z	ede
dededefd       Ze	 	 d9d
ededee   dee   def
d       Zededee   dedefd       Zedededededed
edeeeef   fd       Ze	 	 d9dedej.                  dedee   dee   defd       Ze	 d:dededed
edee   deeef   fd       Zedej.                  dedefd       Zdej.                  dedefdZe	 d:dedededed
edeeeef      deeef   fd       Z e	 d:dej.                  dedee   defd       Z!e	 	 	 	 d;deded
ed ee   d!ee"   d"ee   d#eeeef      deeef   fd$       Z#e	 d:dej.                  dedee   deeef   fd%       Z$edededed
edeeef   f
d&       Z%edej.                  dedefd'       Z&edededed
edeeef   f
d(       Z'e	 d:dej.                  dedee   defd)       Z(d*ed+ededed
edeeef   fd,Z)dej.                  dede*fd-Z+d.ededed
edeeef   f
d/Z,dej.                  dede*fd0Z-	 d:dedededed
edeeeef      deeef   fd1Z.	 d:dej.                  dedee   defd2Z/	 d:deded3ededed
edeeeef      deeef   fd4Z0	 d:dej.                  dedee   defd5Z1d6ed7e"d
e2eejf                  f   de4fd8Z5y	)<BaseVideoConfigc                      y N )selfs    |/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/videos/transformation.py__init__zBaseVideoConfig.__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BaseVideoConfig.get_config"   s     **,
,1<<%LL(&&-- 	  qD,
 	
 
s   A%Bmodelreturnc                      y r   r   )r   r.   s     r   get_supported_openai_paramsz+BaseVideoConfig.get_supported_openai_params5   s    r   video_create_optional_paramsdrop_paramsc                      y r   r   )r   r2   r.   r3   s       r   map_openai_paramsz!BaseVideoConfig.map_openai_params9        	r   Nheadersapi_keylitellm_paramsc                     i S r   r   )r   r7   r.   r8   r9   s        r   validate_environmentz$BaseVideoConfig.validate_environmentB   s	     	r   api_basec                      |t        d      |S )z{
        OPTIONAL

        Get the complete url for the request

        Some providers need `model` in `api_base`
        zapi_base is required)
ValueError)r   r.   r<   r9   s       r   get_complete_urlz BaseVideoConfig.get_complete_urlL   s     344r   prompt$video_create_optional_request_paramsc                      y r   r   )r   r.   r@   r<   rA   r9   r7   s          r   transform_video_create_requestz.BaseVideoConfig.transform_video_create_request^   s     	r   raw_responselogging_objcustom_llm_providerrequest_datac                      y r   r   )r   r.   rD   rE   rF   rG   s         r   transform_video_create_responsez/BaseVideoConfig.transform_video_create_responsej   s     	r   video_idvariantc                      y)z
        Transform the video content request into a URL and data/params

        Returns:
            Tuple[str, Dict]: (url, params) for the video content request
        Nr   )r   rJ   r<   r9   r7   rK   s         r   transform_video_content_requestz/BaseVideoConfig.transform_video_content_requestu   s     	r   c                      y r   r   r   rD   rE   s      r    transform_video_content_responsez0BaseVideoConfig.transform_video_content_response        	r   c                 0   K   | j                  ||      S w)a  
        Async transform video content download response to bytes.
        Optional method - providers can override if they need async transformations
        (e.g., RunwayML for downloading video from CloudFront URL).

        Default implementation falls back to sync transform_video_content_response.

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            Video content as bytes
        )rD   rE   )rP   rO   s      r   &async_transform_video_content_responsez6BaseVideoConfig.async_transform_video_content_response   s&     ( 44%# 5 
 	
s   
extra_bodyc                      y)z
        Transform the video remix request into a URL and data

        Returns:
            Tuple[str, Dict]: (url, data) for the video remix request
        Nr   )r   rJ   r@   r<   r9   r7   rT   s          r   transform_video_remix_requestz-BaseVideoConfig.transform_video_remix_request   s      	r   c                      y r   r   r   rD   rE   rF   s       r   transform_video_remix_responsez.BaseVideoConfig.transform_video_remix_response   r6   r   afterlimitorderextra_queryc                      y)z
        Transform the video list request into a URL and params

        Returns:
            Tuple[str, Dict]: (url, params) for the video list request
        Nr   )r   r<   r9   r7   rZ   r[   r\   r]   s           r   transform_video_list_requestz,BaseVideoConfig.transform_video_list_request   s    " 	r   c                      y r   r   rX   s       r   transform_video_list_responsez-BaseVideoConfig.transform_video_list_response   r6   r   c                      y)z
        Transform the video delete request into a URL and data

        Returns:
            Tuple[str, Dict]: (url, data) for the video delete request
        Nr   r   rJ   r<   r9   r7   s        r   transform_video_delete_requestz.BaseVideoConfig.transform_video_delete_request        	r   c                      y r   r   rO   s      r   transform_video_delete_responsez/BaseVideoConfig.transform_video_delete_response   rQ   r   c                      y)z
        Transform the video retrieve request into a URL and data/params

        Returns:
            Tuple[str, Dict]: (url, params) for the video retrieve request
        Nr   rc   s        r   'transform_video_status_retrieve_requestz7BaseVideoConfig.transform_video_status_retrieve_request   re   r   c                      y r   r   rX   s       r   (transform_video_status_retrieve_responsez8BaseVideoConfig.transform_video_status_retrieve_response  r6   r   namevideoc                     t        d      )z
        Transform the video create character request into a URL and files list (multipart).

        Returns:
            Tuple[str, list]: (url, files_list) for the multipart POST request
        9video create character is not supported for this providerNotImplementedError)r   rl   rm   r<   r9   r7   s         r   (transform_video_create_character_requestz8BaseVideoConfig.transform_video_create_character_request  s     "G
 	
r   c                     t        d      )Nro   rp   rO   s      r   )transform_video_create_character_responsez9BaseVideoConfig.transform_video_create_character_response!  s    
 "G
 	
r   character_idc                     t        d      )z
        Transform the video get character request into a URL and params.

        Returns:
            Tuple[str, Dict]: (url, params) for the GET request
        6video get character is not supported for this providerrp   )r   ru   r<   r9   r7   s        r   %transform_video_get_character_requestz5BaseVideoConfig.transform_video_get_character_request*  s     "D
 	
r   c                     t        d      )Nrw   rp   rO   s      r   &transform_video_get_character_responsez6BaseVideoConfig.transform_video_get_character_response;  s    
 "D
 	
r   c                     t        d      )z
        Transform the video edit request into a URL and JSON data.

        Returns:
            Tuple[str, Dict]: (url, data) for the POST request
        -video edit is not supported for this providerrp   )r   r@   rJ   r<   r9   r7   rT   s          r   transform_video_edit_requestz,BaseVideoConfig.transform_video_edit_requestD  s     ""QRRr   c                     t        d      )Nr|   rp   rX   s       r   transform_video_edit_responsez-BaseVideoConfig.transform_video_edit_responseU  s     ""QRRr   secondsc                     t        d      )z
        Transform the video extension request into a URL and JSON data.

        Returns:
            Tuple[str, Dict]: (url, data) for the POST request
        2video extension is not supported for this providerrp   )r   r@   rJ   r   r<   r9   r7   rT   s           r   !transform_video_extension_requestz1BaseVideoConfig.transform_video_extension_request]  s      ""VWWr   c                     t        d      )Nr   rp   rX   s       r   "transform_video_extension_responsez2BaseVideoConfig.transform_video_extension_responseo  s     ""VWWr   error_messagestatus_codec                 $    ddl m}  ||||      )Nr   r   )r   messager7   )chat.transformationr   )r   r   r   r7   r   s        r   get_error_classzBaseVideoConfig.get_error_classw  s     	;#!
 	
r   )NNr   )NNNN)6__name__
__module____qualname__r   r(   r-   r   strlistr1   r   boolr   r5   dictr   r   r;   r?   r	   r   rC   httpxResponseLiteLLMLoggingObjr   rI   rM   bytesrP   rS   r   rV   rY   intr_   ra   rd   rg   ri   rk   rr   r   rt   rx   rz   r}   r   r   r   r
   Headersr   r   r   r   r   r   r      s    
 
$     &F  	
 
  
 "&9=  #	
 !!56 
   3- 	
 
 " 		 	 		
 /3	 -	 	 
t\3&	'	 	  .2'+ nn '	
 &c] tn 
   "&  -	
  # 
sDy	   nn ' 
	 
nn
 '
 
	
2  04  	
 -  T#s(^, 
sDy	 " 
 .2	nn ' &c]	
 
    $##04 - 	
 } } } d38n- 
sDy	 $ 
 .2	nn ' &c]	
 
c3h    -	
  
sDy	  nn ' 
	    -	
  
sDy	  
 .2	nn ' &c]	
 
 

 
 	

 -
 
 
sDy	
$
nn
 '
 
	


 
 -	

 
 
sDy	
"
nn
 '
 
	
  04SS S 	S
 -S S T#s(^,S 
sDy	S* .2	SnnS 'S &c]	S
 
S  04XX X 	X
 X -X X T#s(^,X 
sDy	X, .2	XnnX 'X &c]	X
 
X	
 	
/2	
=B4CV=W	
		
r   r   )r%   abcr   r   typingr   r   r   r   r	   r
   r   httpx._typesr   litellm.types.responses.mainlitellm.types.routerr   litellm.types.videos.mainr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjr   _CharacterObjectr   _VideoObjectr   r   _BaseLLMExceptionr   r   r   r   r   <module>r      si     # C C  % * 5 FXMEK*(K&OKOb
c b
r   