
    :bhz/                     h   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ ddlmZ ddlmZ 	 d dlmZ  eed        eed	       ej,                  d
        Zej,                  d        Zej,                  d        Zej,                  d        Z G d d      Z G d de      Z G d de      Z G d dee      Z G d dee      Z G d dee      Z  G d de      Z! G d dee      Z" G d dee      Z# G d  d!ee      Z$ G d" d#ee      Z% G d$ d%ee      Z& G d& d'ee      Z'ejP                  jR                  e*   Z+ejP                  jY                  e*d(        ejZ                  Z.d) Z/d* Z0 G d+ d,      Z1d- Z2 e        G d. d/             Z3d0 Z4y# eef$ r d dlZY Zw xY w)1    N)FS_NONASCII)requires_zlib   )_path)	FilesSpec)	resourcesfilesas_filec               #      K   t        j                         } 	 t        j                  |        t	        j
                  |        y # t	        j
                  |        w xY wwN)tempfilemkdtemppathlibPathshutilrmtree)tmpdirs    F/opt/python-3.12.12/usr/lib/python3.12/test/test_importlib/fixtures.pytempdirr      s@     Fll6""ffs   AA AAAc               #      K   t        j                         } 	 d  t        j                  |        y # t        j                  |        w xY wwr   )osgetcwdchdir)origs    r   save_cwdr   $   s/     99;D
s   A2 AA		Ac               #      K   t               5 } t               5  t        j                  t	        |              |  d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wwr   )r   r   r   r   str)tmps    r   tempdir_as_cwdr   -   s@     	cZHHSXI  
Z 
s2   A$A#AA	A$A	AA!A$c              #      K   t         j                  j                  |        	 d  t         j                  j                  |        y # t         j                  j                  |        w xY wwr   )sys	meta_pathappendremove)finders    r   install_finderr&   5   sD     MM %V$V$s    A+A  A+!A((A+c                       e Zd Zd Zy)Fixturesc                     t        j                         | _        | j                  | j                  j                         y r   )
contextlib	ExitStackfixtures
addCleanupcloseselfs    r   setUpzFixtures.setUp?   s(    ",,.++,    N)__name__
__module____qualname__r1    r2   r   r(   r(   >   s    -r2   r(   c                        e Zd Z fdZ xZS )SiteDirc                 r    t         |           | j                  j                  t	                     | _        y r   )superr1   r,   enter_contextr   site_dirr0   	__class__s    r   r1   zSiteDir.setUpE   s$    33GI>r2   r3   r4   r5   r1   __classcell__r>   s   @r   r8   r8   D   s    ? ?r2   r8   c                   L     e Zd Zeej
                  d               Z fdZ xZS )	OnSysPathc              #      K   t        |       gt        j                  d d 	 d  t        j                  j                  t        |              y # t        j                  j                  t        |              w xY wwNr   )r   r!   pathr$   )dirs    r   add_sys_pathzOnSysPath.add_sys_pathK   sM      Cz!	&HHOOCH%CHHOOCH%s   A;A )A;*A88A;c                     t         |           | j                  j                  | j	                  | j
                               y r   )r:   r1   r,   r;   rH   r<   r=   s    r   r1   zOnSysPath.setUpT   s-    ##D$5$5dmm$DEr2   )	r3   r4   r5   staticmethodr*   contextmanagerrH   r1   r@   rA   s   @r   rC   rC   J   s/    &  &F Fr2   rC   c                   B     e Zd ZU ddddddZeed<    fdZd	 Z xZS )
DistInfoPkgaL  
                Name: distinfo-pkg
                Author: Steven Ma
                Version: 1.0.0
                Requires-Dist: wheel >= 1.0
                Requires-Dist: pytest; extra == 'test'
                Keywords: sample package

                Once upon a time
                There was a distinfo pkg
                zmod.py,sha256=abc,20
zi
                [entries]
                main = mod:main
                ns:sub = mod:main
            )METADATARECORDentry_points.txtJ
            def main():
                print("hello world")
            )distinfo_pkg-1.0.0.dist-infomod.pyr	   c                 j    t         |           t        t        j                  | j
                         y r   r:   r1   build_filesrM   r	   r<   r=   s    r   r1   zDistInfoPkg.setUpt        K%%t}}5r2   c                     	 t        j                  | j                  dz         t        j                  t
        j                        }|d   }|d   j                         |d<   t        || j                         y )NrR   rN   )	r   r   r<   copydeepcopyrM   r	   upperrV   )r0   r	   infos      r   make_uppercasezDistInfoPkg.make_uppercasex   sd    	 	dmm&DDEk//034
+113ZE4==)r2   )	r3   r4   r5   r	   r   __annotations__r1   r]   r@   rA   s   @r   rM   rM   Y   s4    
 /!)
