+
    Bi]+                        R t ^ RIHt ^ RIHt ^ RIt^ RIt^RIHt ^RI	H
t
HtHt ^RIHtHtHtHt ]! 4       t]! 4       t]P(                  P*                  ]P(                  P-                  R. R"O. R#OR7      R	 4       4       t]P(                  P*                  R
 4       t]P(                  P*                  ]P(                  P-                  RRR.RR.R7      ]P(                  P-                  RRR.3R$RR.3RR.3RR.3RRR.3.. R%OR7      ]P(                  P-                  R]
R3]R3.RR.R7      R 4       4       4       4       t]P(                  P*                  ]P(                  P-                  R]
R3]R3.4      R 4       4       t]P(                  P*                  ]P(                  P-                  R]
R3]R3.4      R 4       4       tR tR t]P(                  P*                  ]P(                  P-                  R]
R3]R3.4      R  4       4       t]P(                  P*                  ]P(                  P-                  R]
R3]R3.4      R! 4       4       tR# )&z
Test the processor hooks
)Path)TemporaryDirectoryN)Pooch)UnzipUntar
Decompress)pooch_test_urlpooch_test_registrycheck_tiny_datacapture_logzmethod,ext,name)idsc           
        \        WR7      p\        4       ;_uu_ 4       p\        V4      pVf&   \        VRP	                  RVR.4      ,          4      pM\        WR,          4      p\        V\        \        R7      p\        4       ;_uu_ 4       pVP                  RV,           VR7      p	VP                  4       p
V
P                  4       p\        V4      ^8X  g   Q hV^ ,          P                  4       ^ ,          R	8X  g   Q hVR,          P                  R
4      '       g   Q hWR,          9   g   Q h RRR4       X	V8X  g   Q h\        V	4       \        4       ;_uu_ 4       pVP                  RV,           VR7      p	VP                  4       R8X  g   Q h RRR4       W8X  g   Q h\        V	4       RRR4       R#   + '       g   i     L; i  + '       g   i     L@; i  + '       g   i     R# ; i)z=Check that decompression after download works for all formats)methodnameN.tiny-data.txtdecomppathbase_urlregistryztiny-data.txt.	processorDownloadingDecompressing )r   r   r   strjoinr   BASEURLREGISTRYr   fetchgetvalue
splitlineslensplit
startswithr
   )r   extr   r   local_storer   	true_pathpuplog_filefnamelogsliness   &&&         Y/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pooch/tests/test_processors.pytest_decompressr0      s    &4I			K <D388_c8,L#MMNIDK(I(C]]hII.4	IJE$$&DOO%Eu:?"?8>>#A&-7779''88882Y&&&  	!!!]]hII.4	IJE$$&",,,  !!!1 
	 ] ]) 
		s=   A.GB!F5	/.G2G	G5G GGGG,	c                    \        4       ;_uu_ 4       p \        V 4      p\        V\        \        R7      p\
        P                  ! \        4      ;_uu_ 4       p\        P                  ! 4       ;_uu_ 4        VP                  R\        RR7      R7       RRR4       RRR4       XP                  P                  ^ ,          P                  R4      '       g   Q hRVP                  P                  ^ ,          9  g   Q h\
        P                  ! \        4      ;_uu_ 4       p\        P                  ! 4       ;_uu_ 4        VP                  R\        R	R7      R7       RRR4       RRR4       VP                  P                  ^ ,          P                  R
4      '       g   Q hRVP                  P                  ^ ,          9  g   Q h\
        P                  ! \        4      ;_uu_ 4       p\        P                  ! 4       ;_uu_ 4        VP                  R\        RR7      R7       RRR4       RRR4       VP                  P                  ^ ,          P                  R4      '       g   Q hRVP                  P                  ^ ,          9   g   Q h\
        P                  ! \        4      ;_uu_ 4       p\        P                  ! 4       ;_uu_ 4        VP                  R\        RR7      R7       RRR4       RRR4       VP                  P                  ^ ,          P                  R4      '       g   Q hRVP                  P                  ^ ,          9   g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL0; i  + '       g   i     EL<; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)zGShould fail if method='auto' and no extension is given in the file namer   r   auto)r   r   Nz"Unrecognized file extension '.txt'zpooch.Unzip/Untarblaz Invalid compression method 'bla'zipz Invalid compression method 'zip'z	store.zipz"Unrecognized file extension '.zip')r   r   r   r   r    pytestraises
