+
    Bi                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt  ]P                  ! ]4      P                  4       P                  P                  P                  R,          P                  4       t ! R R]P                   4      t]! R</ RRbR	RbR
RbRRbRRbRRbR^	bR^bRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRb t]! R</ RRbR RbR!RbR"RbR#RbR$RbR%RbR&RbR'RbR(RbR)RbR*RbR+RbR,^ bR-RbR.RbR/RbR0^ bR1^bR2^b t ! R3 R4]4      t ! R5 R64      t ! R7 R8]4      tR=R9 ltR=R: ltR; tR#   ] d    ^ RIHt ]! 4       t Li ; i)>    N)verbosezModules/getpath.py)get_getpath_codeobjectc                      a a ] tR t^t oV 3R ltR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRt Vt!V ;t"# )MockGetPathTestsc                6   < \         SV `  ! V/ VB  R V n        R # N)super__init__maxDiff)selfakw	__class__s   &*,(/usr/lib/python3.14/test/test_getpath.pyr
   MockGetPathTests.__init__   s    !"r"    c           	         \        R R R7      pVP                  R 4       VP                  R4       VP                  R4       \	        R R RR^. ROR7      p\        W4      pV P                  W#4       R# )C:\Python\python.exeargv0real_executableC:\Python\Lib\os.pyC:\Python\DLLs	C:\Python
executablebase_executableprefixexec_prefixmodule_search_paths_setmodule_search_pathsNC:\Python\python98.zipr   C:\Python\Libr   MockNTNamespaceadd_known_xfileadd_known_fileadd_known_dirdictgetpathassertEqualr   nsexpectedactuals   &   r   test_normal_win32"MockGetPathTests.test_normal_win32   sy    )3
 	23
01
*+.3$$%!
 &*r   c                    \        R R R7      pVP                  R 4       VP                  R4       VP                  RR.4       \        R R RRR^^. ROR7      p\	        W4      pV P                  W#4       R# )	#C:\CPython\PCbuild\amd64\python.exer   C:\CPython\Lib\os.py'C:\CPython\PCbuild\amd64\pybuilddir.txt 
C:\CPythonr   r   r   r   build_prefix_is_python_buildr    r!   Nz%C:\CPython\PCbuild\amd64\python98.zipzC:\CPython\PCbuild\amd64C:\CPython\Libr&   r'   r(   r*   r+   r,   r-   s   &   r   test_buildtree_win32%MockGetPathTests.test_buildtree_win320   s    8B
 	AB
12
DrdK=B %&$%!
 &*r   c                2   \        R RR R7      pVP                  R 4       VP                  R4       VP                  R4       VP                  R4       VP                  RR.4       \	        RRRR RR^. ROR	7      p\        W4      pV P                  W#4       R
# )r   zC:\venv\Scripts\python.exe)r   ENV___PYVENV_LAUNCHER__r   r   r   zC:\venv\pyvenv.cfgzhome = C:\PythonzC:\venvr   r   r   r   r   base_prefixbase_exec_prefixr    r!   Nr"   r%   r-   s   &   r   test_venv_win32 MockGetPathTests.test_venv_win32J   s     )$A3

 	23
89
01
*+
/2
 	 4"3$)$%!
 &*r   c                   R p\        VRV R2RV R2R/4      p\        RRVR7      pVP                  R4       VP                  R4       VP	                  R	4       \        ^. ROR
7      p\        W44      pV P                  WE4       ^ VR,          R&   ^ VR,          R&   RVR,          R&   \        ^. ROR
7      p\        W44      pV P                  WE4       R# )z1HKLM\Software\Python\PythonCore\9.8-XY\PythonPathNz\Path1	path1-dirz\Path1\Subdirznot-subdirsr   )r   r   winregr   r   )r    r!   configuse_environmentr    r!   )r#   rI   r   r$   r   r"   )
MockWinregr&   r'   r(   r)   r*   r+   r,   )r   hkeyrJ   r.   r/   r0   s   &     r   test_registry_win32$MockGetPathTests.test_registry_win32o   s     D$fGkfO$m
 
 )3

 	23
01
*+$%!

 &**+8&'238./.28*+$%!
 &*r   c           	     *   \        R RR7      pVP                  R 4       VP                  R4       VP                  R R4       VP                  R4       VP	                  R4       \        R R RR^. ROR7      p\        W4      pV P                  W#4       R# )	C:\LinkedFrom\python.exer   r   r   r   r   r   Nr"   )r&   r'   add_known_linkr(   r)   r*   r+   r,   r-   s   &   r   test_symlink_normal_win32*MockGetPathTests.test_symlink_normal_win32   s    -3
 	67
