U e @sddlmZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddl mZddlmZddlmZddlmZdd lmZd Zd ZejZejZejZd d dddZejdd ddddZejddddZ dd dddddZ!dS)) annotationsN) Generator)Sequence) lang_base) envcontext)PatchesT)Var)PrefixZ dotnetenvbinstrr)venvreturncCs dtj|ttjtdfffS)NPATH)ospathjoinBIN_DIRpathsepr)r rI/opt/hc_python/lib/python3.8/site-packages/pre_commit/languages/dotnet.py get_env_patchsrr zGenerator[(None, None, None)])prefixversionr c cs0t|t|}tt| dVW5QRXdS)N)renvironment_dirENVIRONMENT_DIRrr)rrenvdirrrrin_env srzGenerator[str, None, None])r c csLt:}tj|d}t|d}|dW5QRX|VW5QRXdS)Nz nuget.configwzw )tempfileTemporaryDirectoryrrropenwrite)Ztmpdir nuget_configfrrr_nuget_config_no_sources's  r$z Sequence[str]None)rradditional_dependenciesr cCsttd|td|t|t|}|d}t|dddddd|f||}dd t|D}|sxt d |D]}t tj ||>}d d | D\} || } tjj| } W5QRXW5QRXtd | j} | st d| d| dd} | dkrt d| j}|s2t dt0}t|dddd|dtj |td||f W5QRXq|dS)NZdotnetzpre-commit-buildpackz--configurationZReleasez --propertyzPackageOutputPath=cSsg|]}|dr|qS)z.nupkgendswith.0xrrr Ms z'install_environment..z+could not find any build outputs to installcss|]}|dr|VqdS)z.nuspecNr(r*rrr Ts z&install_environment..z{.*}z%could not parse namespace from nuspecz.//ridz expected to find an "id" elementz"id" element missing tool nameZtoolinstallz --configfilez --tool-pathz --add-source)rZassert_version_defaultZassert_no_additional_depsrrrZ setup_cmdrlistdirAssertionErrorzipfileZipFilernamelistr xmletreeZ ElementTreeparserematchZgetroottagfindtextr$r)rrr&r build_dirZ nupkg_dirZnupkgsZnupkgr#Znuspecspectree namespaceZtool_id_elementZtool_idr"rrrinstall_environment7s^     "  rB)" __future__r contextlibos.pathrr9rZxml.etree.ElementTreer6r3typingrrZ pre_commitrZpre_commit.envcontextrrrZpre_commit.prefixr rrZbasic_get_default_versionZget_default_versionZbasic_health_checkZ health_checkZbasic_run_hookZrun_hookrcontextmanagerrr$rBrrrrs0