Ë
    CØïió   ã                   óx   — d dl Z d dlZd dlmZ d dlZd dlZd dlmZmZmZ d dl	m
Z
mZ d dlmZ  G d„ dee
«      Zy)é    N)Úcast)Úapi_requestorÚutilÚerror)ÚDeletableAPIResourceÚListableAPIResource)ÚApiTypec                   ó  — e Zd Z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„«       Z
ed	„ «       Ze	 	 	 	 	 dd
„«       Ze	 	 	 	 	 dd„«       Zedd„«       Zy)ÚFileÚfilesNc
                 ó.  — t        j                  ||xs t        j                  |||¬«      }
| j	                  ||«      \  }}|t
        j                  t
        j                  fv r%| j                  «       }d| j                  ›|›d|›�}n<|t
        j                  k(  r| j                  «       }nt        j                  d|z  «      ‚dd |ffg}|�|j                  dd |ff«       |	�|j                  d|	|dff«       n|j                  dd|dff«       |
||fS )	N©Úapi_baseÚapi_typeÚapi_versionÚorganizationú/z?api-version=úUnsupported API type %sÚpurposeÚmodelÚfilezapplication/octet-stream)r   ÚAPIRequestorÚopenair   Ú_get_api_type_and_versionr	   ÚAZUREÚAZURE_ADÚ	class_urlÚazure_api_prefixÚOPEN_AIr   ÚInvalidAPITypeÚappend)Úclsr   r   r   Úapi_keyr   r   r   r   Úuser_provided_filenameÚ	requestorÚtyped_api_typeÚbaseÚurlr   s                  úS/var/www/html/aiagents/fe/lib/python3.12/site-packages/openai/api_resources/file.pyÚ__prepare_file_createzFile.__prepare_file_create   s%  € ô "×.Ñ.ØØÒ0¤§¡ØØ#Ø%ô
ˆ	ð '*×&CÑ&CØ�kó'
Ñ#ˆ˜ð œgŸm™m¬W×-=Ñ-=Ð>Ñ>Ø—=‘=“?‰DØ,/×,@Ò,@Â$ÉÐT‰CØœwŸ™Ò.Ø—-‘-“/‰Cä×&Ñ&Ð'@À8Ñ'KÓLÐLð ˜d G˜_Ð-Ð.ˆØÐØ�L‰L˜' D¨% =Ð1Ô2Ø!Ð-Ø�L‰LØÐ0°$Ð8RÐSÐTõð �L‰L˜& 6¨4Ð1KÐ"LÐMÔNà˜#˜uÐ$Ð$ó    c
                 óœ   — | j                  |||||||||	«	      \  }
}}|
j                  d||¬«      \  }}}t        j                  ||||«      S ©NÚpost)r   )Ú_File__prepare_file_createÚrequestr   Úconvert_to_openai_object©r"   r   r   r   r#   r   r   r   r   r$   r%   r(   r   ÚresponseÚ_s                  r)   ÚcreatezFile.create=   sr   € ð !$× 9Ñ 9ØØØØØØØØØ"ó
!
Ñˆ	�3˜ð  )×0Ñ0°¸ÀEÐ0ÓJÑˆ�!�WÜ×,Ñ,Ø�g˜{¨Ló
ð 	
r+   c
              ƒ   ó¸   K  — | j                  |||||||||	«	      \  }
}}|
j                  d||¬«      ƒ d {  –—† \  }}}t        j                  ||||«      S 7 Œ ­wr-   )r/   Úarequestr   r1   r2   s                  r)   ÚacreatezFile.acreateZ   s   è ø€ ð !$× 9Ñ 9ØØØØØØØØØ"ó
!
Ñˆ	�3˜ð &/×%7Ñ%7¸ÀÈ5Ð%7Ó%Q×QÑˆ�!�WÜ×,Ñ,Ø�g˜{¨Ló
ð 	
ð  Rús   ‚5A·A¸!Ac                 ó¨  — t        j                  ||xs t        j                  |||¬«      }| j	                  ||«      \  }}|t
        j                  t
        j                  fv r+| j                  «       }	d| j                  › |	› d|› d|› �}
