+
    :1j                    4   R t ^ RIHt ^ RIHtHt ^ RIHt ^ RIH	t	 ^RI
Ht ^RIHt ^RIHt ^RIHt ^R	IHtHtHt ]	'       d   ^ R
IHt ^ RIHt ^RIHt ]! ]4      t]P8                  ! RRR]! ]! R4      ]! RR7      R7      RR7        ! R R]4      tR# )zADefines S3 transport adapter for CondaSession (requests.Session).)annotations)LoggerAdapter	getLogger)SpooledTemporaryFile)TYPE_CHECKING)ensure_binary)json)url_to_s3_info)
deprecated)BaseAdapterCaseInsensitiveDictResponse)Callable)IO)PreparedRequestz26.9z27.3	stderrlogzconda.stderrlog
)
terminator)extraz/Use `conda.gateways.streams.stderrlog` instead.)addendumc                  N    ] tR t^!tRR R lltR tRR R lltR R ltR	 tR
t	R# )	S3AdapterNc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )   requestr   streambooltimeoutz7None | float | tuple[float, float] | tuple[float, None]verifyz
bool | strcertz4None | bytes | str | tuple[bytes | str, bytes | str]proxieszdict[str, str] | Nonereturnr    )formats   "Elib/python3.14/site-packages/conda/gateways/connection/adapters/s3.py__annotate__S3Adapter.__annotate__"   sR         I	
  C ' 
    c                	    \        4       p^Vn        VP                  Vn         V P                  Wq4      #   \         d    ^RIHp T! R4       RTn        Tu # i ; i)   )r   z
Error: boto3 is required for S3 channels. Please install with `conda install boto3`
Make sure to run `conda deactivate` if you are in a conda environment.
  )r   status_codeurl_send_boto3ImportErrorgateways.streamsr   )	selfr   r   r   r   r   r    respr   s	   &&&&&&&  r$   sendS3Adapter.send"   sb     z;;	##D22 
	60  #DK
	s   5 "AAc                	    R # Nr"   )r0   s   &r$   closeS3Adapter.close=   s    r'   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r,   strfileobjz	IO[bytes]progress_callbackzCallable[[float], None] | Nonesizez
int | Noner!   Noner"   )r#   s   "r$   r%   r&   @   s<     : :: : :	:
 : 
:r'   c                  aaa ^RI Hp  ^ RIHp ^ RIHpHp \        T4      w  rT! 4       pTP                  R4      pTP                  YR,          4      pRpS'       d   S'       d   ^ .oTTT3R lpMS'       d   \        P                  R	4        TP                  Y.R
7       R#   \         d
    T! R4      hi ; i  Yx3 d   pT! RT\        T4      R7      ThRp?ii ; i)a7  
Download S3 object directly to file object using boto3's optimized
download_fileobj, which handles multipart downloads and retries.

This avoids the extra copy that occurs when using send() which buffers
to a SpooledTemporaryFile first.

:param url: S3 URL (s3://bucket/key)
:param fileobj: File object to write to (must be opened in binary write mode)
:param progress_callback: Optional callback(fraction) where fraction is 0.0-1.0
:param size: Optional content length (required for progress reporting)
:raises CondaError: On S3 errors or if boto3 is not installed
)
CondaErrorSessionzTboto3 is required for S3 channels. Please install with `conda install -n base boto3`BotoCoreErrorClientErrors3   NNNc                ^   < S^ ;;,          V ,          uu&   S! S^ ,          S,          4       R# )    Nr"   )bytes_transferred
downloadedr;   r<   s   &r$   boto_callback0S3Adapter.direct_download.<locals>.boto_callbackk   s#    1!22!*Q-$"67r'   zJProgress callback provided but size unknown; progress will not be reported)Callbackz5Error downloading file from S3: %(url)s
%(exception)s)r,   	exception)
exceptionsr?   boto3.sessionrA   r.   botocore.exceptionsrC   rD   r	   resourceObjectlogdebugdownload_fileobjrepr)r0   r,   r:   r;   r<   r?   rA   rC   rD   bucket_name
key_stringsessionrE   keyrL   erK   s   &&&ff           @r$   direct_downloadS3Adapter.direct_download@   s    ( 	.	- 	C"0"5 )d#ii^4J8 8 II\	   A9  	D 	: + 	Hq' 		s#   B& B= &B:=CCCc               $    V ^8  d   QhRRRRRR/# )r   r1   r   r   r   r!   r"   )r#   s   "r$   r%   r&   |   s!     ( ( (? (x (r'   c           	     	  a ^ RI Hp ^ RIHpHp \        VP                  4      w  rgV! 4       pVP                  R4      p	V	P                  WgR,          4      p
 V
P                  4       pTR,          R,          p\        RTP                  RR4      RTR,          RTR,          /4      Tn        T P                  T
P"                  4      Tn        TP                  P                  Tn        T#   YE3 dd   pRTn
        RRRTP                  R	\        T4      /oT P                  T3R
 l4      Tn        TP                  P                  Tn        Tu Rp?# Rp?ii ; i)rI   r@   rB   rE   rF   r*   errorzerror downloading file from s3pathrO   c                `   < V P                  \        \        P                  ! S4      4      4      # r5   )writer   r   dumps)xmessages   &r$   <lambda>'S3Adapter._send_boto3.<locals>.<lambda>   s    !''-

70C"DEr'   NResponseMetadataHTTPHeaderszContent-Typezcontent-typez
text/plainzContent-Lengthzcontent-lengthzLast-Modifiedzlast-modified)rQ   rA   rR   rC   rD   r	   r,   rS   rT   getr+   rX   _write_tempfilerawr6   r   headersrW   )r0   r1   r   rA   rC   rD   rY   rZ   r[   rE   r\   responser]   key_headersrh   s   &&&           @r$   r-   S3Adapter._send_boto3|   s4   )B"0"= )d#ii^4	wwyH 12=A* M +.>"?_!=
 ''(<(<=XX^^
3 + 	"D9T!WG
 ++EDH DJK	s   C) )E1AE	EEc                	L    \        4       pV! V4       VP                  ^ 4       V# )rI   )r   seek)r0   writer_callablefhs   && r$   rn   S3Adapter._write_tempfile   s"    !#

	r'   r"   )FNTNN)NN)
__name__
__module____qualname____firstlineno__r2   r6   r^   r-   rn   __static_attributes__r"   r'   r$   r   r   !   s    6:x(Tr'   r   N)__doc__
__future__r   loggingr   r   tempfiler   typingr   common.compatr   common.serializer   
common.urlr	   deprecationsr
    r   r   r   collections.abcr   r   r   ry   rU   constantdictr   r"   r'   r$   <module>r      s|    H " , )   + % ) ' 9 9(" 
  

)-.dd6KL>I Ir'   