
    KiL&                     t   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  SSK J
r
JrJr  SSKJr  SSKJr  SSKJrJr   " S	 S
\
5      rS0S jrS1S jr " S S\ R.                  S9r\" S\" \" S5      5      SR9                  S5      SR9                  S5      S\" \" SS5      5      S.S.SSSS.SSS.SSS00S .\" \" S5      5      SR9                  S5      SR9                  S5      S!\" \" S"S#5      5      0S$.S%9r " S& S'5      r " S( S)\5      r " S* S+\5      r  " S, S-\5      r! " S. S/\ \5      r"g)2    N)
ModuleSpec   )ResourceReaderTraversableTraversableResources   _path)zip)import_helper	os_helperc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
Reader   c                 8    [        U 5      R                  U5        g N)varsupdate)selfkwargss     `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/importlib_resources/tests/util.py__init__Reader.__init__   s    T
&!    c                     U $ r    r   packages     r   get_resource_readerReader.get_resource_reader   s    r   c                 |    Xl         [        U R                  [        5      (       a  U R                  eU R                  $ r   )r
   
isinstancefile	Exceptionr   paths     r   open_resourceReader.open_resource   s+    
dii++))Oyyr   c                 |    Xl         [        U R                  [        5      (       a  U R                  eU R                  $ r   )r
   r"   r&   r$   )r   path_s     r   resource_pathReader.resource_path   s+    
dii++))Oyyr   c                    ^ TU l         [        U R                  [        5      (       a  U R                  eS n[	        U4S j[        X R                  5       5       5      $ )Nc                 $    U R                  S5      $ )N/)split)entrys    r   part Reader.is_resource.<locals>.part)   s    ;;s##r   c              3   ^   >#    U  H"  n[        U5      S :H  =(       a    US   T:H  v   M$     g7f)r   r   N)len).0partsr*   s     r   	<genexpr>%Reader.is_resource.<locals>.<genexpr>,   s.      
?XeCJ!O1aE 11?Xs   *-)r
   r"   r&   r$   anymap	_contents)r   r*   r2   s    ` r   is_resourceReader.is_resource$   sN    
dii++))O	$  
?B4?X
 
 	
r   c              #      #    [        U R                  [        5      (       a  U R                  eU R                   S h  vN   g  N7fr   )r"   r&   r$   r<   r   s    r   contentsReader.contents0   s,     dii++))O>>!!s   ;AAAr	   N)__name__
__module____qualname____firstlineno__r   r   r'   r+   r=   rA   __static_attributes__r   r   r   r   r      s     "

"r   r   c                 d    Sn[         R                  " U5      n[        X SUS9nXCl        Xl        U$ )Ntestingpackagezdoes-not-exist)origin
is_package)types
ModuleTyper   __spec__
__loader__)loaderrK   namemodulespecs        r   create_package_from_loaderrT   6   s6    Dd#Fd+;
SDOMr   c                 *    [        [        XUS9U5      $ )N)r#   r&   r<   )rT   r   )r#   r&   rK   rA   s       r   create_packagerV   ?   s    %Dx8 r   c                   l    \ rS rSrSr\R                  S 5       rS rS r	S r
S rS rS	 rS
 rS rSrg)CommonTestsBaseF   z6
Tests shared by test_open, test_path, and test_read.
c                     g)zT
Call the pertinent legacy API function (e.g. open_text, path)
on package and path.
Nr   )r   r   r&   s      r   executeCommonTestsBase.executeK   s    r   c                 P    U R                  U R                  R                  S5        g)z-
Passing in the package name should succeed.