23
57NO
01
*+27$$%!
 &*r   c                2   \        R RR7      pVP                  R 4       VP                  R4       VP                  R R4       VP                  R4       VP                  RR.4       \	        R R RRR^^. R	OR7      p\        W4      pV P                  W#4       R# )
rR   r4   r   r5   r6   r7   r8   r9   Nr<   )r&   r'   rS   r(   r*   r+   r,   r-   s   &   r   test_symlink_buildtree_win32-MockGetPathTests.test_symlink_buildtree_win32   s    -B
 	67
AB
57]^
12
DrdK27 %&$%!
 &*r   c                    \        R R RR7      pVP                  R 4       VP                  R4       VP                  RR.4       \        R R RRR^^. R	OR7      p\	        W4      pV P                  W#4       R# )
zC:\Out\python.exer8   )r   r   ENV_PYTHONHOMEr5   zC:\Out\pybuilddir.txtr7   zC:\r9   N)zC:\Out\python98.zipzC:\Outr=   r>   r-   s   &   r   test_buildtree_pythonhome_win320MockGetPathTests.test_buildtree_pythonhome_win32   s    &0(

 	/0
12
2RD9+0 %  $%!
" &*r   c           	         \        R R R7      pVP                  R 4       VP                  R4       \        R R RR^. ROR7      p\	        W4      pV P                  W#4       R# )r   r   r   r   r   N)r#   r   r$   r>   r-   s   &   r   test_no_dlls_win32#MockGetPathTests.test_no_dlls_win32   sj    )3
 	23
01.3$$%!
 &*r   c           	         \        R RRR7      pVP                  R4       VP                  R4       VP                  R4       \	        RRR R ^. R	OR7      p\        W4      pV P                  W#4       R# )
/usrpython/usr/binPREFIXr   ENV_PATH/usr/bin/python/usr/lib/python9.8/os.py/usr/lib/python9.8/lib-dynloadr   Nz/usr/lib/python98.zipz/usr/lib/python9.8ri   MockPosixNamespacer'   r(   r)   r*   r+   r,   r-   s   &   r   test_normal_posix"MockGetPathTests.test_normal_posix  s|    

 	,-
45
9:(-$%!
 &*r   c                0   \        R RR7      pVP                  R 4       VP                  R4       VP                  RR.4       VP                  R4       VP                  R4       \	        R RRR R^^. ROR	7      p\        W4      pV P                  W#4       R
# )/home/cpython/python
/usr/localr   re   /usr/local/bin/python/home/cpython/pybuilddir.txtbuild/lib.linux-x86_64-9.8/home/cpython/Lib/os.py/home/cpython/lib-dynload/home/cpythonr   r   r   r   r:   r;   r    r!   N/usr/local/lib/python98.zip/home/cpython/Libz(/home/cpython/build/lib.linux-x86_64-9.8rk   r-   s   &   r   test_buildpath_posix%MockGetPathTests.test_buildpath_posix%  s      )
 	12
23
8;W:XY
34
45-$2($%!
 &*r   c                2   \        R RRR7      pVP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  RR	.4       \	        RR
R
RRR^. ROR7      p\        W4      pV P                  W#4       R# )rb   ra   /venv/bin:/usr/binr   re   rf   rg   /venv/bin/pythonrh   ri   /venv/pyvenv.cfghome = /usr/bin/venvrC   Nrj   rk   r-   s   &   r   test_venv_posix MockGetPathTests.test_venv_posixF  s    )

 	,-
-.
45
9:
,/
 	 )-#$%!
 &*r   c                   \        R RRR7      pVP                  R4       VP                  R 4       VP                  R R4       VP                  R. 4       \	        R RRR7      p\        W4      pV P                  W#4       R# )	z/venv/bin/python3ra   rc   r   /usr/bin/python3r   r   )r   r   rD   N)rl   r'   rS   r(   r*   r+   r,   r-   s   &   r    test_venv_posix_without_home_key1MockGetPathTests.test_venv_posix_without_home_keye  s    %
 	-.
./
-/AB
, /
 	 *

 &*r   c                V   \        R RRR7      pVP                  R4       VP                  R4       VP                  RR4       VP                  R4       VP	                  R4       VP                  RR	.4       \        RR
R
RRR^. ROR7      p\        W4      pV P                  W#4       R# )rb   ra   r   r   r   r   rh   ri   r   r   r   rC   Nrj   rl   r'   rS   r(   r)   r*   r+   r,   r-   s   &   r   test_venv_changed_name_posix-MockGetPathTests.test_venv_changed_name_posixz  s    )

 	-.
-.
,.@A
45
9:
,/
 	 ).#$%!
 &*r   c                V   \        R RRR7      pVP                  R4       VP                  R 4       VP                  R R4       VP                  R4       VP	                  R4       VP                  RR.4       \        R R	R	RR
R
^. ROR7      p\        W4      pV P                  W#4       R# )r   ra   r   r   z!/path/to/non-installed/bin/pythonz*/path/to/non-installed/lib/python9.8/os.py0/path/to/non-installed/lib/python9.8/lib-dynloadr   zhome = /path/to/non-installedr   z/path/to/non-installedrC   N)z'/path/to/non-installed/lib/python98.zipz$/path/to/non-installed/lib/python9.8r   r   r-   s   &   r   &test_venv_non_installed_zip_path_posix7MockGetPathTests.test_venv_non_installed_zip_path_posix  s    $)

 	>?
-.
,=	?
FG
KL
,,/
 	 )?05$%!
 &*r   c                2   \        R RRR7      pVP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  RR	.4       \	        RR
