h-ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z dadZGddejddZe jd Ze jd Zd Zd Ze jejejd dZdZddZddZddZ ddZe jdZdS)N)source_from_cache)support)make_legacy_pycct_dtjvrdadStjsdadS t jtjdddgdan#t j $rdaYnwxYwtS)a  Returns True if our sys.executable interpreter requires environment variables in order to be able to run at all. This is designed to be used with @unittest.skipIf() to annotate tests that need to use an assert_python*() function to launch an isolated mode (-I) or no environment mode (-E) sub-interpreter process. A normal build & test does not run into this situation but it can happen when trying to run the standard library test suite from an interpreter that doesn't have an obvious home with Python's current home finding logic. Setting PYTHONHOME is one way to get most of the testsuite to run in that situation. PYTHONPATH or PYTHONUSERSITE are other common environment variables that might impact whether or not the interpreter can start. N PYTHONHOMETF-Ez-czimport sys; sys.exit(0)) $__cached_interp_requires_environmentosenvironrhas_subprocess_support subprocess check_callsys executableCalledProcessError1/usr/lib/python3.11/test/support/script_helper.py interpreter_requires_environmentrs$,3 2: % %37 04- 38 05 9  !3>4#')B#D E E E 49 0 0, 8 8 837 0 0 0 8 0/s"AA$#A$ceZdZdZdZdS)_PythonRunResultz2Helper for reporting Python subprocess run resultsc|d}|j|j}}t||krd|| dz}t||krd|| dz}|dd}|dd}t d|j|||fz)z4Provide helpful details about failed subcommand runsi@s(... truncated stdout ...)Ns(... truncated stderr ...)asciireplacezRProcess return code is %d command line: %r stdout: --- %s --- stderr: --- %s ---)outerrlendecoderstripAssertionErrorrc)selfcmd_linemaxlenrrs rfailz_PythonRunResult.failAs8TXS s88f  /#vghh-?C s88f  /#vghh-?Cjj),,3355jj),,3355 #!% # # %%&& &rN)__name__ __module__ __qualname____doc__r%rrrrr>s)<<&&&&&rr)r!rrct}|dd}d|vr|d}n| o| }tjddg}|r|dn|s|s|d|ddr(i}tjdkrt jd |d <nt j}d |vrd |d <| || |tj |tj tj tj || }|5 |\}} |tjn,#|tjwxYw dddn #1swxYwY|j} t%| || |fS) N__cwd __isolated-X faulthandlerz-Ir __cleanenvwin32 SYSTEMROOTTERM)stdinstdoutstderrenvcwd)rpoprrappendplatformr r copyupdateextendr PopenPIPE communicatekill_cleanup returncoder) argsenv_vars env_requiredr8isolatedr#r7procrrr!s rrun_python_until_endrJ^s/355L ,,w % %Cx<< --<4 $4n5H  l||L$''   <7 " "!# < 8C jooXF JJx OOD  HJO *  c + + +D "" "''))HC IIKKK   ! ! ! ! IIKKK   ! ! ! ! ! """"""""""""""" B BS ) )8 33s*GF'(G)F88GG G crt|i|\}}|jr|s |js|s|||SN)rJr!r%)expected_successrErFresr#s r_assert_pythonrOsR($;(;;MC #SV setdefaultdictr r r r?r@)r5r6rEkwr#r7s r spawn_pythonr[sH + - - OOD --tBJ// 0 0CCK  H "JO#)& " "  " ""rc|j|j}|j|t j|S)z?Run the given Popen process until completion and return stdout.)r4closer5readwaitr rC)pdatas r kill_pythonrbsUGMMOOO 8==??DHNNFFHHH KrFc|}|s|tjdzz }tj||}t |dd5}||dddn #1swxYwYt j|S)Npywzutf-8)encoding)r extseppathjoinopenwrite importlibinvalidate_caches) script_dirscript_basenamesource omit_suffixscript_filename script_name script_files r make_scriptrus%O ,29t++',,z?;;K k3 1 1 1"[&!!!""""""""""""""" !!! s A++A/2A/cj|tjzdz}tj||}t j|d5}||tj}t|dkrJ|ddkr>tt|}tj |}|}ntj |}| ||dddn #1swxYwY|tj||fS)Nzipre __pycache__) r rgrhrizipfileZipFilesplitseprrrbasenamerk) zip_dir zip_basenamers name_in_zip zip_filenamezip_namezip_fileparts legacy_pycs rmake_zip_scriptrs< )%/Lw||G\22H 3 ' ' 18  %%bf--E5zzQ59 #=#=,->{-K-KLL  g..z:: (  g..{;; {K000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 RW\\(K88 88sB4DD D r3cPtj|t|d|dS)N__init__)r mkdirru)pkg_dir init_sources rmake_pkgrs*HW[11111rcg}t|dd}||tj|} t|||} || |rCt j|d}t j| d} ||| ffdtd|dzD} tj | dtj| } |tj zdz} tj || }tj |d 5}| D]8}tj || }| ||9| | | dddn #1swxYwY|D]}tj||tj || fS) Nrr3T)doraisecVg|]%}tjg|z&Sr)r r~ri).0ipkg_names r z make_zip_pkg.. s-FFFqhZ\**FFFrrrwre)rur:r rhr py_compilecompiler>rangerirgr{r|rkunlink)rrrrorpdepthcompiledr init_name init_basenamers pkg_namesscript_name_in_ziprrrnameinit_name_in_zips ` r make_zip_pkgrs FGZ44I MM)G$$Y//Mg??K MM+0&y$???  (dCCC  y+.///FFFFE!U1W4E4EFFFIimRW5E5Ek5R5RSS )%/Lw||G\22H 3 ' '88 8 8D!w||D-@@  NN9&6 7 7 7 7{$6777 888888888888888  $ RW\\(,>?? ??sAF;;F?F?ctjrd}dtj|}t t ||dt jdddd|d g}tj |}t ||d |j d|j rt|d dStd|d dS) Ncd|dS)Nz===== z ======r)texts rtitlezrun_test_script..titles)D))) )rzscript T)flushrr-r.z-uz-vz completed: exit code z failed) rverboser rhrprintrrr runrDr rS)scriptrrrErIs rrun_test_scriptrs- * * *4))&1133  eeDkk&&&&dND&$O~d## eetDD4?DDEE     ? 3 D!1!1!122 2 3 3 vt,,,,,r)FrL)r3)rF) collectionsrlrr os.pathr rr{importlib.utilrtestrtest.support.import_helperrr r namedtuplerrequires_subprocessrJrOrSrUr@STDOUTr[rbrurrrrrrrrs- ,,,,,,666666(,$%0%0%0P&&&&&-{-.@*>@@&&&@141414h 3 3 3444)z7H""""".       9999(2222 ,1@@@@<-----r