o _a@sddlZddlZddlZddlZddlZdejvZeddeddZ ddZ d d Z d d Z d dZ GdddZeZddZddZdS)N__pypy__ignorez.+ distutils\b.+ deprecatedcCs.dtjvrdStrtjdkrdStddS)N distutils)aDistutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils.)sysmodulesis_pypy version_infowarningswarnr r :/usr/lib/python3/dist-packages/_distutils_hack/__init__.pywarn_distutils_presents rcCs>dtjvrdStdddtjD}|D]}tj|=qdS)Nrz"Setuptools is replacing distutils.cSsg|] }td|r|qS)z distutils\b)rematch).0namer r r $sz#clear_distutils..)rrr r )modsrr r rclear_distutils s   rcCstjdd}|dkS)z? Allow selection of distutils by environment variable. SETUPTOOLS_USE_DISTUTILSstdliblocal)osenvironget)whichr r renabled)srcCs>tttdttd}d|jvsJ|jdS)Nrzdistutils.core _distutils)radd_shim importlib import_module remove_shim__file__)corer r rensure_local_distutils1s   r&cCstr ttdSdS)z Ensure that the local copy of distutils is preferred over stdlib. See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 for more motivation. N)rrr&r r r r do_override@s r'c@s2eZdZd ddZddZddZedd ZdS) DistutilsMetaFinderNcCs4|durdSdjdit}t||dd}|S)Nzspec_for_{fullname}cSdSNr r r r rRz/DistutilsMetaFinder.find_spec..r )formatlocalsgetattr)selffullnamepathtarget method_namemethodr r r find_specMs zDistutilsMetaFinder.find_speccs8ddlddlGfdddjj}jd|S)Nrcs eZdZfddZddZdS)z?DistutilsMetaFinder.spec_for_distutils..DistutilsLoadercs dS)Nzsetuptools._distutils)r")r0specr!r r create_module[s zMDistutilsMetaFinder.spec_for_distutils..DistutilsLoader.create_modulecSr)r*r )r0moduler r r exec_module^szKDistutilsMetaFinder.spec_for_distutils..DistutilsLoader.exec_moduleN)__name__ __module__ __qualname__r9r;r r8r rDistutilsLoaderYs  r?r) importlib.abcimportlib.utilabcLoaderutilspec_from_loader)r0r?r r8rspec_for_distutilsUsz&DistutilsMetaFinder.spec_for_distutilscCs |rdStdd|_dS)zj Ensure stdlib distutils when running under pip. See pypa/pip#8761 for rationale. NcSr)r*r r r r rr+kr,z2DistutilsMetaFinder.spec_for_pip..)pip_imported_during_buildrrF)r0r r r spec_for_pipcsz DistutilsMetaFinder.spec_for_pipcCs ddl}tdd|dDS)zO Detect if pip is being imported in a build script. Ref #2355. rNcss$|] \}}|jddVqdS)r$zsetup.pyN) f_globalsendswith)rframeliner r r ss  z@DistutilsMetaFinder.pip_imported_during_build..) tracebackany walk_stack)rNr r rrGmsz-DistutilsMetaFinder.pip_imported_during_buildr*)r<r=r>r6rFrH staticmethodrGr r r rr(Ls   r(cCstjdtdS)Nr)r meta_pathinsertDISTUTILS_FINDERr r r rr |sr cCs(z tjtWdStyYdSwr*)rrRremoverT ValueErrorr r r rr#s  r#)rrrr!r builtin_module_namesr filterwarningsDeprecationWarningrrrr&r'r(rTr r#r r r rs&   -