R
RRR^. ROR7      p\        W4      pV P                  W#4       R# )rb   ra   r   r   z/usr/bin/python9r   rh   ri   r   r   r   rC   Nrj   rk   r-   s   &   r   !test_venv_changed_name_copy_posix2MockGetPathTests.test_venv_changed_name_copy_posix  s    )

 	-.
-.
45
9:
,/
 	 ).#$%!
 &*r   c           	     *   \        R RR7      pVP                  R4       VP                  R4       VP                  RR4       VP                  R4       VP	                  R4       \        RRR R ^. ROR7      p\        W4      pV P                  W#4       R# )	ra   /linkfrom/python)re   r   rg   rh   ri   r   Nrj   r   r-   s   &   r   test_symlink_normal_posix*MockGetPathTests.test_symlink_normal_posix  s    $
 	-.
,-
,.?@
45
9:).$%!
 &*r   c                v   \        R RR7      pVP                  R 4       VP                  R4       VP                  R R4       VP                  R4       VP                  RR.4       VP                  R4       VP	                  R4       \        R RRR R	^^. ROR
7      p\        W4      pV P                  W#4       R# )r   rq   rr   rp   rs   rt   ru   rv   rw   rx   ry   Nrz   r   r-   s   &   r   test_symlink_buildpath_posix-MockGetPathTests.test_symlink_buildpath_posix  s      %
 	-.
12
,.DE
23
8;W:XY
34
45)$.($%!
 &*r   c           	         \        R RRR7      pVP                  R4       VP                  R4       VP                  R4       \	        RRR R ^. R	OR7      p\        W4      pV P                  W#4       R# )
ra   r   lib64)re   r   
PLATLIBDIRrg   z/usr/lib64/python9.8/os.py /usr/lib64/python9.8/lib-dynloadr   N)z/usr/lib64/python98.zipz/usr/lib64/python9.8r   rk   r-   s   &   r   test_custom_platlibdir_posix-MockGetPathTests.test_custom_platlibdir_posix  s|    $

 	,-
67
;<).$%!
 &*r   c                   \        R R^RRRRRR7      pVP                  R4       VP                  R4       VP                  R4       VP                  R4       \	        RRRRRR^. R
OR7      p\        W4      pV P                  W#4       R	# )darwin\/Library/Frameworks/Python.framework/Versions/9.8/Resources/Python.app/Contents/MacOS/Python1/Library/Frameworks/Python.framework/Versions/9.8?/Library/Frameworks/Python.framework/Versions/9.8/bin/python9.88/Library/Frameworks/Python.framework/Versions/9.8/Pythonos_namer   WITH_NEXT_FRAMEWORKre   EXEC_PREFIXrB   r   libraryK/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/lib-dynloadE/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8/os.pyrC   NzB/Library/Frameworks/Python.framework/Versions/9.8/lib/python98.zipz?/Library/Frameworks/Python.framework/Versions/9.8/lib/python9.8r   )rl   r'   r)   r(   r*   r+   r,   r-   s   &   r   test_framework_macos%MockGetPathTests.test_framework_macos0  s      p !FK$ezN	
 	yz
\]
fg
ab
 XFK]KP$%!
 &*r   c                    \        R R^RRRR RRRRRRR7      pVP                  R 4       VP                  R4       VP                  R4       VP                  R4       \        RRRRRR^. R