utf-8.fileN)r[   datarC   r@   s    r   test_package_name!CommonTestsBase.test_package_nameR   s     	TYY''6r   c                 <    U R                  U R                  S5        g)z/
Passing in the package itself should succeed.
r^   Nr[   r_   r@   s    r   test_package_object#CommonTestsBase.test_package_objectX   s     	TYY-r   c                 @    SnU R                  U R                  U5        g)z2
Passing in a string for the path should succeed.
r^   Nrc   r%   s     r   test_string_path CommonTestsBase.test_string_path^   s     TYY%r   c                 h    [         R                  " S5      nU R                  U R                  U5        g)zC
Passing in a pathlib.PurePath object for the path should succeed.
r^   N)pathlibPurePathr[   r_   r%   s     r   test_pathlib_path!CommonTestsBase.test_pathlib_pathe   s&     -TYY%r   c                     [         R                  U R                  R                  	 U R	                  U R                  R                  S5        g)z-
The anchor package can already be imported.
r^   N)sysmodulesr_   rC   r[   r@   s    r   $test_importing_module_as_side_effect4CommonTestsBase.test_importing_module_as_side_effectl   s2     KK		**+TYY''6r   c                     [         R                  " S5      n[        U[        5       S9nU R	                  US5        U R                  UR                  R                  S5        g)z
Attempting to open or read or request the path for a
non-existent path should succeed if open_resource
can return a viable data stream.
   Hello, world!r#   r&   r^   N)ioBytesIOrV   FileNotFoundErrorr[   assertEqualrO   r
   )r   
bytes_datar   s      r   test_missing_path!CommonTestsBase.test_missing_paths   sM     ZZ 01
 j7H7JKWl+++11<@r   c                     [         R                  " S5      n[        n[        XS9nU R	                  US5        U R                  UR                  R                  S5        g )Nrt   ru   r^   )rv   rw   __file__rV   r[   ry   rO   r
   )r   rz   r&   r   s       r   test_extant_path CommonTestsBase.test_extant_path~   sL     ZZ 01
 j<Wl+++11<@r   c                     [        [        5       [        5       S9nU R                  [        5         U R                  US5        S S S 5        g ! , (       d  f       g = f)Nru   r^   )rV   rx   assertRaisesr[   r   s     r   test_useless_loader#CommonTestsBase.test_useless_loader   s?     &7&9@Q@ST01LL,/ 211s   A
Ar   N)rC   rD   rE   rF   __doc__abcabstractmethodr[   r`   rd   rg   rl   rq   r{   r   r   rG   r   r   r   rX   rX   F   sK     	 7.&&7	A	A0r   rX   )	metaclass    u   ﻿Hello, UTF-16 world!
z	utf-16-lezHello, UTF-8 world!
utf-8   )__init__.pybinary.file)r   r   utf-16.filer^   subdirectoryzone resource)r   zresource1.txtztwo resource)r   zresource2.txt	subsubdirzresource.txtz
a resource)r   onetwor   r         )r   r   r^   r   )data01data02namespacedata01c                        \ rS rSrS rS rSrg)ModuleSetup   c                    [         R                  " 5       U l        U R                  U R                  R                  5        U R                  R                  [        R                  " 5       5        U R                  U R                  5      U l
        g r   )
contextlib	ExitStackfixtures
addCleanupcloseenter_contextr   isolated_modulesload_fixtureMODULEr_   r@   s    r   setUpModuleSetup.setUp   sY    ",,.++,##M$B$B$DE%%dkk2	r   c                 b    U R                  U[        U   05        [        R                  " U5      $ r   )tree_on_pathr   	importlibimport_moduler   rR   s     r   r   ModuleSetup.load_fixture   s+    68F#345&&v..r   )r_   r   N)rC   rD   rE   rF   r   r   rG   r   r   r   r   r      s    3/r   r   c                       \ rS rSrSrS rSrg)ZipSetup   r   c           
      *   U R                   R                  [        R                  " 5       5      n[        R
                  " U5      S-  nU R                   R                  [        R                  " [        [        R                  " X5      5      5      5        g )Nzzipped modules.zip)r   r   r   temp_dirrj   Pathr   DirsOnSysPathstrzip_make_zip_file)r   rS   r   rp   s       r   r   ZipSetup.tree_on_path   sc    ==..y/A/A/CD,,x(+??##''D,>,>t,M(NO	
r   r   NrC   rD   rE   rF   r   r   rG   r   r   r   r   r      s    F
r   r   c                       \ rS rSrSrS rSrg)	DiskSetup   r   c                    U R                   R                  [        R                  " 5       5      n[        R
                  " U[        R                  " U5      5        U R                   R                  [        R                  " U5      5        g r   )
r   r   r   r   r
   buildrj   r   r   r   )r   rS   r   s      r   r   DiskSetup.tree_on_path   sS    ==..y/A/A/CDD',,x01##M$?$?$IJr   r   Nr   r   r   r   r   r      s    FKr   r   c                       \ rS rSrSrSrS r\R                  S 5       r	 " S S\
R                  R                  5      r " S S	\
R                  R                  5      r " S
 S\5      r " S S\5      rSrg)MemorySetup   z#Support loading a module in memory.r   c                     U R                   R                  U R                  U5      5        [        R                  " U5      $ r   )r   r   augment_sys_metapathr   r   r   s     r   r   MemorySetup.load_fixture   s0    ##D$=$=f$EF&&v..r   c              #      #    U R                  U5      n[        R                  R                  U5        S v   [        R                  R	                  U5        g 7fr   )MemoryFinderro   	meta_pathappendremove)r   rR   finder_instances      r   r    MemorySetup.augment_sys_metapath   s<     ++F3_-_-s   AAc                   $    \ rS rSrS rSS jrSrg)MemorySetup.MemoryFinder   c                     Xl         g r   _moduler   s     r   r   !MemorySetup.MemoryFinder.__init__       !Lr   Nc                     XR                   :w  a  g [        R                  R                  U[        R                  U R                   5      SS9$ )NT)rQ   rP   rK   )r   r   	machineryr   r   MemoryLoader)r   fullnamer&   targets       r   	find_spec"MemorySetup.MemoryFinder.find_spec   sE    <<'&&11"//= 2  r   r   r   )rC   rD   rE   rF   r   r   rG   r   r   r   r   r      s    	"	r   r   c                   &    \ rS rSrS rS rS rSrg)MemorySetup.MemoryLoader   c                     Xl         g r   r   r   s     r   r   !MemorySetup.MemoryLoader.__init__   r   r   c                     g r   r   r   s     r   exec_module$MemorySetup.MemoryLoader.exec_module   s    r   c                 B    [         R                  U R                  U5      $ r   )r   MemoryTraversableResourcesr   )r   r   s     r   r   ,MemorySetup.MemoryLoader.get_resource_reader   s    99$,,QQr   r   N)rC   rD   rE   rF   r   r   r   rG   r   r   r   r   r      s    	"		Rr   r   c                        \ rS rSrS rS rSrg)&MemorySetup.MemoryTraversableResources   c                     Xl         X l        g r   r   	_fullnamer   rR   r   s      r   r   /MemorySetup.MemoryTraversableResources.__init__       !L%Nr   c                 V    [         R                  U R                  U R                  5      $ r   )r   MemoryTraversabler   r   r@   s    r   files,MemorySetup.MemoryTraversableResources.files   s    00t~~NNr   r   r   N)rC   rD   rE   rF   r   r   rG   r   r   r   r   r      s    	&	Or   r   c                   `    \ rS rSrSrS rS rS rS\4S jr	S\4S jr
SS
 jr\S 5       rSrg	)MemorySetup.MemoryTraversable   zImplement only the abstract methods of `Traversable`.

Besides `.__init__()`, no other methods may be implemented or overridden.
This is critical for validating the concrete `Traversable` implementations.
c                     Xl         X l        g r   r   r   s      r   r   &MemorySetup.MemoryTraversable.__init__  r   r   c                     [         R                  " U R                  5      n[        R                  " S UR
                  [        5      $ )z
Fully traverse the `fixtures` dictionary.

This should be wrapped in a `try/except KeyError`
but it is not currently needed and lowers the code coverage numbers.
c                 
    X   $ r   r   )dps     r   <lambda>8MemorySetup.MemoryTraversable._resolve.<locals>.<lambda>  s    r   )rj   PurePosixPathr   	functoolsreducer7   r   r%   s     r   _resolve&MemorySetup.MemoryTraversable._resolve  s2     ((8D##$5tzz8LLr   c              #      #    U R                  5       n[        U[        5      (       d  [        U R                   S35      eU H4  n[
        R                  U R                  U R                   SU 35      v   M6     g 7f)Nz is not a directoryr/   )r  r"   dictOSErrorr   r   r   r   )r   	directoryr&   s      r   iterdir%MemorySetup.MemoryTraversable.iterdir  sk     Ii.. 00CDEE!!33LLT^^$4AdV"<  "s   A9A;returnc                 >    [        U R                  5       [        5      $ r   )r"   r  r  r@   s    r   is_dir$MemorySetup.MemoryTraversable.is_dir  s    dmmot44r   c                 ,    U R                  5       (       + $ r   )r  r@   s    r   is_file%MemorySetup.MemoryTraversable.is_file  s    {{}$$r   Nc                 .   U R                  5       n[        U[        5      (       a  [        U R                   S35      e[        U[
        5      (       a  UR                  S5      n[        R                  " U5      nSU;   a  U$ [        R                  " XrUS9$ )Nz is a directoryr   b)encodingerrors)
r  r"   r  r  r   r   encoderv   rw   TextIOWrapper)r   moder  r  ___rA   results           r   open"MemorySetup.MemoryTraversable.open!  s{    }}H(D))  0@AA(C((#??73ZZ)Fd{##FfMMr   c                 V    [         R                  " U R                  5      R                  $ r   )rj   r   r   rQ   r@   s    r   rQ   "MemorySetup.MemoryTraversable.name.  s    ((8===r   r   )rNN)rC   rD   rE   rF   r   r   r  r	  boolr  r  r  propertyrQ   rG   r   r   r   r   r      sI    		&	M		5D 	5	%T 	%	N 
	> 
	>r   r   r   N)rC   rD   rE   rF   r   r   r   r   contextmanagerr   r   r   MetaPathFinderr   Loaderr   r   r   r   r   rG   r   r   r   r   r      sr    -F/ . .y}}33 Ry}}++ RO%9 O4>K 4>r   r   c                       \ rS rSrSrg)CommonTestsi3  r   N)rC   rD   rE   rF   rG   r   r   r   r'  r'  3  s    r   r'  )T)NNTr   )#r   r   r  r   rv   rj   ro   rL   importlib.machineryr   r   r   r   r   r
   r   r   compat.py39r   r   r   rT   rV   ABCMetarX   r  bytesranger  r   r   r   r   r   r'  r   r   r   <module>r-     sU   
    	  
  * C C   1""^ ""JF0 F0R U1X5<<[I-44W= q!-
	 !NC!NC$~|&DE	 U1X5<<[I-44W=5r2/
	#8
/ 
/
{ 
K Kd>+ d>N	)_ 	r   