||
fS |t
        j                  k(  r| j                  «       › d|› d�}
||
fS t        j                  d|z  «      ‚)Nr   r   z/content?api-version=z/contentr   )r   r   r   r   r   r	   r   r   r   r   r   r   r    )r"   Úidr#   r   r   r   r   r%   r&   r'   r(   s              r)   Ú__prepare_file_downloadzFile.__prepare_file_downloadw   sè   € ô "×.Ñ.ØØÒ0¤§¡ØØ#Ø%ô
ˆ	ð '*×&CÑ&CØ�kó'
Ñ#ˆ˜ð œgŸm™m¬W×-=Ñ-=Ð>Ñ>Ø—=‘=“?ˆDØ�c×*Ñ*Ð+¨D¨6°°2°$Ð6KÈKÈ=ÐYˆCð ˜#ˆ~Ðð œwŸ™Ò.Ø—]‘]“_Ð% Q r d¨(Ð3ˆCð ˜#ˆ~Ðô ×&Ñ&Ð'@À8Ñ'KÓLÐLr+   c           
      ó\  — | j                  ||||||«      \  }}|j                  d|«      }	d|	j                  cxk  rdk  san |j                  |	j                  |	j                  t        j                  t        t        |	j                  «      «      |	j                  d¬«      ‚|	j                  S ©NÚgetéÈ   i,  F)Ústream_error)
Ú_File__prepare_file_downloadÚrequest_rawÚstatus_codeÚhandle_error_responseÚcontentÚjsonÚloadsr   ÚbytesÚheaders)
r"   r:   r#   r   r   r   r   r%   r(   Úresults
             r)   ÚdownloadzFile.download–   s¡   € ð ×4Ñ4Ø�˜ 8¨[¸,ó
‰ˆ	�3ð ×&Ñ& u¨cÓ2ˆØ�f×(Ñ(Ô.¨3Ô.Ø×1Ñ1Ø—‘Ø×"Ñ"Ü—
‘
œ4¤ v§~¡~Ó6Ó7Ø—‘Ø"ð 2ó ð ð �~‰~Ðr+   c              ƒ   ó  K  — | j                  ||||||«      \  }}t        j                  «       4 ƒd {  –—† }	|j                  d||	«      ƒ d {  –—† }
d|
j                  cxk  rdk  san |j                  |
j                  |
j                  t        j                  t        t        |
j                  «      «      |
j                  d¬«      ‚|
j                  cd d d «      ƒd {  –—†  S 7 Œ²7 Œ™7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­wr=   )rA   r   Úaiohttp_sessionÚarequest_rawÚstatusrD   rE   rF   rG   r   rH   rI   )r"   r:   r#   r   r   r   r   r%   r(   ÚsessionrJ   s              r)   Ú	adownloadzFile.adownload¯   sä   è ø€ ð ×4Ñ4Ø�˜ 8¨[¸,ó
‰ˆ	�3ô !×0Ñ0Ó2÷ 
	"ð 
	"°gØ$×1Ñ1°%¸¸gÓF×FˆFØ˜&Ÿ-™-Ô-¨#Ô-Ø×5Ñ5Ø—N‘NØ—M‘MÜ—J‘Jœt¤E¨6¯>©>Ó:Ó;Ø—N‘NØ!&ð 6ó ð ð —>‘>÷
	"÷ 
	"ò 
	"øØFøð
	"ø÷ 
	"÷ 
	"ñ 
	"üsW   ‚2D´C'µD¸C-ÁC)ÁBC-ÃDÃ!C+Ã"DÃ)C-Ã+DÃ-C?Ã3C6Ã4C?Ã;Dc                 ó   — g }t         j                  j                  |«      }|D ]g  }|d   |k7  rŒt         j                  j                  |d   «      }||k7  rŒ4d|v r	|d   |k7  rŒAd|v rt        |d   «      |k7  rŒW|j	                  |«       Œi |S )Nr   ÚfilenamerH   Úsize)ÚosÚpathÚbasenameÚintr!   )	r"   ÚnamerH   Ú	all_filesr   Úmatching_filesrW   ÚfÚfile_basenames	            r)   Ú__find_matching_fileszFile.__find_matching_filesÉ   s    € àˆÜ—7‘7×#Ñ# DÓ)ˆØò 
	%ˆAØ�‰|˜wÒ&ØÜŸG™G×,Ñ,¨Q¨z©]Ó;ˆMØ Ò(ØØ˜!‰|  '¡
¨eÒ 3ØØ˜‰{œs 1 V¡9›~°Ò6ØØ×!Ñ! !Õ$ð
	%ð Ðr+   c	                 óš   — | j                  ||xs t        j                  |||¬«      j                  dg «      }	| j	                  |||	|«      S )úBFind already uploaded files with the same name, size, and purpose.©r#   r   r   r   r   Údata)Úlistr   r   r>   Ú_File__find_matching_files©