OR	7      p\	        W4      pV P                  W#4       R# )f/Library/Frameworks/DebugPython.framework/Versions/9.8/Resources/Python.app/Contents/MacOS/DebugPythonr   6/Library/Frameworks/DebugPython.framework/Versions/9.8D/Library/Frameworks/DebugPython.framework/Versions/9.8/bin/python9.8B/Library/Frameworks/DebugPython.framework/Versions/9.8/DebugPythonN)r   r   r   re   r   rB   r   r   
PYTHONPATHrZ   ENV_PYTHONEXECUTABLEexecutable_dir
py_setpathP/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/lib-dynloadJ/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8/os.pyrC   zG/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python98.zipzD/Library/Frameworks/DebugPython.framework/Versions/9.8/lib/python9.8r   )rl   r'   r)   r*   r+   r,   r-   s   &   r   test_alt_framework_macos)MockGetPathTests.test_alt_framework_macosY  s      z !KP$j EX!%
 	  D  	E
ab
kl
gh ]KPbPU$%!
 &*r   c                   R p\        RR^RRV R2RRR7      pVP                  V4       VP                  V R24       VP                  V R24       VP                  V R	24       VP                  V R24       VP                  R4       VP                  R
4       VP                  R4       VP                  R4       VP                  V R2R.4       \	        V R2VVR
RR^. ROR7      p\        W#4      pV P                  W44       R# )/tmp/workdir/venvr   r   r   /bin/pythonr   r   /bin/lib/lib/python9.8r   r   r   /pyvenv.cfgz<home = /Library/Frameworks/Python.framework/Versions/9.8/binrC   Nr   rl   r)   r'   r(   r*   r+   r,   r   	venv_pathr.   r/   r0   s   &    r   test_venv_framework_macos*MockGetPathTests.test_venv_framework_macos  s8    (	p !FK'0k$=zN	
 	#
I;d+,
I;d+,
I;n56
i[45
yz
\]
fg
bc
YK{3J6
 	 #K0!]KP$%!
 &*r   c                   R p\        RR^RRV R2RRR7      pVP                  V4       VP                  V R24       VP                  V R24       VP                  V R	24       VP                  V R24       VP                  R4       VP                  R
4       VP                  R4       VP                  R4       VP                  V R2R.4       \	        V R2VVR
RR^. ROR7      p\        W#4      pV P                  W44       R# )r   r   r   r   r   r   r   r   r   r   r   r   r   r   zAhome = /Library/Frameworks/DebugPython.framework/Versions/9.8/binrC   Nr   r   r   s   &    r   test_venv_alt_framework_macos.MockGetPathTests.test_venv_alt_framework_macos  sA   
 (	z !KP'0k$= EX	
 	#
I;d+,
I;d+,
I;n56
i[45
  D  	E
ab
kl
gh
YK{3O6
 	 #K0!bPU$%!
 &*r   c                6   \        R RRRRR7      pVP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  RR.4       \	        RR	R	RRR^. ROR
7      p\        W4      pV P                  W#4       R# )r   rg   ra   z/framework/Python9.8/python)r   r   re   rB   r   rh   ri   z/framework/Python9.8/pyvenv.cfgr   z/framework/Python9.8rC   Nrj   rk   r-   s   &   r   test_venv_macos MockGetPathTests.test_venv_macos  s      #$A-
 	,-
89
45
9:
;>
 	 4).-#$%!
 &*r   c           	     0   \        R RRRRR7      pVP                  R4       VP                  R4       VP                  RR4       VP                  R4       VP	                  R4       \        RRRR^. ROR	7      p\        W4      pV P                  W#4       R
# )r   ra   rb   /linkfrom:/usr/binr   )r   re   r   rf   r   rg   rh   ri   r   Nrj   r   r-   s   &   r   test_symlink_normal_macos*MockGetPathTests.test_symlink_normal_macos  s    ).
 	-.
,-
,.?@
45
9:).$%!
 &*r   c                |   \        R RRRRR7      pVP                  R4       VP                  R4       VP                  RR4       VP                  R4       VP                  RR	.4       VP                  R
4       VP	                  R4       \        RRRRR^^. ROR7      p\        W4      pV P                  W#4       R# )r   rb   r   rq   r   )r   r   rf   re   r   rp   rs   rt   zbuild/lib.macos-9.8rv   rw   rx   ry   N)r{   r|   z!/home/cpython/build/lib.macos-9.8r   r-   s   &   r   test_symlink_buildpath_macos-MockGetPathTests.test_symlink_buildpath_macos#  s      ).
 	-.
12
,.DE
23
8;P:QR
34
45)$.($%!
 &*r   c                    \        R RRR7      pRVR,          R&   \        RR7      p\        W4      pV P                  W#4       R# )	ra   rb   rc   rd   z/custom_stdlib_dirrK   
stdlib_dir)r   N)rl   r*   r+   r,   r-   s   &   r   test_explicitly_set_stdlib_dir/MockGetPathTests.test_explicitly_set_stdlib_dirJ  sL    

 &:8\"+
 &*r   c           
        \        R RRR7      pVP                  R 4       VP                  RR.4       VP                  R4       VP                  R4       \	        R RRRR^. ROR	7      p\        W4      pV P                  W#4       R
