"""Metadata generation logic for legacy source distributions. """ import logging import os from pip._internal.exceptions import InstallationError from pip._internal.utils.setuptools_build import make_setuptools_egg_info_args from pip._internal.utils.subprocess import call_subprocess from pip._internal.utils.temp_dir import TempDirectory from pip._internal.utils.typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from pip._internal.build_env import BuildEnvironment logger = logging.getLogger(__name__) def _find_egg_info(directory): # type: (str) -> str """Find an .egg-info subdirectory in `directory`. """ filenames = [ f for f in os.listdir(directory) if f.endswith(".egg-info") ] if not filenames: raise InstallationError( "No .egg-info directory found in {}".format(directory) ) if len(filenames) > 1: raise InstallationError( "More than one .egg-info directory found in {}".format( directory ) ) return os.path.join(directory, filenames[0]) def generate_metadata( build_env, # type: BuildEnvironment setup_py_path, # type: str source_dir, # type: str isolated, # type: bool details, # type: str ): # type: (...) -> str """Generate metadata using setup.py-based defacto mechanisms. Returns the generated metadata directory. """ logger.debug( 'Running setup.py (path:%s) egg_info for package %s', setup_py_path, details, ) egg_info_dir = TempDirectory( kind="pip-egg-info", globally_managed=True ).path args = make_setuptools_egg_info_args( setup_py_path, egg_info_dir=egg_info_dir, no_user_config=isolated, ) with build_env: call_subprocess( args, cwd=source_dir, command_desc='python setup.py egg_info', ) # Return the .egg-info directory. return _find_egg_info(egg_info_dir)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 175 B | 0644 |
|
.metadata.pyo.40009 | File | 1.37 KB | 0644 |
|
.metadata_legacy.pyo.40009 | File | 2.24 KB | 0644 |
|
.wheel_legacy.pyo.40009 | File | 3.17 KB | 0644 |
|
__init__.py | File | 0 B | 0644 |
|
__init__.pyc | File | 175 B | 0644 |
|
__init__.pyo | File | 175 B | 0644 |
|
metadata.py | File | 1.22 KB | 0644 |
|
metadata.pyc | File | 1.37 KB | 0644 |
|
metadata.pyo | File | 1.37 KB | 0644 |
|
metadata_legacy.py | File | 1.96 KB | 0644 |
|
metadata_legacy.pyc | File | 2.24 KB | 0644 |
|
metadata_legacy.pyo | File | 2.24 KB | 0644 |
|
wheel.py | File | 1.43 KB | 0644 |
|
wheel.pyc | File | 1.55 KB | 0644 |
|
wheel.pyo | File | 1.51 KB | 0644 |
|
wheel_legacy.py | File | 3.28 KB | 0644 |
|
wheel_legacy.pyc | File | 3.17 KB | 0644 |
|
wheel_legacy.pyo | File | 3.17 KB | 0644 |
|