a lj@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZeeZeed d d Zeeeeeed d dZdS)z;Metadata generation logic for legacy source distributions. N)BuildEnvironment) open_spinner)InstallationError)make_setuptools_egg_info_args)call_subprocess) TempDirectory) directoryreturncCsRddt|D}|s&td|t|dkr@td|tj||dS)z.Find an .egg-info subdirectory in `directory`.cSsg|]}|dr|qS)z .egg-info)endswith).0fr R/usr/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py z"_find_egg_info..z No .egg-info directory found in z-More than one .egg-info directory found in {}r)oslistdirrlenformatpathjoin)r filenamesr r r_find_egg_infos r) build_env setup_py_path source_dirisolateddetailsr c Cstd||tdddj}t|||d}|Htd }t||d|dWd n1s^0YWd n1s|0Yt|S) znGenerate metadata using setup.py-based defacto mechanisms. Returns the generated metadata directory. z2Running setup.py (path:%s) egg_info for package %sz pip-egg-infoT)kindZglobally_managed) egg_info_dirZno_user_configzPreparing metadata (setup.py)zpython setup.py egg_info)cwdZ command_descspinnerN)loggerdebugrrrrrr)rrrrrr argsr"r r rgenerate_metadata s(  Br&)__doc__ZloggingrZpip._internal.build_envrZpip._internal.cli.spinnersrZpip._internal.exceptionsrZ$pip._internal.utils.setuptools_buildrZpip._internal.utils.subprocessrZpip._internal.utils.temp_dirrZ getLogger__name__r#strrboolr&r r r rs"