+
    SBi^                     x   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ] P                  R 3R l4       t
] P                  R 4       t] P                  R 4       t] P                  R 4       t] P                  R 4       tR	 t] P                  R
 4       t] P                  R 4       t] P                  R 4       tR# )    N)FileLockc                     R # N )dirs   &>/usr/lib/python3.14/site-packages/setuptools/tests/contexts.py<lambda>r	      s    4    c              +      "   \         P                  ! R/ VB p\        P                  ! 4       p V ! V4       Vx  V ! V4       \        P
                  ! V4       R #   T ! T4       \        P
                  ! T4       i ; i5i)Nr   )tempfilemkdtemposgetcwdshutilrmtree)cdkwargstemp_dirorig_dirs   &,  r   tempdirr      s]     )&)Hyy{H 
8
8h 	8hs   ,A>A  A> A;;A>c               +  X  "   \        R V  4       4      pR V P                  4        4       p\        V4       F4  p\        P                  P                  VR4       V P                  V4       K6  	  \        P                  P                  V 4        Vx  V  F#  p\        P                  P                  VR4       K%  	  \        P                  P                  V4       R#   T  F#  p\        P                  P                  TR4       K%  	  \        P                  P                  T4       i ; i5i)z^
In a context, patch the environment with replacements. Pass None values
to clear the values.
c              3      "   T F4  q\         P                  9   g   K  V\         P                  V,          3x  K6  	  R # 5ir   )r   environ).0keys   & r   	<genexpr>environment.<locals>.<genexpr>   s)     U<C"**CT'#rzz#'<s   >!>c              3   6   "   T F  w  rVe   K  Vx  K  	  R # 5ir   r   )r   r   values   &  r   r   r   !   s     L&:lsecc&:s   
N)dictitemslistr   r   popupdate)replacementssavedremover   s   ,   r   environmentr(      s      U<UUE Ml&8&8&:LFF|


sD!  JJl#!CJJNN3%  


%   CJJNN3%  


% s    BD*C A
D*A
D''D*c               #    "   \         P                  p \         P                  p\        P                  ! 4       ;p\         n        \        P                  ! 4       ;p\         n         W#3x  VP                  ^ 4       VP                  ^ 4       V \         n        V\         n        R#   TP                  ^ 4       TP                  ^ 4       T \         n        T\         n        i ; i5i)z_
Redirect stdout/stderr to StringIO objects to prevent console output from
distutils commands.
N)sysstdoutstderrioStringIOseek)
old_stdout
old_stderr
new_stdout
new_stderrs       r   quietr4   0   s      JJ kkm+J kkm+J $$

 	

s   A!C $B# ):C #:CC c               #   n   "   \         P                  p  V x  V \         n        R #   T \         n        i ; i5ir   )siteENABLE_USER_SITE)r&   s    r   save_user_site_settingr8   D   s*     !!E& %s   5% 525c               '   4   "    R x  R #   T  d     R # i ; i5ir   r   )excss   *r   suppress_exceptionsr;   M   s      s   
 c                T     V P                  R4      pVR8g  #   \         d     R# i ; i)zC
Return True if running under xdist and multiple
workers are used.
	worker_idFmaster)getfixturevalue	Exception)requestr=   s   & r   	multiprocrB   U   s8    
++K8	     s    ''c              #  (  "   VP                  4       p\        V 4      '       d   VP                  MTpWB,          p\        VP	                  R4      4      ;_uu_ 4        VP                  RRR7       Vx  RRR4       R#   + '       g   i     R# ; i5i)zCUses a file lock to guarantee only one worker can access a temp dirz.lockT)exist_okparentsN)getbasetemprB   parentr   with_suffixmkdir)rA   tmp_path_factorynamebase
shared_dir
locked_dirs   &&&   r   session_locked_tmp_dirrO   a   so      '')D )' 2 2J"J	*((1	2	2$5 
3	2	2	2s   ABA>4
B>B			Bc               #  .  "   \         P                  R,          \         P                  R,          \         P                  R,          3p  Rx  V w  \         n        \         n        \         n        R#   T w  \         n        \         n        \         n        i ; i5i)zNMake sure ``sys.path``, ``sys.meta_path`` and ``sys.path_hooks`` are preserved:NNNN)r*   path	meta_path
path_hooks)prevs    r   
save_pathsrU   o   sY      88A;a(#..*;;D726/#-$/#-s   ABA/ #B/#BBc               #     "   \         P                  p  \         P                  P                  4       \         n        Rx  V \         n        R#   T \         n        i ; i5i)z.Make sure initial ``sys.modules`` is preservedN)r*   modulescopy)prev_moduless    r   save_sys_modulesrZ   z   s:      ;;L#kk&&("ls   A+A AAA)
contextlibr-   r   r   r6   r*   r   filelockr   contextmanagerr   r(   r4   r8   r;   rB   rO   rU   rZ   r   r
   r   <module>r^      s     	 	   
        ! !.    & & &  	! 
 
 7 7 # #r
   