+
    3j                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ]P                  ! ^ 4      t]P                  ! ]4        ^ RIHt  ! R R]4      t ! R R	]P*                  4      t]P.                  R
3RR/R R llltRR R lltR]P4                  3RRRR/R R llltR#   ] d1     ^ RIHt  Ll  ] d    ^ RIt]P&                  ! R4       Rt  Li ; ii ; i)z7
Unpack conda packages without using a temporary file.
)annotationsN)	Generator)EnumzBzstd module could not be imported. Running without .conda support.c                  $    ] tR t^#tRtRtR tRtR# )CondaComponentpkginfoc                	    V P                   # N)value)selfs   &Ilib/python3.14/site-packages/conda_package_streaming/package_streaming.py__str__CondaComponent.__str__'   s    zz     N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   r   r   #   s    
CDr   r   c                  B   a  ] tR t^+tRR/R V 3R llltR tR tRtV ;t# )TarfileNoSameOwnerumaskNc                   V ^8  d   QhRR/# )   r   z
int | Noner   )formats   "r   __annotate__TarfileNoSameOwner.__annotate__,   s     
; 
;Z 
;r   c               V   < \         SV `  ! V/ VB  Ve	   Wn        R# \        V n        R# )a  Open an (uncompressed) tar archive `name'. `mode' is either 'r' to
read from an existing archive, 'a' to append data to an existing
file or 'w' to create a new file overwriting an existing one. `mode'
defaults to 'r'.
If `fileobj' is given, it is used for reading or writing data. If it
can be determined, `mode' is overridden by `fileobj's mode.
`fileobj' is not closed, when TarFile is closed.
N)super__init__UMASKr   )r   r   argskwargs	__class__s   &$*,r   r!   TarfileNoSameOwner.__init__,   s'     	$)&)#/U
U
r   c                    R# )z
Override chown to be a no-op, since we don't want to preserve ownership
here. (tarfile.TarFile only lets us toggle all of (chown, chmod, mtime))
Nr   )r   tarinfo
targetpathnumeric_owners   &&&&r   chownTarfileNoSameOwner.chown8   s    
 	r   c                    VP                   f   R#  \        P                  ! W!P                   RV P                  ( ,          ,          4       R#   \         d   p\
        P                  ! R4      ThRp?ii ; i)zL
Set file permissions of targetpath according to tarinfo, respecting
umask.
Nzcould not change mode)modeoschmodr   OSErrortarfileExtractError)r   r(   r)   es   &&& r   r1   TarfileNoSameOwner.chmod?   s]    
 <<	GHHZ

{1C!DE 	G&&'>?QF	Gs   9A A4A//A4)r   )	r   r   r   r   r!   r+   r1   r   __classcell__)r%   s   @r   r   r   +   s%    
;$ 
; 
;G Gr   r   Fencodingzutf-8c                   V ^8  d   QhRR/# r   return2Generator[tuple[tarfile.TarFile, tarfile.TarInfo]]r   )r   s   "r   r   r   M   s      7r   c             #     "    V! V RVR7      ;_uu_ 4       pV F  pWE3x  K
  	  RRR4       V'       d   V P                  4        R# R#   + '       g   i     L,; i  T'       d   T P                  4        i i ; i5i)z
Yield (tar, member) from fileobj.

Args:
    fileobj: file-like object

    encoding: "utf-8" passed to TarFile.open(); can be changed for testing.
zr|)fileobjr/   r8   N)close)r>   tarfile_openclosefdr8   tarmembers   &&&$  r   tar_generatorrD   M   sc     'xHHCk!  I MMO 	 IH MMO s1   A;A A
A A;
A	A A88A;c                   V ^8  d   QhRR/# r:   r   )r   s   "r   r   r   c   s     @ @7@r   c                    Rp\        WV4      # )a  
Yield members from conda's embedded info/ tarball.

For .tar.bz2 packages, yield all members.

Yields (tar, member) tuples. You must only use the current member to
prevent tar seeks and scans.

To extract to disk, it's possible to call ``tar.extractall(path)`` on the
first result and then ignore the rest of this generator. ``extractall`` takes
care of some directory permissions/mtime issues, compared to ``extract`` or
writing out the file objects yourself.
r   )stream_conda_component)filenamer>   	components   && r   stream_conda_inforJ   c   s      I!(Y??r   zfc               $    V ^8  d   QhRRRRRR/# )r   rI   zCondaComponent | strrK   zzipfile.ZipFile | Noner;   r<   r   )r   s   "r   r   r   w   s/     7M 7M $7M 	7M 87Mr   c                  \        V 4      P                  R4      '       Ed
   \        f   \        R4      hVf!   \        P
                  ! T;'       g    T 4      p\        P                  P                  V 4      P                  R4      w  p pV RV 2pVP                  4        Uu. uF'  qP                  P                  V4      '       g   K%  VNK)  	  p	pV	'       g   \        RV RV  24      h\        V	4      ^8X  g   Q h\        P                  ! VP                  V	^ ,          4      4      p
MN\        V 4      P                  R4      '       d$   \         P                  ! T;'       g    T R	R
7      p
M\#        R4      h\%        WRJ VR7      # u upi )a  
Yield members from .conda's embedded {component}- tarball. "info" or "pkg".

For .tar.bz2 packages, yield all members.

Yields (tar, member) tuples. You must only use the current member to
prevent tar seeks and scans.

To extract to disk, it's possible to call ``tar.extractall(path)`` on the
first result and then ignore the rest of this generator. ``extractall`` takes
care of some directory permissions/mtime issues, compared to ``extract`` or
writing out the file objects yourself.

Args:
    filename: path or file-like object to the .conda or .tar.bz2 file

    component: "pkg" or "info" component to extract

    encoding: "utf-8" passed to TarFile.open(); can be changed for testing.

    zf: optional pre-opened ``zipfile.ZipFile`` for .conda archives.
        When provided, reuses the already-opened ZipFile instead of
        parsing the central directory again. Callers that stream both
        the ``pkg`` and ``info`` components can open the zip once and
        pass it in both times, avoiding duplicate parsing. See #173.
z.condaNzECannot unpack `.conda` without `backports.zstd` or `compression.zstd`.-zdidn't find z component in z.tar.bz2rb)r/   zunsupported file extension)rA   r8   )strendswithzstdRuntimeErrorzipfileZipFiler0   pathbasename
rpartitioninfolistrH   
startswithLookupErrorlenopenbz2
ValueErrorrD   )rH   r>   rI   r8   rK   stem_component_namer   component_filenamereaders   &&&$$      r   rG   rG   w   sR   D 8}h''<W  :!4!4H5BWW%%h/::3?
a%;av.[[]
*Tmm.F.F~.VDD] 	 
 "^,<N8*UVV%&!+++277#5a#89:	X		
	+	+'--XD9566D8LL
s   $"FFr
   )__doc__
__future__r   r_   r0   os.pathr3   rU   collections.abcr   enumr   r   r"   compression.zstdrS   ImportErrorbackports.zstdwarningswarnr   TarFiler   r^   rD   rJ   r   rG   r   r   r   <module>rq      s    # 
 	    %  	 #T G GF -115NU ,@, &4&8&87M
 7M "&7M 7MC  
	% P	
 
s*   B0 0C'8C  C#C'"C##C'