
    )#h              
       t    d dl m Z  d dlmZmZ d dlZd dlmZmZ d dlm	Z	  G d d      Z
ded	ed
e dedef
dZy)    )datetime)OptionalcastN)print_verboseverbose_logger)StandardLoggingPayloadc                   6    e Zd Z	 	 	 	 	 	 	 	 	 	 	 ddZd Zd Zy)S3LoggerNc                 P   dd l }	 t        j                  dt        j                          d}t        j                  t        j                  j                         D ]O  \  }}t        |      t        u s|j                  d      s*t        j                  |      t        j                  |<   Q t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  dd	      }t        j                  j                  d
      }t        j                  j                  d      }t        j                  j                  d      }t        j                  j                  d      }	t        j                  j                  d      }
t        j                  j                  d      }t        j                  j                  d      }t        t        j                  j                  dd            }|| _        || _        || _        t        j                  d|         |j                  	 d|||||||	|
|d	|| _        y # t"        $ r}t%        dt        |              |d }~ww xY w)Nr   z'in init s3 logger - s3_callback_params Fzos.environ/s3_bucket_names3_region_names3_api_version
s3_use_sslT	s3_verifys3_endpoint_urls3_aws_access_key_ids3_aws_secret_access_keys3_aws_session_token	s3_configs3_paths3_use_team_prefixzs3 logger using endpoint url )	region_nameendpoint_urlapi_versionuse_sslverifyaws_access_key_idaws_secret_access_keyaws_session_tokenconfigz Got exception on init s3 client )s3)boto3r   debuglitellms3_callback_paramsitemstypestr
startswith
get_secretgetboolr   bucket_namer   client	s3_client	Exceptionr   )selfr   r   r   r   r   r   r   r   r   r   r   kwargsr"   r   keyvaluees                     T/var/www/html/sandstorm/venv/lib/python3.12/site-packages/litellm/integrations/s3.py__init__zS3Logger.__init__   s_    	6	  9':T:T9UV "'))5")"<"<"B"B"D TJCE{c)e.>.>}.M:A:L:LU:S2237T ")!;!;!?!?@P!Q!(!;!;!?!?@P!Q!(!;!;!?!?@P!Q$77;;L$O
#66::;G	")"<"<"@"@AR"S'.'A'A'E'E*($ ,3+E+E+I+I.,( (/'A'A'E'E*($ $66::;G	!4488C%)..223GO&" '9D#-D"DL  #@@Q!RS)U\\*,*" "6&>"6  DN  	<SVHEFG	s%   A.I> 5I> G6I> >	J%J  J%c                 6   K   | j                  |||||       y w)N)	log_event)r1   r2   response_obj
start_timeend_timer   s         r6   _async_log_eventzS3Logger._async_log_eventW   s      	v|Z=Qs   c           
         	 t        j                  d|        |j                  di       }|j                  di       xs i }i }t        |t              r"|j                         D ]  \  }	}
|	dv r|
||	<    t        t        t           |j                  dd             }|y |d   j                  d      }d}t        j                  r| j                  r|| d}t        j                  j                  ||      xs d}t        t        t        t           | j                         xs d|||      }d	|j#                  d
      z   dz   |d   z   dz   }dd l}|j'                  |      } |d|        | j(                  j+                  | j,                  ||ddd| dd      } |dt        |               |d|        |S # t.        $ r+}t        j0                  dt        |              Y d }~y d }~ww xY w)Nz/s3 Logging - Enters logging function for model litellm_paramsmetadata)headersendpointcaching_groupsprevious_modelsstandard_logging_objectuser_api_key_team_alias /ztime-z%Y-%m-%dT%H-%M-%S-%f_id.jsonr   z
s3 Logger - Logging payload = zapplication/jsonenzinline; filename=""z0private, immutable, max-age=31536000, s-maxage=0)BucketKeyBodyContentTypeContentLanguageContentDispositionCacheControlzResponse from s3:z*s3 Layer Logging - final response object: zs3 Layer Error - )r   r#   r+   
isinstancedictr&   r   r   r   r$   enable_preview_featuresr   utilsget_logging_idget_s3_object_keyr(   r   strftimejsondumpsr/   
put_objectr-   r0   	exception)r1   r2   r:   r;   r<   r   r?   r@   clean_metadatar3   r4   payload
team_aliasteam_alias_prefixs3_file_names3_object_keys3_object_download_filenamer\   payload_strresponser5   s                        r6   r9   zS3Logger.log_event\   sB   V	  A&J $ZZ(8"=N"":r28b   N(D)"*.."2 
4JC   !.3s+
4 9=/0

4d;9G
  ,001JKJ "//++*'1l!$4!"==77
GLRPRL-Xc]DLL17R!	M %%&<=> $-  	 ( **W-K<[MJK~~00''! . $%78S7TTU#VO 1 H -c(m_=>F|nUVO 	$$'8Q%AB	s   BF?  DF? ?	G3!G..G3)NNNNTNNNNNN)__name__
__module____qualname__r7   r=   r9        r6   r
   r
      s8     !!%!GRR
Wrm   r
   r   rc   r;   rd   returnc                 v    | r| j                  d      dz   nd|z   |j                  d      z   dz   |z   }|dz  }|S )NrH   rG   z%Y-%m-%drK   )rstripr[   )r   rc   r;   rd   re   s        r6   rZ   rZ      s_     '.	s	"2
	


j
)	* 	 		  WMrm   )r   typingr   r   r$   litellm._loggingr   r   litellm.types.utilsr   r
   r(   rZ   rl   rm   r6   <module>rt      sV     !  : 6g gT  	
 	rm   