
    h                     \    d dl Z d dlZd dlmZ d Zd Zdedededefd	Zdedededefd
Z	y)    N)verbose_proxy_loggerc                    	 dd l }ddlm} ddlm} |j                         }|j                  d|j                  |j                  |j                        }t        j                  d| d|         |j                  | |      }t        j                  d	|        |d
   j                         j                  d      }t        j                  d       t        j                   |      }	|	S # t"        $ r+}
t        j$                  dt'        |
              Y d }
~
y d }
~
wt(        $ r+}
t        j$                  dt'        |
              Y d }
~
y d }
~
ww xY w)Nr   Credentials) bedrock_converse_chat_completions3aws_access_key_idaws_secret_access_keyaws_session_tokenzRetrieving  from S3 bucket: BucketKeyz
Response: Bodyutf-8zFile contents retrieved from S3ImportError:  Error retrieving file contents: )boto3botocore.credentialsr   litellm.mainr   get_credentialsclient
access_key
secret_keytokenr   debug
get_objectreaddecodeyaml	safe_loadImportErrorerrorstr	Exception)bucket_name
object_keyr   r   r   credentials	s3_clientresponsefile_contentsconfiges              h/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/common_utils/load_config_utils.pyget_file_contents_from_s3r0      s2   "4A#C#S#S#ULL)44"-"8"8)//	 ! 
	 	""*%6{mD	
 ''{
'K""Zz#:; !(--/66w?""#DE . ""]3q6(#;< ""%Ec!fX#NOs$   C&C) )	E2!DE$!E

Ec                 >  K   	 ddl m}  ||       }|j                  |       d {   }|t        d|       |j	                  d      }t        j                  |      }|S 7 <# t        $ r+}t        j                  dt        |              Y d }~y d }~ww xY ww)Nr   GCSBucketLoggerr'   File contents are None for r   r   )
*litellm.integrations.gcs_bucket.gcs_bucketr3   download_gcs_objectr&   r    r!   r"   r   r$   r%   )r'   r(   r3   
gcs_bucketr,   r-   r.   s          r/   !get_config_file_contents_from_gcsr9   .   s     N$#

 )<<ZHH 9*FGG%,,W5. I  ""%Ec!fX#NOs>   B#A& A$;A& #B$A& &	B/!BBBBr'   r(   local_file_pathreturnc                 X   	 ddl }ddlm} ddlm}  |       }|j                         }|j                  d|j                  |j                  |j                        }t        j                  d| d|         |j                  | |	      }	|	d
   j                         j                  d      }
t        j                  d|
        t        j                   t        j"                  j%                  |      d       t'        |d      5 }|j)                  |
       ddd       t        j                  d|        y# 1 sw Y   "xY w# t*        $ r+}t        j,                  dt/        |              Y d}~yd}~wt0        $ r+}t        j2                  dt/        |              Y d}~yd}~ww xY w)aM  
    Download a Python file from S3 and save it to local filesystem.
    
    Args:
        bucket_name (str): S3 bucket name
        object_key (str): S3 object key (file path in bucket)
        local_file_path (str): Local path where file should be saved
        
    Returns:
        bool: True if successful, False otherwise
    r   Nr   )
BaseAWSLLMr   r	   zDownloading Python file r   r   r   r   zFile contents: Texist_okw'Python file downloaded successfully to r   FzError downloading Python file: )r   r   r   !litellm.llms.bedrock.base_aws_llmr=   r   r   r   r   r   r   r   r   r   r    osmakedirspathdirnameopenwriter#   r$   r%   r&   	exception)r'   r(   r:   r   r   r=   base_aws_llmr)   r*   r+   r,   fr.   s                r/   download_python_file_from_s3rL   C   s~    '4@!|#/#?#?#ALL)44"-"8"8)//	 ! 
	 	""&zl2CK=Q	
 ''{
'K !(--/66w?""_]O#DE 	BGGOOO4tD /3' 	#1GGM"	# 	""%L_L]#^_		# 	#  ""]3q6(#;< &&)HQ'QRs<   DE D7 E 7E <E 	F)!E22F)>!F$$F)c                   K   	 ddl m}  ||       }|j                  |       d{   }|t        d|       |j	                  d      }t        j                  t
        j                  j                  |      d       t        |d	      5 }|j                  |       ddd       t        j                  d
|        y7 # 1 sw Y   $xY w# t        $ r+}t        j                  dt        |              Y d}~yd}~ww xY ww)aP  
    Download a Python file from GCS and save it to local filesystem.
    
    Args:
        bucket_name (str): GCS bucket name
        object_key (str): GCS object key (file path in bucket)
        local_file_path (str): Local path where file should be saved
        
    Returns:
        bool: True if successful, False otherwise
    r   r2   r4   Nr5   r   Tr>   r@   rA   z(Error downloading Python file from GCS: F)r6   r3   r7   r&   r    rC   rD   rE   rF   rG   rH   r   r   rI   r%   )r'   r(   r:   r3   r8   r,   rK   r.   s           r/   download_python_file_from_gcsrN   }   s      N$#

 )<<ZHH 9*FGG &,,W5 	BGGOOO4tD /3' 	#1GGM"	# 	""%L_L]#^_ I	# 	#  &&)QRUVWRXQY'Z[sW   D#C C A%C C C ?D C CC 	D!C=8D=DD)
rC   r!   litellm._loggingr   r0   r9   r%   boolrL   rN        r/   <module>rS      sl    	  1#L*777 7 
	7t))) ) 
	)rR   