# )r   ra   z/pythonhome)r   re   rZ   r   r   z/pythonhome/lib/python9.8/os.py%/pythonhome/lib/python9.8/lib-dynloadr   )r   r   r   rD   rE   r    r!   N)z/pythonhome/lib/python98.zipz/pythonhome/lib/python9.8r   rk   r-   s   &   r   test_PYTHONHOME_in_venv(MockGetPathTests.test_PYTHONHOME_in_venvX  s    $(
 	-.
,/
 	 	;<
@A)%*$%!
 &*r   )r   )#__name__
__module____qualname____firstlineno__r
   r1   r?   rF   rO   rT   rW   r[   r^   rm   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classcell__r   __classdict__s   @@r   r   r      s     +2+4#+J/+b+6+8+<+.+2+B+>+*+@+B+>+4!+F+2'+R-+^)+V++Z#+J+<%+N++ +r   r   re   r7   r   r   VPATHr   
PYDEBUGEXTVERSION_MAJORVERSION_MINOR
ABI_THREADPYWINVER
EXE_SUFFIXrf   rZ   r   rB   r   r   r   r   r   rJ   r:   venv_prefixhome
platlibdir
pythonpathprogram_namer   r   rD   rE   r   r   r   platstdlib_dirr!   r    pythonpath_envargv	orig_argvisolatedrL   use_sitec                      a a ] tR tRt oRRRR/V 3R lltRR ltR tR tR	 tR
 t	R t
R tR tR tR tR tR tR tR tR tR tRR ltR tRtVtV ;t# )r&   i  r   NrK   c               Z  < V P                  \        4       \        P                  4       V R &   RV R&   RV R&   RV R&   RV R&   \        SV `  ! V/ VB  V'       d   V.V R ,          R	&   V'       d   V R ,          P                  V4       / V n        / V n        \        4       V n	        . V n
        R
# )rK   ntr   DLLsr   z9.8-XYr   z..\..r   r   N)updateDEFAULT_NAMESPACEDEFAULT_CONFIGcopyr	   r
   _files_linksset_dirs	_warningsr   r   rK   r   r   r   s   &$$*,r   r
   MockNTNamespace.__init__  s    %&',,.XY#\#Z W!"r"+0'DN;'N!!&)U