ValueErrorwarningscatch_warningsr!   r   valueargsr&   )r(   r   r*   	exceptions       r/   test_decompress_failsr=   E   s    
		K (C]]:&&)((**		/Zv5N	O + ' ##A&112VWWWW")//*>*>q*AAAA]]:&&)((**		/Zu5M	N + ' ##A&112TUUUU")//*>*>q*AAAA]]:&&)((**		/Zu5M	N + ' ##A&112TUUUU"ioo&:&:1&====]]:&&)((**		+61J	K + ' ##A&112VWWWW"ioo&:&:1&====3 
	
 +** '&& +** '&& +** '&& +* '&+ 
		s   AO6M,	5MM,	9O6AO6N	;N N	!9O6AO6#N<	N(N<	'9O6!AO6)O#	O%O#	-9O6'&O6M)#	M,	,M=7	O6 N	N	N%	O6(N93	N<	<O	O6O O#	#O3.O66P	target_pathsome_custom_pathdefault_pathcustom_pathzarchive,members	tiny-datar   storestore/tiny-data.txtstore/subdir/tiny-data.txtzstore/subdirzprocessor_class,extensionz.zipz.tar.gzr   r   c           	        V ! WBR7      pVf   W1,           VP                   ,           p\        4       ;_uu_ 4       p\        V4      p\        W4Wb,          V P                  4      w  rx\        V\        \        R7      p	\        4       ;_uu_ 4       p
V	P                  W1,           VR7      p\        V4      V8X  g   Q h\        W4       RRR4       X F  p\        V4       K  	  \        4       ;_uu_ 4       p
V	P                  W1,           VR7      p\        V4      V8X  g   Q h\        V
. 4       RRR4       V F  p\        V4       K  	  RRR4       R#   + '       g   i     L; i  + '       g   i     LA; i  + '       g   i     R# ; i)zGTests the behaviour of processors for unpacking archives (Untar, Unzip))membersextract_dirNr   r   )suffixr   r   "_unpacking_expected_paths_and_logs__name__r   r   r    r   r!   set_check_logsr
   )processor_class	extensionr>   archiverG   r   r   
true_pathsexpected_logr*   r+   fnamesr,   s   &&&&&        r/   test_unpackingrT   d   s2   <  II)I,<,<<			Dz#Ed0/2J2J$
 
 (C]]hYYw2iYHFv;*,,,/  EE"  ]]hYYw2iYHFv;*,,,"%  EE" ' 
	 ] ] 
		s<   AE57E	.E518E"	)E5EE5"E2-E55F	c                d   \        4       ;_uu_ 4       p\        \        V4      \        \        R7      pV ! R.R7      pVP                  RV,           VR7      p\        V4      ^8X  g   Q h\        V^ ,          4       V ! RR.R7      pVP                  RV,           VR7      p\        V4      ^8X  g   Q h\        V^ ,          4       \        V^,          4       VP                  RV,           VR7      p\        V4      ^8X  g   Q h\        V^ ,          4       RRR4       R#   + '       g   i     R# ; i)zHTest that multiple subsequent calls to a processor yield correct resultsr   rD   rG   rC   r   rE   Nr   r   r   r   r    r!   r$   r
   )	rN   rO   r(   r*   
processor1
filenames1
processor2
filenames2
filenames3s	   &&       r/   test_multiple_unpackingr]      s    
		k*WxP %.C-DE
YYw2jYI
:!###
1& %*,HI

 YYw2jYI
