Choose metadata generator in prepare_metadata

This commit is contained in:
Pradyun Gedam 2019-11-04 15:24:09 +05:30
parent 528d27a2fe
commit f137aef12e
No known key found for this signature in database
GPG Key ID: DA17C4B29CB32E4B
3 changed files with 14 additions and 13 deletions

View File

@ -5,8 +5,6 @@ import atexit
import logging
import os
from pip._internal.operations.build.metadata_legacy import \
generate_metadata as _generate_metadata_legacy
from pip._internal.utils.subprocess import runner_with_spinner_message
from pip._internal.utils.temp_dir import TempDirectory
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
@ -19,17 +17,10 @@ logger = logging.getLogger(__name__)
def generate_metadata(install_req):
# type: (InstallRequirement) -> str
"""Generate metadata and return the metadata directory.
"""Generate metadata using mechanisms described in PEP 517.
Returns the generated metadata directory.
"""
func = _generate_metadata
if not install_req.use_pep517:
func = _generate_metadata_legacy
return func(install_req)
def _generate_metadata(install_req):
# type: (InstallRequirement) -> str
assert install_req.pep517_backend is not None
build_env = install_req.build_env
backend = install_req.pep517_backend

View File

@ -80,6 +80,10 @@ def _find_egg_info(source_directory, is_editable):
def generate_metadata(install_req):
# type: (InstallRequirement) -> str
"""Generate metadata using setup.py-based defacto mechanisms.ArithmeticError
Returns the generated metadata directory.
"""
assert install_req.unpacked_source_directory
req_details_str = install_req.name or "from {}".format(install_req.link)

View File

@ -25,6 +25,8 @@ from pip._internal.exceptions import InstallationError
from pip._internal.locations import distutils_scheme
from pip._internal.models.link import Link
from pip._internal.operations.build.metadata import generate_metadata
from pip._internal.operations.build.metadata_legacy import \
generate_metadata as generate_metadata_legacy
from pip._internal.pyproject import load_pyproject_toml, make_pyproject_path
from pip._internal.req.req_uninstall import UninstallPathSet
from pip._internal.utils.compat import native_str
@ -615,8 +617,12 @@ class InstallRequirement(object):
"""
assert self.source_dir
metadata_generator = generate_metadata
if not self.use_pep517:
metadata_generator = generate_metadata_legacy
with indent_log():
self.metadata_directory = generate_metadata(self)
self.metadata_directory = metadata_generator(self)
# Act on the newly generated metadata, based on the name and version.
if not self.name: