1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Merge pull request #7239 from pradyunsg/refactor/move-prepare_pep517_metadata

Move prepare_pep517_metadata to generate_metadata
This commit is contained in:
Pradyun Gedam 2019-10-20 11:19:37 +05:30 committed by GitHub
commit 247290391a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 26 deletions

View file

@ -1,13 +1,18 @@
"""Metadata generation logic for source distributions.
"""
import atexit
import logging
import os
from pip._internal.exceptions import InstallationError
from pip._internal.utils.misc import ensure_dir
from pip._internal.utils.setuptools_build import make_setuptools_egg_info_args
from pip._internal.utils.subprocess import call_subprocess
from pip._internal.utils.subprocess import (
call_subprocess,
runner_with_spinner_message,
)
from pip._internal.utils.temp_dir import TempDirectory
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
from pip._internal.vcs import vcs
@ -134,4 +139,24 @@ def _generate_metadata_legacy(install_req):
def _generate_metadata(install_req):
# type: (InstallRequirement) -> str
return install_req.prepare_pep517_metadata()
assert install_req.pep517_backend is not None
build_env = install_req.build_env
backend = install_req.pep517_backend
# NOTE: This needs to be refactored to stop using atexit
metadata_tmpdir = TempDirectory(kind="modern-metadata")
atexit.register(metadata_tmpdir.cleanup)
metadata_dir = metadata_tmpdir.path
with build_env:
# Note that Pep517HookCaller implements a fallback for
# prepare_metadata_for_build_wheel, so we don't have to
# consider the possibility that this hook doesn't exist.
runner = runner_with_spinner_message("Preparing wheel metadata")
with backend.subprocess_runner(runner):
distinfo_dir = backend.prepare_metadata_for_build_wheel(
metadata_dir
)
return os.path.join(metadata_dir, distinfo_dir)

View file

@ -4,7 +4,6 @@
from __future__ import absolute_import
import atexit
import logging
import os
import shutil
@ -615,29 +614,6 @@ class InstallRequirement(object):
)
self.req = Requirement(metadata_name)
def prepare_pep517_metadata(self):
# type: () -> str
assert self.pep517_backend is not None
# NOTE: This needs to be refactored to stop using atexit
metadata_tmpdir = TempDirectory(kind="modern-metadata")
atexit.register(metadata_tmpdir.cleanup)
metadata_dir = metadata_tmpdir.path
with self.build_env:
# Note that Pep517HookCaller implements a fallback for
# prepare_metadata_for_build_wheel, so we don't have to
# consider the possibility that this hook doesn't exist.
runner = runner_with_spinner_message("Preparing wheel metadata")
backend = self.pep517_backend
with backend.subprocess_runner(runner):
distinfo_dir = backend.prepare_metadata_for_build_wheel(
metadata_dir
)
return os.path.join(metadata_dir, distinfo_dir)
@property
def metadata(self):
# type: () -> Any