r"   rY   rH   r   r#   r   r   r   r   rZ   s
             r)   Úfind_matching_fileszFile.find_matching_filesÚ   sX   € ð —H‘HØØÒ0¤§¡ØØ#Ø%ð ó 
÷ ‰#ˆf�b‹/ð 	ð ×(Ñ(¨¨u°iÀÓIÐIr+   c	              ƒ   ó¶   K  — | j                  ||xs t        j                  |||¬«      ƒ d{  –—† j                  dg «      }	| j	                  |||	|«      S 7 Œ(­w)r`   ra   Nrb   )Úalistr   r   r>   rd   re   s
             r)   Úafind_matching_fileszFile.afind_matching_filesð   sf   è ø€ ð —)‘)ØØ!Ò4¤V§_¡_Ø!Ø'Ø)ð ó ÷ ÷ ‰#ˆf�b‹/ð 	ð ×(Ñ(¨¨u°iÀÓIÐIðús   ‚,A®A¯)Ac                 óŒ  — g d¢}t        j                   «       }| j                  |¬«      }|j                  |vr�| j                  |¬«      }t        j                  d«       t        j                   «       |z
  |kD  r1t        j
                  j                  dj                  ||¬«      ¬«      ‚|j                  |vrŒ�|j                  S )N)Ú	processedr   Údeleted)r:   g      @zYGiving up on waiting for file {id} to finish processing after {max_wait_seconds} seconds.)r:   Úmax_wait_seconds)Úmessage)ÚtimeÚretrieverO   Úsleepr   r   ÚOpenAIErrorÚformat)r"   r:   rm   ÚTERMINAL_STATESÚstartr   s         r)   Úwait_for_processingzFile.wait_for_processing  s­   € â;ˆä—	‘	“ˆØ�|‰|˜rˆ|Ó"ˆØ�k‰k Ñ0Ø—<‘< 2�<Ó&ˆDÜ�J‰J�sŒOÜ�y‰y‹{˜UÑ"Ð%5Ò5Ü—l‘l×.Ñ.Øw×~Ñ~ØÐ0@ð ó ð /ó ð ð	 �k‰k Ò0ð �{‰{Ðr+   )NNNNNNN)NNNNN)i  )Ú__name__Ú
__module__Ú__qualname__ÚOBJECT_NAMEÚclassmethodr/   r5   r8   rA   rK   rQ   rd   rf   ri   rv   © r+   r)   r   r      sl  „ Ø€Kàð
 ØØØØØØ#ò+%ó ð+%ðZ ð
 ØØØØØØ#ò
ó ð
ð8 ð
 ØØØØØØ#ò
ó ð
ð8 ð ØØØØòó ðð< ð ØØØØòó ðð0 ð ØØØØò"ó ð"ð2 ñó ðð  ð ØØØØòJó ðJð* ð ØØØØòJó ðJð. òó ñr+   r   )rF   rU   Útypingr   ro   r   r   r   r   Úopenai.api_resources.abstractr   r   Úopenai.utilr	   r   r|   r+   r)   ú<module>r€      s2   ðÛ Û 	Ý Û ã ß -Ñ -ß SÝ ôKÐÐ 4õ Kr+   