r   c                    \        T;'       g    R4      V P                  VP                  4       &   V P                  VP	                  R 4      ^ ,          4       R# )\N )listr  casefoldr)   
rpartitionr   pathliness   &&&r   r(   MockNTNamespace.add_known_file  s=    '+EKKR'8DMMO$4??4034r   c                (    V P                  V4       R # r   )r(   r   r  s   &&r   r'   MockNTNamespace.add_known_xfile  s    D!r   c                >    W P                   VP                  4       &   R # r   )r  r  r   r  targets   &&&r   rS   MockNTNamespace.add_known_link  s    '-DMMO$r   c                    VP                  R 4      P                  4       pV'       d6   V P                  P                  V4       VP	                  R 4      ^ ,          pK=  R# )r  N)rstripr  r	  addr  r   r  ps   && r   r)   MockNTNamespace.add_known_dir  sD    KK&&(JJNN1T"1%A r   c                P     \        W4      #   \         d    \        T4      R hi ; ir   getattrAttributeErrorKeyErrorr   keys   &&r   __missing__MockNTNamespace.__missing__  -    	*4%% 	*3-T)	*   
 %c                X    V P                  V4      '       d   V# V P                  R V4      # )zC:\Absoluteisabsjoinpathr  s   &&r   abspathMockNTNamespace.abspath  s'    ::dK}}^T22r   c                2    VP                  R 4      ^,          # )r  r  r  s   &&r   basenameMockNTNamespace.basename  s    t$Q''r   c                    VP                  R 4      P                  R 4      ^ ,          pVR,          R8X  d
   VR ,           # V# )r  :   NN:r  r  )r   r  names   && r   dirnameMockNTNamespace.dirname  s:    {{4 ++D1!48s?$;r   c                \    VP                  4       P                  VP                  4       4      # r   )r  endswithr   r  suffixs   &&&r   	hassuffixMockNTNamespace.hassuffix  s     }}''(9::r   c                    VR ,          R8H  # ):r:     Nz:\r  r  s   &&r   r1  MockNTNamespace.isabs  s    CyE!!r   c                n    \         '       d   \        R VR4       VP                  4       V P                  9   # Check ifzis a dir)r   printr  r	  r  s   &&r   isdirMockNTNamespace.isdir  s(    7*dJ/}}$**,,r   c                n    \         '       d   \        R VR4       VP                  4       V P                  9   # rK  z	is a file)r   rL  r  r  r  s   &&r   isfileMockNTNamespace.isfile  s(    7*dK0}}$++--r   c                    \         '       d   \        R VR4       VP                  4       pWP                  9   ;'       d*    VP	                  R4      ^,          RP                  4       8H  # rK  zis a module.pyr   rL  r  r  r  r  s   &&r   ismoduleMockNTNamespace.ismodule  sL    7*dM2}}{{"QQts';A'>$--/'QQr   c                    \         '       d   \        R VR4       VP                  4       pWP                  9   ;'       d*    VP	                  R4      ^,          RP                  4       8H  # )rK  zis a executablerU  exerW  r  s   &&r   isxfileMockNTNamespace.isxfile  sN    7*d$56}}{{"RRts';A'>%..BR'RRr   c                R    \         P                  ! \         P                  ! V!  4      # r   )ntpathnormpathjoinr  s   &*r   r2  MockNTNamespace.joinpath  s    v{{D122r   c                |     V P                   VP                  4       ,          #   \         d    \        T4      R hi ; ir   )r  r  r(  FileNotFoundErrorr  s   &&r   	readlinesMockNTNamespace.readlines  s8    	4;;t}}// 	4#D)t3	4s    # ;c                Z   \         '       d   \        R V4        V P                  VP                  4       ,          pTf   \        4       pM TP                  4       T9   d   \        R4      hTP                  TP                  4       4       T P                  Y24      #   \         d    Tu # i ; izRead link fromzcircular link)	r   rL  r  r  r(  r  OSErrorr   realpathr   r  _traillinks   &&& r   rj  MockNTNamespace.realpath  s    7"D)	;;t}}/D >UF]]_&/**

4==?#}}T**  	K	s   !B B*)B*c                n    V P                   P                  V4       \        '       d   \        V4       R # R # r   r
  appendr   rL  r   messages   &&r   warnMockNTNamespace.warn  %    g&7'N r   )r	  r  r  r
  r   r   r   r   r   r
   r(   r'   rS   r)   r+  r3  r7  r>  rD  r1  rM  rQ  rX  r\  r2  re  rj  rt  r   r   r   r   s   @@r   r&   r&     sy      d "5".&*3
(;"-
.
RS34+ r   r&   c                   X   a  ] tR tRt o RtRtR tR tR tR t	R t
R	 tR
 tR tRtV tR# )rM   i  HKLMHKCUc                    VP                  4        UUu/ uF  w  r#VP                  4       VbK  	  uppV n        / V n        R # u uppi r   )itemsr  keysopen)r   r}  kvs   &&  r   r
   MockWinreg.__init__   s6    15>QZZ\1_>		 ?s   Ac                    R # )z<MockWinreg>r  r   s   &r   __repr__MockWinreg.__repr__$  s    r   c                ,    \        V\        V 4      4      # r   )
isinstancetype)r   others   &&r   __eq__MockWinreg.__eq__'  s    %d,,r   c                ,    \        V P                  4      # r   )r  r~  r  s   &r   	open_keysMockWinreg.open_keys*  s    DIIr   c                    \         '       d   \        R V RV R24       V RV 2P                  4       pW0P                  9   d3   V P                  P                  V^ 4      ^,           V P                  V&   V# \        4       h)z
OpenKeyEx(, )r  )r   rL  r  r}  r~  getrd  )r   rN   subkeyr*  s   &&& r   	OpenKeyExMockWinreg.OpenKeyEx-  sp    7JtfBvha01b!**,))!YY]]32Q6DIIcNJ!!r   c                    \         '       d   \        R V R24       VP                  4       pWP                  9  d   \	        R4      hV P                  V;;,          ^,          uu&   V P                  V,          '       g   V P                  V R# R# )z	CloseKey(r  key is not openN)r   rL  r  r~  RuntimeError)r   rN   s   &&r   CloseKeyMockWinreg.CloseKey6  sh    7IdV1%&}}yy 011		$1yy		$ r   c                   \         '       d   \        R V RV R24       VP                  4       pWP                  9  d   \	        R4      hV R2p\        V P                  4       Uu. uF)  qDP                  V4      '       g   K  V\        V4      R NK+  	  ppV Uu. uF  pRV9  g   K  VNK  	  upVR&   \        V4       F  w  rgWb8X  g   K  VP                  V4      u # 	  \        R4      hu upi u upi )zEnumKey(r  r  r  r  N:NNNzend of enumeration)r   rL  r  r~  r  sortedr}  
startswithlen	enumerateremoveprefixri  )r   rN   ir   r  subkeysjns   &&&     r   EnumKeyMockWinreg.EnumKey@  s    7HTF"QCq)*}}yy 0116,2499,=V,=qfAU?1S[\?,=V!(:ADMaa:
g&DAv~~f-- ' *++ W:s   &C-C-	C2)C2c                ,   \         '       d   \        R V RV R24       VP                  4       pWP                  9  d   \	        R4      hV'       d   VP                  4       pV RV 2p V P
                  V,          #   \         d    \        4       hi ; i)zQueryValue(r  r  r  r  )r   rL  r  r~  r  r}  r(  ri  )r   rN   r  s   &&&r   