&)E9 46*r2   rM   c                   6     e Zd ZU dddiiZeed<    fdZ xZS )DistInfoPkgWithDotzpkg_dot-1.0.0.dist-inforN   N
                Name: pkg.dot
                Version: 1.0.0
                r	   c                 j    t         |           t        t        j                  | j
                         y r   )r:   r1   rV   r`   r	   r<   r=   s    r   r1   zDistInfoPkgWithDot.setUp   s!    &,,dmm<r2   r3   r4   r5   r	   r   r^   r1   r@   rA   s   @r   r`   r`      s+    ! $
E9 = =r2   r`   c                   <     e Zd ZU ddiddidZeed<    fdZ xZS )DistInfoPkgWithDotLegacyrN   ra   zN
                Name: pkg.lot
                Version: 1.0.0
                )zpkg.dot-1.0.0.dist-infozpkg.lot.egg-infor	   c                 j    t         |           t        t        j                  | j
                         y r   )r:   r1   rV   re   r	   r<   r=   s    r   r1   zDistInfoPkgWithDotLegacy.setUp   s!    ,22DMMBr2   rc   rA   s   @r   re   re      s;      $
  
E9 C Cr2   re   c                        e Zd Z fdZ xZS )DistInfoPkgOffPathc                 j    t         |           t        t        j                  | j
                         y r   rU   r=   s    r   r1   zDistInfoPkgOffPath.setUp   rW   r2   r?   rA   s   @r   rh   rh      s    6 6r2   rh   c                   @     e Zd ZU ddddddddZeed	<    fd
Z xZS )
EggInfoPkga  
                Name: egginfo-pkg
                Author: Steven Ma
                License: Unknown
                Version: 1.0.0
                Classifier: Intended Audience :: Developers
                Classifier: Topic :: Software Development :: Libraries
                Keywords: sample package
                Description: Once upon a time
                        There was an egginfo package
                zW
                mod.py
                egginfo_pkg.egg-info/top_level.txt
            zG
                [entries]
                main = mod:main
            zq
                wheel >= 1.0; python_version >= "2.7"
                [test]
                pytest
            zmod
)PKG-INFOSOURCES.txtrP   zrequires.txttop_level.txtrQ   )zegginfo_pkg.egg-inforS   r	   c                 l    t         |           t        t        j                  | j
                         y N)prefix)r:   r1   rV   rk   r	   r<   r=   s    r   r1   zEggInfoPkg.setUp   s     J$$T]];r2   rc   rA   s   @r   rk   rk      s?    
!
 %3!
69 E9  D< <r2   rk   c                   <     e Zd ZU ddddddZeed<    fdZ xZS )	 EggInfoPkgPipInstalledNoToplevelName: egg_with_module-pkgz
                egg_with_module.py
                setup.py
                egg_with_module_pkg.egg-info/PKG-INFO
                egg_with_module_pkg.egg-info/SOURCES.txt
                egg_with_module_pkg.egg-info/top_level.txt
            z
                ../egg_with_module.py
                PKG-INFO
                SOURCES.txt
                top_level.txt
            rl   rm   installed-files.txtrQ   zegg_with_module_pkg.egg-infozegg_with_module.pyr	   c                 l    t         |           t        t        j                  | j
                         y rp   )r:   r1   rV   rs   r	   r<   r=   s    r   r1   z&EggInfoPkgPipInstalledNoToplevel.setUp   s!    4::4==Qr2   rc   rA   s   @r   rs   rs      s6     4$)
,/E9 :R Rr2   rs   c                   <     e Zd ZU ddddddZeed<    fdZ xZS )	'EggInfoPkgPipInstalledExternalDataFilesrt   a  
                egg_with_module.py
                setup.py
                egg_with_module.json
                egg_with_module_pkg.egg-info/PKG-INFO
                egg_with_module_pkg.egg-info/SOURCES.txt
                egg_with_module_pkg.egg-info/top_level.txt
            a  
                ../../../etc/jupyter/jupyter_notebook_config.d/relative.json
                /etc/jupyter/jupyter_notebook_config.d/absolute.json
                ../egg_with_module.py
                PKG-INFO
                SOURCES.txt
                top_level.txt
            ru   rQ   rw   r	   c                 l    t         |           t        t        j                  | j
                         y rp   )r:   r1   rV   rz   r	   r<   r=   s    r   r1   z-EggInfoPkgPipInstalledExternalDataFiles.setUp  s!    ;AA$--Xr2   rc   rA   s   @r   rz   rz      s7     4$)
