
    3i                        S r SSKJr  SSKrSSKJr  SSKJr  SSKJr  \R                  (       a  SSK
Jr  SS	KJr  OS=rrSS
KJr  SS/r " S S5      r " S S5      rS rSS jrg)z
Adapt s3 to package_streaming
    )annotationsN)closing)Any   )package_streaming)Client)GetObjectOutputTypeDef)conda_reader_for_urlstream_conda_infoconda_reader_for_s3c                  N    \ rS rSrS	S jrS r\S 5       r\S 5       rS
S jr	Sr
g)ResponseFacade   c                $    Xl         US   U l        g )NBody)responseraw)selfr   s     :lib/python3.13/site-packages/conda_package_streaming/s3.py__init__ResponseFacade.__init__   s      (    c                    g N r   s    r   raise_for_statusResponseFacade.raise_for_status   s    r   c                &    U R                   S   S   $ )NResponseMetadataHTTPStatusCoder   r   s    r   status_codeResponseFacade.status_code!   s    }}/01ABBr   c                &    U R                   S   S   $ )Nr    HTTPHeadersr"   r   s    r   headersResponseFacade.headers%   s     }}/0??r   c                (   ^ ^ [        UU 4S jS5      $ )Nc                 :   > TR                   R                  T 5      $ r   )r   read)nr   s   r   <lambda>-ResponseFacade.iter_content.<locals>.<lambda>+   s    DHHMM!,r   r   )iter)r   r,   s   ``r   iter_contentResponseFacade.iter_content*   s    ,c22r   )r   r   N)r   r	   )r,   int)__name__
__module____qualname____firstlineno__r   r   propertyr#   r'   r0   __static_attributes__r   r   r   r   r      s=    ) C C @ @3r   r   c                  6    \ rS rSrSrS	S jrSSS.S
S jjrSrg)SessionFacade.   zM
Make s3 client look just enough like a requests.session for LazyZipOverHTTP
c                (    Xl         X l        X0l        g r   )clientbucketkey)r   r=   r>   r?   s       r   r   SessionFacade.__init__3   s    r   NT)r'   streamc                   U(       a9  SU;   a3  U R                   R                  U R                  U R                  US   S9nO.U R                   R                  U R                  U R                  S9n[	        U5      $ )NRange)BucketKeyrC   )rD   rE   )r=   
get_objectr>   r?   r   )r   urlr'   rA   r   s        r   getSessionFacade.get8   sg    w'){{--{{8H . H {{--T[[dhh-OHh''r   )r>   r=   r?   r=   r   r>   strr?   rK   )r'   zdict | None)r3   r4   r5   r6   __doc__r   rH   r8   r   r   r   r:   r:   .   s    
 26d ( (r   r:   c              #     #    [        XU5      u  p4[        U5         [        R                  " X45       Sh  vN   SSS5        g N! , (       d  f       g= f7f)zW
Yield (tar, member) for conda package.

Just "info/" for .conda, all members for tar.
N)r   r   r   r   )r=   r>   r?   filenamecondas        r   r   r   B   sA      *&#>OH	$66xGGG 
G 
s+   AAAA	AA
AAc                0    [        XU5      n[        X#5      $ )z>
Return (name, file_like) suitable for package_streaming APIs
)r:   r
   )r=   r>   r?   sessions       r   r   r   N   s     !5G--r   rJ   )rL   
__future__r   typing
contextlibr   r    r   TYPE_CHECKINGmypy_boto3_s3r   mypy_boto3_s3.type_defsr	   rG   r
   __all__r   r:   r   r   r   r   r   <module>rZ      sb    #    	$>&**F# % 5
63 3,( ((	H.r   