QueryValueMockWinreg.QueryValueN  s    7KvRxq12}}yy 011__&FV2fX&D	99T?" 	)O	s   *A= =B)r}  r~  N)r   r   r   r   HKEY_LOCAL_MACHINEHKEY_CURRENT_USERr
   r  r  r  r  r  r  r  r   r   )r   s   @r   rM   rM     s>     -" , r   rM   c                      a a ] tR tRt oRRRR/V 3R lltRR ltR tR tR	 tR
 t	R t
R tR tR tR tR tR tR tR tR tR tRR ltR tRtVtV ;t# )rl   i]  r   NrK   c               n  < V P                  \        4       \        P                  4       V R &   RV R&   RV R&   ^ V R&   \        SV `  ! V/ VB  V'       d   V.V R ,          R&   V'       d   V R ,          P                  V4       / V n        \        4       V n        / V n	        \        4       V n
        . V n        R# )rK   posixr   libr   r   r   N)r  r  r  r  r	   r
   r  r  _xfilesr  r	  r
  r  s   &$$*,r   r
   MockPosixNamespace.__init__^  s    %&',,.X!Y"\&'"#!"r"+0'DN;'N!!&)uU
r   c                    \        T;'       g    R4      V P                  V&   V P                  VP                  R 4      ^ ,          4       R# )/Nr  )r  r  r)   r  r  s   &&&r   r(   !MockPosixNamespace.add_known_fileo  s7     "-D4??3/23r   c                ^    V P                  V4       V P                  P                  V4       R # r   )r(   r  r   r  s   &&r   r'   "MockPosixNamespace.add_known_xfiles  s"    D!r   c                "    W P                   V&   R # r   )r  r  s   &&&r   rS   !MockPosixNamespace.add_known_linkw  s    "Dr   c                    VP                  R 4      pV'       d6   V P                  P                  V4       VP                  R 4      ^ ,          pK=  R# )r  N)r  r	  r   r  r!  s   && r   r)    MockPosixNamespace.add_known_dirz  s;    KKJJNN1S!!$A r   c                P     \        W4      #   \         d    \        T4      R hi ; ir   r%  r)  s   &&r   r+  MockPosixNamespace.__missing__  r-  r.  c                X    V P                  V4      '       d   V# V P                  R V4      # )z	/Absoluter0  r  s   &&r   r3  MockPosixNamespace.abspath  s'    ::dK}}[$//r   c                2    VP                  R 4      ^,          # r  r6  r  s   &&r   r7  MockPosixNamespace.basename  s    s#A&&r   c                P    VP                  R 4      P                  R 4      ^ ,          # r  r<  r  s   &&r   r>  MockPosixNamespace.dirname  s!    {{3**3/22r   c                $    VP                  V4      # r   )rA  rB  s   &&&r   rD  MockPosixNamespace.hassuffix  s    }}V$$r   c                    VR ,          R8H  # ):r   r:  Nr  r  r  s   &&r   r1  MockPosixNamespace.isabs  s    CyCr   c                P    \         '       d   \        R VR4       WP                  9   # rJ  )r   rL  r	  r  s   &&r   rM  MockPosixNamespace.isdir  s     7*dJ/zz!!r   c                P    \         '       d   \        R VR4       WP                  9   # rP  )r   rL  r  r  s   &&r   rQ  MockPosixNamespace.isfile  s     7*dK0{{""r   c                    \         '       d   \        R VR4       WP                  9   ;'       d    VP                  R4      ^,          R8H  # rT  )r   rL  r  r  r  s   &&r   rX  MockPosixNamespace.ismodule  s;    7*dM2{{"FFts';A'>$'FFr   c                P    \         '       d   \        R VR4       WP                  9   # )rK  zis an xfile)r   rL  r  r  s   &&r   r\  MockPosixNamespace.isxfile  s     7*dM2||##r   c                R    \         P                  ! \         P                  ! V!  4      # r   )	posixpathr`  ra  r  s   &*r   r2  MockPosixNamespace.joinpath  s    !!)..$"788r   c                `     V P                   V,          #   \         d    \        T4      R hi ; ir   )r  r(  rd  r  s   &&r   re  MockPosixNamespace.readlines  s2    	4;;t$$ 	4#D)t3	4s    -c                   \         '       d   \        R V4        V P                  V,          pTf   \	        4       pMY29   d   \        R4      hTP                  T4       T P                  Y24      #   \         d    Tu # i ; irh  )r   rL  r  r(  r  ri  r   rj  rk  s   &&& r   rj  MockPosixNamespace.realpath  st    7"D)	;;t$D >UF^/**

