+
    3jw                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^RIHtHt RR.t]! ]R	4      tRR
 R lltRR ltR# )zh
Extract package to directory, with checks against tar members extracting outside
the target directory.
)annotationsN)	Generator)ELOOP)Path)
exceptionspackage_streamingextract_streamextract
tar_filterc               $    V ^8  d   QhRRRRRR/# )   streamz2Generator[tuple[tarfile.TarFile, tarfile.TarInfo]]dest_dirz
Path | strr
   z
str | None )formats   "?lib/python3.14/site-packages/conda_package_streaming/extract.py__annotate__r      s&     * *>** *    c                  aaa \         P                  P                  S4      oV3R loV  FV  w  opVV3R lp RSRV! 4       /p\        '       d   T;'       g    RVR&   SP                  ! R/ VB  T P                  4        KX  	  R#   \
         d2   pTP                  \        8X  d   \        P                  ! 4       Thh Rp?ii ; i)	z
Pipe ``stream_conda_component`` output here to extract every member into
dest_dir.

For ``.conda`` will need to be called twice (for info and pkg components);
for ``.tar.bz2`` every member is extracted.
c                   < \         P                  P                  \         P                  P                  SV 4      4      p\         P                  P	                  SV34      pVS8H  # N)ospathrealpathjoin
commonpath)name
abs_targetprefixr   s   &  r   is_within_dest_dir*extract_stream.<locals>.is_within_dest_dir"   sJ    WW%%bggll8T&BC
##Xz$:;!!r   c               3     <"   S FB  p S! V P                   4      '       g$   \        P                  ! R V P                    24      hV x  KD  	  R# 5i)zcontains unsafe path: N)r   r   SafetyError)memberr   tar_files    r   checked_members'extract_stream.<locals>.checked_members)   sA     ")&++66$003I&++1WXX #s   AAr   membersfully_trustedfilterNr   )r   r   r   HAS_TAR_FILTER
extractallOSErrorerrnor   r   CaseInsensitiveFileSystemErrorclose)	r   r   r
   _r%   tar_argser   r$   s	   &f&    @@r   r   r      s     ww)H"
 !		 )_5FGH~%/%B%B?"+(+ 	/ "  	ww% ??AqH	s   BBC,B>>Cc                   V'       g   Q R4       h\        V 4      P                  R4      '       d6   \        P                  P                  \        P                  P
                  .pM\        P                  P                  .pRpV'       g   \        V R4      pRp V F&  p\        P                  ! WVR7      p\        Wa4       K(  	  V'       d   VP                  4        R# R#   T'       d   TP                  4        i i ; i)zw
Extract all components of conda package to dest_dir.

fileobj: must be seekable if provided, if a ``.conda`` package.
zdest_dir is requiredz.condaFrbT)	componentN)
strendswithr   CondaComponentpkginfoopenstream_conda_componentr   r/   )filenamer   fileobj
componentsclosefdr5   r   s   &&&    r   r	   r	   A   s     +++8
8}h'',,00,,11


 (66::;
Gx&#I&==YF 6,	 $ MMO 7MMO s   ,C! !C<r   )NN)__doc__
__future__r   r   tarfilecollections.abcr   r-   r   pathlibr    r   r   __all__hasattrr*   r   r	   r   r   r   <module>rI      sB   
 # 	  %   +Y
',/*Zr   