a  zeG)@sddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z da ddZ GdddeddZd d Zd d Zd dZddZejejdddZddZd!ddZd"ddZd#ddZd$dd ZdS)%N)source_from_cache)make_legacy_pyccCsTtdurPdtjvrdadSzttjdddgWntjyJdaYn0datS)NZ PYTHONHOMET-Ez-czimport sys; sys.exit(0)F)$__cached_interp_requires_environmentosenviron subprocess check_callsys executableCalledProcessErrorr r N/opt/bitninja-python-dojo/embedded/lib/python3.9/test/support/script_helper.py interpreter_requires_environments    rc@seZdZddZdS)_PythonRunResultcCsd}|j|j}}t||kr0d|| d}t||krNd|| d}|dd}|dd}td|j|||fdS)Ni@s(... truncated stdout ...)s(... truncated stderr ...)asciireplacezRProcess return code is %d command line: %r stdout: --- %s --- stderr: --- %s ---)outerrlendecoderstripAssertionErrorrc)selfcmd_linemaxlenrrr r rfail;s   z_PythonRunResult.failN)__name__ __module__ __qualname__rr r r rr8sr)rrrc OsDt}|dd}d|vr&|d}n | o0| }tjddg}|rN|dn|s`|s`|d|ddri}tjdkrtjd |d <n tj}d |vrd |d <| || |t j |t j t j t j ||d }|Dz |\}} W|t n|t 0Wdn1s$0Y|j} t| || |fS) NZ__cwdZ __isolatedz-X faulthandlerz-IrZ __cleanenvwin32Z SYSTEMROOTTERM)stdinstdoutstderrenvcwd)rpopr r appendplatformrrcopyupdateextendrPopenPIPE communicatekill_cleanup returncoder) argsenv_varsZ env_requiredr)isolatedrr(procrrrr r rrun_python_until_endXs@             *r:cOs4t|i|\}}|jr|s&|js0|s0|||SN)r:rr)Zexpected_successr6r7resrr r r_assert_pythons r=cOstdg|Ri|S)NTr=r6r7r r rassert_python_oks r@cOstdg|Ri|S)NFr>r?r r rassert_python_failuresrA)r&r'cOsXtjg}ts|d|||dttj}d|d<t j |ft j ||d|S)Nrr(Zvt100r#)r%r&r') r r rr+r/ setdefaultdictrrrr0r1)r&r'r6kwrr(r r r spawn_pythons   rEcCs2|j|j}|j|t|Sr;)r%closer&readwaitrr4)pdatar r r kill_pythons    rKFcCsh|}|s|tjd7}tj||}t|ddd}||Wdn1sR0Yt|S)Npywzutf-8)encoding)rextseppathjoinopenwrite importlibinvalidate_caches)Z script_dirscript_basenamesourceZ omit_suffixZscript_filename script_nameZ script_filer r r make_scripts(rYc Cs|tjd}tj||}t|dr}|dur|tj}t|dkrt|ddkrtt t |}tj |}|}n tj |}| ||Wdn1s0Y|tj||fS)NziprM __pycache__) rrOrPrQzipfileZipFilesplitseprrrbasenamerS) zip_dir zip_basenamerXZ name_in_zip zip_filenamezip_namezip_filepartsZ legacy_pycr r rmake_zip_scripts    *rir$cCst|t|d|dS)N__init__)rmkdirrY)Zpkg_dirZ init_sourcer r rmake_pkgs rlcsBg}t|dd}||tj|} t|||} || |rjtj|dd}tj| dd} ||| ffddtd|dD} tj | dtj| } |tj d } tj || }t |d @}| D]}tj || }| ||q| | | Wdn1s0Y|D]}t|q|tj || fS) Nrjr$T)doraisecsg|]}tjg|qSr )rrarQ).0ipkg_namer r z make_zip_pkg..rmrZrM)rYr+rrPrb py_compilecompiler/rangerQrOr^r_rSunlink)rcrdrrrVrWdepthZcompiledryZ init_nameZ init_basenamerXZ pkg_namesZscript_name_in_ziprerfrgnameZinit_name_in_zipr rqr make_zip_pkgs,     ,r|)F)N)r$)rmF) collectionsrTr rZos.pathrrvr^importlib.utilrZ test.supportrrr namedtuplerr:r=r@rAr1STDOUTrErKrYrirlr|r r r rs2  $ 3