4}}T**  	K	s   A/ /A?>A?c                n    V P                   P                  V4       \        '       d   \        V4       R # R # r   rp  rr  s   &&r   rt  MockPosixNamespace.warn  rv  r   )r	  r  r  r
  r  r   rw  r   s   @@r   rl   rl   ]  sx      d "4#%*0
'3% "
#
G
$
94+ r   rl   c           
      x   . p\        V 4       Fs  pVR ,          R8X  d   K  VR8X  d   \        W,          W,          RR7       K6  WA9   g   K>  W,          W,          8w  g   KS  VP                  W@V,          W,          34       Ku  	  V'       g   R# \        R V 4       4      pR\	        V4      ^,           V,           ,          p\
        '       dn   V Fe  w  rGpV'       d.   \        RP                  W$P                  V4      WvV4      4       K;  \        RP                  W$P                  V4      V4      4       Kg  	  R# R# )	N   N__rK   r   Nc              3   @   "   T F  w  p p\        V4      x  K  	  R # 5ir   r  ).0r  _s   &  r   	<genexpr>diff_dict.<locals>.<genexpr>  s     +d71aAds    z{}.{} -{!r}
{} +{!r}z{}.{} +{!r})	r  	diff_dictrq  maxr  r   rL  formatljust)	beforeafterr   diffr  max_kindentbr   s	   &&&      r   r  r    s    DF^R5D==fi(;:%(fi/KK1Iux01  +d++ECK!Oe+,FwGA!-44VWWU^QXYZ[m**6775>1EF	  r   c           
          \         '       d	   V'       g   R # \        R V 4       4      p\        VP                  4       R R7       F  w  rEVR,          R8X  d   K  VR8X  d   \	        W,          W,          RR7       K8   WPV,          8w  d4   \        RP                  W$P                  V4      WPV,          4      4       Ky   \        R	P                  W$P                  V4      V4      4       K  	  R #   \         d     L=i ; i)
Nc              3   8   "   T F  p\        V4      x  K  	  R # 5ir   r  )r  r  s   & r   r  dump_dict.<locals>.<genexpr>  s     &1As   c                     V ^ ,          # )r   r  )r  s   &r   <lambda>dump_dict.<locals>.<lambda>  s    AaDr   )r*  r  r  rK   r  z{}.{} {!r} (was {!r})z
{}.{} {!r})	r   r  r  r|  	dump_dictrL  r  r  r(  )r  r  r   r  r  r  s   &&&   r   r  r    s    7%&&&Eu{{}.9R5D==fi(;	1I~-44VWWU^QWXPYZ[ 
 	l!!&''%.!<= :  		s   >>C//C=<C=c                 Z   \         P                  ! V 4      pR p \        \        V 4       RpV'       d   \	        W 4       M\        W 4        V Uu/ uF+  pW@R,          P                  W@P                  VR4      4      bK-  	  up#   T'       d   \	        Y 4       i \        Y 4       i ; iu upi )TFrK   .)r  deepcopyexecSOURCEr  r  r  )r.   r}  r  failedr  s   &&   r   r+   r+     s    ]]2FF"VRf!f! A 	
h<Avva~.. 	 f!f!s   B 1B(!B%r  )global)r  r_  pathlibr  unittesttest.supportr   Path__file__absoluteparent
read_bytesr  rd  _testinternalcapir   TestCaser   r*   r  r  r&   rM   rl   r  r  r+   r  r   r   <module>r     s~         &ll8$--/66==DDG[[ggiFd+x(( d+P    	
            !" #$ %& '( )* +, -. /0 1 6  	  	
             
!" #& '( )* +0ld l^> >Bh hVG,>&K'  &8#%F&s   AE   EE