
    =2g
                        d Z ddlZddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ  ej                  e      Z ej                         Zdej"                  d<    ed	d
h      ZeefdZefdZefdZedk(  rYddlZ ej.                  ej0                          eej2                  d    eej2                  d         j5                                yy)ac  
Fetch metadata from remote .conda or .tar.bz2 package.

Try to fetch less than the whole file if possible.

This module should only be used to make *partial* reads against a remote
package, typically just the ``info`` portion. If a full ``.conda`` format
package is needed, it is more efficient to download locally first and then use
the file-based API.
    N)Path   )package_streaming)	LazyCondazconda-package-streaming/0.1.0z
User-Agentzinfo/index.jsonzinfo/recipe/meta.yamlc                     t        |      }t        | |      }|D ]S  \  }}|j                  |v r-|j                  ||       |j	                  |j                         |rD|j                          U y)z
    Extract info/index.json and info/recipe/meta.yaml from url to destdir; close
    url as soon as those files are found.
    sessionN)setstream_conda_infonameextractremoveclose)urldestdir	checklistr	   streamtarmembers          ;lib/python3.12/site-packages/conda_package_streaming/url.pyextract_conda_infor   !   s_    
 IIsG4FV;;)#KK(V[[)LLN     c              #   (  K   t        | |      \  }}	 t        j                  ||      E d{    t        |d      r|j	                          |j                          y7 1# t        |d      r|j	                          |j                          w xY ww)zi
    Yield (tar, member) for conda package at url

    Just "info/" for .conda, all members for tar.
    r   Nrelease_conn)conda_reader_for_urlr   r   hasattrr   r   )r   r	   filenamecondas       r   r   r   1   s|      +3@OHe$66xGGG5.)   	H5.)  s+   BA! AA! -BA! !.BBc                    t         j                  j                  |       }|j                  j	                  dd      ^ }}|j                  d      r0|dt        d        }t        | |      }|j                  |       ||fS |j                  d      r&|j                  | dddi	      }|j                  }||fS t        d
|       )zF
    Return (name, file_like) suitable for package_streaming APIs
    /r   z.condaNz.tar.bz2T
Connectionr   )r   headerszUnsupported extension %s)urllibparseurlparsepathrsplitendswithlenr   prefetchgetraw
ValueError)r   r	   
parsed_url_r   file_idr   responses           r   r   r   C   s     &&s+J??))#q1LQ"+c(m^,#w'w U? 
		:	&;;s4,9P;Q U? 3S99r   __main__)level   )__doc__loggingsysurllib.parser#   pathlibr   requests r   
lazy_wheelr   	getLogger__name__logSessionr	   r"   	frozensetMETADATA_CHECKLISTr   r   r   basicConfigDEBUGargvabsolute r   r   <module>rH      s   	  
     "g!
(


 ?   13JKL  0B7   $+ $ '. $ zGgmm,sxx{D!$5$>$>$@A	 r   