K i^ tddlZddlZddlZddlZddlZddlZddlZddlmZejdfdZ ejdZ ejdZ ejdZ ejdZd Zejd Zejd Zejd Zy) N)FileLockcyN)dirs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/setuptools/tests/contexts.pyr sc+Ktjdi|}tj} |||||t j |y#||t j |wxYww)Nr)tempfilemkdtemposgetcwdshutilrmtree)cdkwargstemp_dirorig_dirs rtempdirr s^)&)Hyy{H  8  8  h 8  hs*A9 AA9A66A9c+JKtd|D}d|jD}t|D]3}tjj |d|j |5tjj | ||D]"}tjj |d$tjj |y#|D]"}tjj |d$tjj |wxYww)zj In a context, patch the environment with replacements. Pass None values to clear the values. c3lK|],}|tjvs|tj|f.ywr)renviron).0keys r zenvironment..s(UC3"**CT#rzz#'Us44c3,K|] \}}| |ywrr)rrvalues rrzenvironment..!s LlsEemc Ls N)dictitemslistrrpopupdate) replacementssavedremovers r environmentr's U<U UEMl&8&8&: LFF| sD!JJl#!  &C JJNN3 % & %   &C JJNN3 % & % s B D# CAD#AD  D#c#Ktj}tj}tjx}t_tjx}t_ ||f|j d|j d|t_|t_y#|j d|j d|t_|t_wxYww)zk Redirect stdout/stderr to StringIO objects to prevent console output from distutils commands. rN)sysstdoutstderrioStringIOseek) old_stdout old_stderr new_stdout new_stderrs rquietr30sJJ kkm+J kkm+J *$$     sAC"B!(9C!:CCc#lKtj} ||t_y#|t_wxYwwr)siteENABLE_USER_SITE)r%s rsave_user_site_settingr7Ds+  ! !E& %s4$ 4 14c',K dy#|$rYywxYwwrr)excss rsuppress_exceptionsr:Ms     s cN |jd}|dk7S#t$rYywxYw)zO Return True if running under xdist and multiple workers are used. worker_idFmaster)getfixturevalue Exception)requestr<s r multiprocrAUs8 ++K8     s  $$c#K|j}t|r |jn|}||z }t|j d5|j dd|dddy#1swYyxYww)zCUses a file lock to guarantee only one worker can access a temp dirz.lockT)exist_okparentsN) getbasetemprAparentr with_suffixmkdir)r@tmp_path_factorynamebase shared_dir locked_dirs rsession_locked_tmp_dirrNasr  ' ' )D )' 2Jd"J *((1 2$5sA A8 A,# A8,A51A8c#Ktjddtjddtjddf} d|\t_t_t_y#|\t_t_t_wxYww)zNMake sure ``sys.path``, ``sys.meta_path`` and ``sys.path_hooks`` are preservedN)r)path meta_path path_hooks)prevs r save_pathsrTosZ 88A; a(#..*; ;D7 26/#-$/#-s9BA""B"#BBc#Ktj} tjjt_d|t_y#|t_wxYww)z.Make sure initial ``sys.modules`` is preservedN)r)modulescopy) prev_moduless rsave_sys_modulesrYzs;;;L#kk&&(  " l sA+A A AA) contextlibr,rrr5r)r filelockrcontextmanagerrr'r3r7r:rArNrTrYrr rr]s     !!.   & &&    !    77 ##r