Ë ˆkm¢?šÒ¿ãóz—dZddlZddlZddlZddlZddlZddlmZddlZ gZ d„Z d„Z d„Z d„Zd„Zd „Zd „Zd „Zy) z Monkey patching of distutils. éN)Ú import_modulecóz—tj«dk(r|f|jzStj|«S)am Returns the bases classes for cls sorted by the MRO. Works around an issue on Jython where inspect.getmro will not return all base classes if multiple classes share the same name. Instead, this function will return a tuple containing the class itself, and the contents of cls.__bases__. See https://github.com/pypa/setuptools/issues/1024. ÚJython)ÚplatformÚpython_implementationÚ __bases__ÚinspectÚgetmro)Úclss ú6/usr/lib/python3.12/site-packages/setuptools/monkey.pyÚ_get_mror s5€ô×%Ñ%Ó'¨8Ò3؈v˜Ÿ ™ Ñ%Ð%Ü �>‰>˜#Ó Ðócó„—t|t«rtn"t|tj«rt nd„}||«S)Ncó—y©N©)Úitems r Úzget_unpatched..*s€˜$r)Ú isinstanceÚtypeÚget_unpatched_classÚtypesÚ FunctionTypeÚget_unpatched_function)rÚlookups r Ú get_unpatchedr$s>€ô �dœDÔ !õ ô �dœE×.Ñ.Ô /õ$á ð  ñ �$‹<Ðrcó–—d„t|«D«}t|«}|jjd«sd|z}t |«‚|S)z•Protect against re-patching the distutils if reloaded Also ensures that no other distutils extension monkeypatched the distutils first. c3óXK—|]"}|jjd«rŒ|–—Œ$y­w)Ú setuptoolsN)Ú __module__Ú startswith)Ú.0r s r Ú z&get_unpatched_class..5s%èø€ðÙ$�¨C¯N©N×,EÑ,EÀlÕ,SŒ‘}ùs‚ *£*Ú distutilsz(distutils has already been patched by %r)r Únextr r!ÚAssertionError)r Úexternal_basesÚbaseÚmsgs r rr/sM€ñ Ü ”}ó€Nô �Ó €DØ �?‰?× %Ñ % kÔ 2Ø8¸3Ñ>ˆÜ˜SÓ!Ð!Ø €Krcó0—ddl}|jtj_t «tj tjtj fD]}|j j|_Œ|jjtj_ |jjtj_ dtjvr,|jjtjd_ t«y)Nrzdistutils.command.build_ext) rÚCommandr$ÚcoreÚ_patch_distribution_metadataÚdistÚcmdÚ DistributionÚ extensionÚ ExtensionÚsysÚmodulesÚ#patch_for_msvc_specialized_compiler)rÚmodules r Ú patch_allr7?s¼€Ûð(×/Ñ/„I‡N�NÔä Ô"ô—.‘.¤)§.¡.´)·-±-Ó?ˆØ(Ÿo™o×:Ñ:ˆÕð@ð *×3Ñ3×=Ñ=„I‡N�NÔØ$.×$8Ñ$8×$BÑ$B„I×ÑÔ!Ø$¬¯ © Ñ3ð!×*Ñ*×4Ñ4ô � ‰ Ø )ñ ä ä'Õ)rcó‚—ddlm} dD]3}t||«}ttj j ||«Œ5y)Né)Ú_core_metadata)Úwrite_pkg_infoÚwrite_pkg_fileÚ read_pkg_fileÚget_metadata_version)Úr:ÚgetattrÚsetattrr$r.ÚDistributionMetadata)r:ÚattrÚnew_vals r r-r-Vs8€Ý àNóˆô ˜.¨$Ó/ˆÜ” —‘×3Ñ3°T¸7ÕCñrcól—t||«}t|«jd|«t|||«y)zž Patch func_name in target_mod with replacement Important - original must be resolved by name to avoid patching an already patched function. Ú unpatchedN)r@ÚvarsÚ setdefaultrA)Ú replacementÚ target_modÚ func_nameÚoriginals r Ú patch_funcrMds5€ô�z 9Ó-€Hô ˆÓ× Ñ  ¨hÔ7ô ˆJ˜  ;Õ/rcó—|jSr)rF)Ú candidates r rrus€Ø × Ñ Ðrcó´‡—ddlmŠtj«dk7ryˆfd„}t j |d«} t |d«Žy#t$rYywxYw)z\ Patch functions in distutils to use standalone Microsoft Visual C++ compilers. r9)ÚmsvcÚWindowsNcó–•—d}||jd«z}t‰|«}t|«}t||«s t |«‚|||fS)zT Prepare the parameters for patch_func to patch indicated function. Úmsvc14_Ú_)Úlstripr@rÚhasattrÚ ImportError)Úmod_namerKÚ repl_prefixÚ repl_nameÚreplÚmodrQs €r Ú patch_paramsz9patch_for_msvc_specialized_compiler..patch_params„sWø€ð ˆ Ø )×"2Ñ"2°3Ó"7Ñ7ˆ Ü�t˜YÓ'ˆÜ˜HÓ%ˆÜ�s˜IÔ&ܘiÓ(Ð (Ø�S˜)Ð#Ð#rzdistutils._msvccompilerÚ _get_vc_env)r?rQrÚsystemÚ functoolsÚpartialrMrX)r^Úmsvc14rQs @r r5r5ysXø€õ ä‡�Ó˜IÒ%àô $ô× Ñ ˜|Ð-FÓ G€Fð ä‘F˜=Ó)Ò*øÜ ò Ù ð ús¼A Á AÁA)Ú__doc__rar rr3rÚ importlibrÚdistutils.filelistr$Ú__all__r rrr7r-rMrr5rrr ÚrhsVðñóÛÛÛ Û Ý#ãð €ðò òò ò *ò. Dò0ò"ó r