:!###
1&
1& YYw2jYI
:!###
1&- 
			s   DDD/	c                2   \        4       ;_uu_ 4       p\        \        V4      \        \        R7      pV ! R.R7      pVP                  RV,           VR7      p\        V4      ^8X  g   Q h\        V^ ,          4       RRR4       R#   + '       g   i     R# ; i)zDTest that unpack members can also be specifed both with a leading ./r   z./store/tiny-data.txtrV   rC   r   NrW   )rN   rO   r(   r*   rX   rY   s   &&    r/   $test_unpack_members_with_leading_dotr_      sv     
		k*WxP %.E-FG
YYw2jYI
:!###
1& 
			s   A(BB	c                    V P                  4       P                  4       p\        V4      \        V4      8X  g   Q h\        W!4       F  w  r4VP	                  V4      '       d   K  Q h	  R# )z;
Assert that the lines in the log match the expected ones.
N)r"   r#   r$   r4   r&   )r+   expected_linesr.   lineexpected_lines   &&   r/   rM   rM      sY     **,Eu:^,,,,"59}----  :    c                d   R.pV R8X  d(   \        VR,          4      0pVP                  R4       WT3# V R8X  d^   VfZ   \        VR,          R,          4      \        VR,          R,          R,          4      0pVP                  V VR,           R24       WT3# V R8X  d   Ve   . pV Fz  pV\        VP                  R4      !  ,          p\        V4      P	                  R4      '       g
   VR,          pVP                  \        V4      4       VP                  R	V R
24       K|  	  \        V4      pXV3# )zc
Generate the appropriate expected paths and log message depending on the
parameters for the test.
r   rB   r   zExtracting 'tiny-data.txt'rC   subdirzing contents/zExtracting ''r   )r   appendr   r%   endswithrL   )rP   rG   r   r   	log_linesrQ   memberr)   s   &&&&    r/   rJ   rJ      s9   
 I+$012
56     
G	w01w)O;<

 	D6$r(<89    
G	 3
FtV\\#%677Iy>**?;;%7	c)n-|F8156  _
y  rd   c                v   \        4       ;_uu_ 4       p\        \        V4      \        \        R7      pV ! R.R7      pVP                  RV,           VR7      p\        V4      ^8X  g   Q hV ! 4       pVP                  RV,           VR7      p\        V4      ^8  g   Q h RRR4       R#   + '       g   i     R# ; i)zl
Test that calling with valid members then without them works.
https://github.com/fatiando/pooch/issues/364
r   rD   rV   rC   r   Nr   r   r   r   r    r!   r$   rN   rO   r(   r*   rX   rY   rZ   r[   s   &&      r/   &test_unpacking_members_then_no_membersrp      s     
		k*WxP %.C-DE
YYw2jYI
:!### %&
YYw2jYI
:""" 
			   B	B''B8	c                v   \        4       ;_uu_ 4       p\        \        V4      \        \        R7      pV ! R.R7      pVP                  RV,           VR7      p\        V4      ^ 8X  g   Q hV ! 4       pVP                  RV,           VR7      p\        V4      ^ 8  g   Q h RRR4       R#   + '       g   i     R# ; i)zn
Test that calling with invalid members then without them works.
https://github.com/fatiando/pooch/issues/364
r   znot-a-valid-file.csvrV   rC   r   Nrn   ro   s   &&      r/   ,test_unpacking_wrong_members_then_no_membersrs     s     
		k*WxP %.D-EF
YYw2jYI
:!### %&
YYw2jYI
:""" 
			rq   ))r2   xzN)lzmart   N)rt   rt   N)bzip2bz2N)gzipgzN)rx   ry   zdifferent-name.txt)r2   ru   rt   rw   ry   r   )rC   N)single_filearchive_allarchive_filearchive_subdir_filearchive_subdirarchive_multiple) __doc__pathlibr   tempfiler   r8   r5   r   r   
processorsr   r   r   utilsr   r	   r
   r   r    r   marknetworkparametrizer0   r=   rT   r]   r_   rM   rJ   rp   rs    rd   r/   <module>r      s    '    1 1 T T  

  	4   < > >< D,-NM3R   	'(	()*	/01	>"#	(.9:	  & V_ui()	'  
#' 8#8 V_ui()'	 
'8 V_ui()
'	 

'.!6 V_ui()#	 
#& V_ui()#	 
#rd   