25E9 @Y Yr2   rz   c                   <     e Zd ZU ddddddiZeed<    fdZ xZS )	EggInfoPkgPipInstalledNoModulesz egg_with_no_modules_pkg.egg-infozName: egg_with_no_modules-pkgz
                setup.py
                egg_with_no_modules_pkg.egg-info/PKG-INFO
                egg_with_no_modules_pkg.egg-info/SOURCES.txt
                egg_with_no_modules_pkg.egg-info/top_level.txt
            z`
                PKG-INFO
                SOURCES.txt
                top_level.txt
               
)rl   rm   rv   rn   r	   c                 l    t         |           t        t        j                  | j
                         y rp   )r:   r1   rV   r}   r	   r<   r=   s    r   r1   z%EggInfoPkgPipInstalledNoModules.setUp7  s!    399$--Pr2   rc   rA   s   @r   r}   r}     s7    *7$ #'-
E9 0Q Qr2   r}   c                   :     e Zd ZU dddddZeed<    fdZ xZS )EggInfoPkgSourcesFallbackzName: sources_fallback-pkgz
                sources_fallback.py
                setup.py
                sources_fallback_pkg.egg-info/PKG-INFO
                sources_fallback_pkg.egg-info/SOURCES.txt
            )rl   rm   rQ   )zsources_fallback_pkg.egg-infozsources_fallback.pyr	   c                 l    t         |           t        t        j                  | j
                         y rp   )r:   r1   rV   r   r	   r<   r=   s    r   r1   zEggInfoPkgSourcesFallback.setUpQ  s!    -33DMMJr2   rc   rA   s   @r   r   r   <  s1     5	*
 E9 (K Kr2   r   c                   2     e Zd ZU ddiZeed<    fdZ xZS )EggInfoFilezegginfo_file.egg-infoaa  
            Metadata-Version: 1.0
            Name: egginfo_file
            Version: 0.1
            Summary: An example package
            Home-page: www.example.com
            Author: Eric Haffa-Vee
            Author-email: eric@example.coms
            License: UNKNOWN
            Description: UNKNOWN
            Platform: UNKNOWN
            r	   c                 l    t         |           t        t        j                  | j
                         y rp   )r:   r1   rV   r   r	   r<   r=   s    r   r1   zEggInfoFile.setUpf  s     K%%dmm<r2   rc   rA   s   @r   r   r   V  s#     "E9 = =r2   r   c                 ,    t        t        |       |      S r   )r   DALS)contentrF   s     r   <lambda>r   m  s    d7mT1Jr2   c                 D    dj                  d t        |       D              S )N c              3   &   K   | ]	  }| d   yw)z,,
Nr6   ).0names     r   	<genexpr>zbuild_record.<locals>.<genexpr>t  s     E-DTdV4=-Ds   )joinrecord_names)	file_defss    r   build_recordr   s  s    77E\)-DEEEr2   c                 n    t        j                         }t        j                  | |       |j                  S r   )r   	Recordingbuildrecord)r   	recordings     r   r   r   w  s(    !I	KK	9%r2   c                       e Zd Zd Zy)FileBuilderc                 4    t         xs | j                  d      S )Nz'File system does not support non-ascii.)r   skipr/   s    r   unicode_filenamezFileBuilder.unicode_filename~  s    Rdii(QRRr2   N)r3   r4   r5   r   r6   r2   r   r   r   }  s    Sr2   r   c                 J    	 t        j                  |       j                         S r   )textwrapdedentlstrip)r   s    r   r   r     s    ??3&&((r2   c                       e Zd ZdZd Zd Zy)ZipFixturesztest.test_importlib.datac                 v   t        j                  | j                        j                  |      }| j                   j	                  t        j
                  |            }t        j                  j                  dt        |             | j                   j                  t        j                  j                  d       y rE   )r   r	   rootjoinpathr;   r
   r!   rF   insertr   callbackpop)r0   filenamepkg_filefiles       r   _fixture_on_pathzZipFixtures._fixture_on_path  sp    ??499-66x@~~++I,=,=h,GH3t9%a0r2   c                     t        j                         | _        | j                  | j                  j                         y r   )r*   r+   r   r-   r.   r/   s    r   r1   zZipFixtures.setUp  s(    #--/,,-r2   N)r3   r4   r5   r   r   r1   r6   r2   r   r   r     s    %D1.r2   r   c                       	  fd}|S )Nc                 F     t        j                          fd       }|S )Nc                 t    D ]&  } | j                   di |5   | fi | d d d        ( y # 1 sw Y   3xY w)Nr6   )subTest)r0   argsargs_setfuncs     r   _innerz-parameterize.<locals>.wrapper.<locals>._inner  s:     !T\\)D)&& *) !))s   
.7	)	functoolswraps)r   r   r   s   ` r   wrapperzparameterize.<locals>.wrapper  s%    			' 
	'
 r2   r6   )r   r   s   ` r   parameterizer     s    6 Nr2   )5r   r!   rY   r   r   r   r   r   r*   test.support.os_helperr   test.supportr   r   r   r   	importlibr   getattrImportErrorAttributeErrorimportlib_resourcesrK   r   r   r   r&   r(   r8   rC   rM   r`   re   rh   rk   rs   rz   r}   r   r   createregistryr   r   registerr   rV   r   r   r   r   r   r   r6   r2   r   <module>r      s   	 
        . &  ,#IwIy!
       % %- -?h ?F F'*)W '*T=G =Cy' C*6 6%<G %<P Ry'  RF#Yi #YLQi Q<K	7 K4=)W =, ||S!   cJ K kkFS S
)
 . . . C 	^$ ,+,s   F" "F10F1